From a64ae89fecaacc886e0d4765d0ca475219299327 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Sat, 2 Sep 2017 20:35:32 -0500 Subject: [PATCH] Moving to git --- .vs/SpriteLibrary/v14/.suo | Bin 0 -> 61440 bytes .vs/SpriteLibrary/v15/.suo | Bin 0 -> 64512 bytes SpriteLibrary.sln | 23 + SpriteLibrary/Doc/Help/Documentation.msha | 20 + SpriteLibrary/Doc/Help/Documentation.mshc | Bin 0 -> 486055 bytes .../Doc/Help/HelpLibraryManagerLauncher.exe | Bin 0 -> 32768 bytes .../Doc/Help/Install_Documentation.bat | 47 + SpriteLibrary/Doc/Help/LastBuild.log | 366 ++++ .../Doc/Help/Remove_Documentation.bat | 31 + SpriteLibrary/Doc/Help/SearchHelp.aspx | 233 ++ SpriteLibrary/Doc/Help/SearchHelp.inc.php | 173 ++ SpriteLibrary/Doc/Help/SearchHelp.php | 58 + SpriteLibrary/Doc/Help/Web.Config | 31 + SpriteLibrary/Doc/Help/WebKI.xml | 351 +++ SpriteLibrary/Doc/Help/WebTOC.xml | 228 ++ SpriteLibrary/Doc/Help/fti/FTI_100.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_101.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_102.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_103.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_104.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_105.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_106.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_107.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_108.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_109.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_110.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_111.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_112.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_113.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_114.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_115.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_116.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_117.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_118.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_119.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_122.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_97.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_98.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_99.json | 1 + SpriteLibrary/Doc/Help/fti/FTI_Files.json | 1 + .../00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm | 13 + .../01fdd72c-b202-8593-db2a-e1373358dd66.htm | 9 + .../07a473e4-4716-e5b9-c7d2-c4748265fc58.htm | 210 ++ .../08442d70-3a79-fa24-4f3e-eddc5c102938.htm | 10 + .../0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm | 10 + .../0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm | 11 + .../0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm | 13 + .../0e8b825f-f8df-9f14-41ec-f00778409dfb.htm | 8 + .../0f4e570a-2888-8819-176b-9dd070ca7db4.htm | 11 + .../0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm | 11 + .../139d1443-5e11-02ed-7534-eb0f857804da.htm | 9 + .../154fc8b0-0d6c-003e-be50-c94da6bc4597.htm | 49 + .../16df05cc-8770-7cbe-f754-ba9e386674ad.htm | 13 + .../17255a69-f623-3a42-a7ce-db1eb348581a.htm | 8 + .../1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm | 14 + .../17ee5c77-8351-af30-dc43-9458d683a69e.htm | 8 + .../18405dcf-237d-db66-cf64-0e08b0d16b41.htm | 7 + .../184a1964-91ec-6f0d-b7cf-95b722599d69.htm | 13 + .../1bab1e49-641a-5648-d034-4298d8158019.htm | 12 + .../1f2c365c-e65b-3894-2e47-41f07250bbc0.htm | 18 + .../20db7ecc-35df-8911-2615-1f2b8777f03b.htm | 11 + .../23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm | 7 + .../25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm | 10 + .../2695c170-24ea-95d2-7f85-34c3930416b5.htm | 9 + .../27051af5-8ad4-0b54-231d-456499ae5b51.htm | 11 + .../2788d4d5-88bf-1154-dd17-8d4b99a79118.htm | 154 ++ .../29f62d1a-212b-273e-582e-670c1ea2856c.htm | 7 + .../2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm | 8 + .../2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm | 7 + .../2c9b874d-5097-98bf-908c-f6bac5d647d3.htm | 30 + .../323c4f03-703d-0898-c73e-40eb5784c05f.htm | 10 + .../34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm | 10 + .../36d40ecf-484f-3b53-43e4-87ed9108cb76.htm | 9 + .../37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm | 8 + .../38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm | 10 + .../3a7614d3-cfe9-ce52-55be-ca5324839e92.htm | 11 + .../3aabe50b-5222-99aa-4654-356baa30033a.htm | 8 + .../3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm | 16 + .../3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm | 11 + .../4067393e-d724-b01d-dc77-947440c6c444.htm | 11 + .../4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm | 5 + .../41ac663a-2019-6a14-5ffd-16dfc7472578.htm | 8 + .../447d1a9a-0e17-9827-2a01-438434c1b879.htm | 10 + .../451487c4-0cca-2c80-9b71-b116cbe00d6e.htm | 9 + .../4716eb02-e702-b61a-126a-362af50ca6d5.htm | 3 + .../48ff9be7-1395-25af-3585-3d32eba07309.htm | 9 + .../49befa66-d9d0-400c-1fc2-ac57f17433f1.htm | 8 + .../4a6fe677-5369-6c0a-1e61-81355aa238b1.htm | 14 + .../4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm | 26 + .../4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm | 9 + .../509560bd-f402-7e7f-a461-46845061a5fc.htm | 11 + .../50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm | 13 + .../51c9d545-e5c3-888d-d033-17085734aa1d.htm | 9 + .../5284b83c-61a7-aefe-4087-f7137551b783.htm | 14 + .../56b507fc-3071-20e9-63a7-b33484f3e687.htm | 11 + .../56d803c5-e2ad-dd16-0592-b816f726498d.htm | 9 + .../57a9f458-c6c8-d106-aad4-b2547736909a.htm | 3 + .../5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm | 3 + .../5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm | 12 + .../5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm | 8 + .../5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm | 9 + .../5d507565-cf0d-de52-2253-b55396e3886a.htm | 11 + .../603ff402-efe2-bede-5c71-1a9583da0800.htm | 8 + .../60fe71db-5ea2-cf93-f216-79b15a6779db.htm | 22 + .../6273fa69-a784-9916-a8eb-5b16529fdf48.htm | 7 + .../63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm | 7 + .../64d54496-389b-21a7-0387-25878b2bcc4c.htm | 9 + .../6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm | 13 + .../66013d9b-4126-7d65-05bb-94eb9d134be6.htm | 404 ++++ .../662ea0d6-7a35-be51-5a25-288752509d24.htm | 7 + .../6707f122-af81-e57d-d937-e4000242446f.htm | 9 + .../675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm | 10 + .../679ff642-b87f-24d6-80c5-434c06c71523.htm | 9 + .../68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm | 9 + .../6acc0e43-8cb8-535c-6f39-8163bb21447a.htm | 5 + .../6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm | 9 + .../6b7227c0-7a6a-6342-3b08-917c7de429cc.htm | 60 + .../6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm | 28 + .../6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm | 8 + .../6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm | 8 + .../72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm | 8 + .../747bfb64-7646-38ee-09e3-65455ac597e5.htm | 7 + .../7a4959c4-936a-b924-d525-7becb693a55b.htm | 8 + .../7c73b68e-f842-bfee-55d8-b36488fb35b7.htm | 11 + .../7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm | 12 + .../7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm | 10 + .../7d21be0e-d534-6d93-1476-3aa585a8fea3.htm | 8 + .../7d3a40d7-0ee8-6117-8d32-b236da97778f.htm | 9 + .../7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm | 12 + .../80b0403d-da14-c176-9d01-080fc170a67d.htm | 9 + .../817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm | 15 + .../81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm | 9 + .../859526c5-9283-3edb-386b-905cbaa406fd.htm | 11 + .../88cf999b-5b19-4cfc-adab-b0276f18431a.htm | 7 + .../8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm | 21 + .../8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm | 18 + .../8b245db5-fbb6-18bc-d219-832668d1432a.htm | 8 + .../8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm | 10 + .../8e41c462-a765-51e2-4c3b-de231acba259.htm | 7 + .../8e88c5f2-f5d0-02df-c7cb-9701313411af.htm | 16 + .../8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm | 9 + .../90511f90-497b-fc61-6984-15d76101a6f1.htm | 13 + .../90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm | 11 + .../92b04460-74f1-c388-f3ac-ea510ffc4e06.htm | 12 + .../92e90a8d-e5eb-daea-2804-b99254f25433.htm | 7 + .../93aee3f0-fb9a-e628-9224-0128a91d363a.htm | 12 + .../9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm | 10 + .../9474d6c2-30d9-a39b-3c10-b50286f93813.htm | 9 + .../96b717e2-d860-aa86-3760-d39620a2bb31.htm | 9 + .../98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm | 10 + .../995741fd-f6ea-f11e-ee46-c88de9307e8a.htm | 9 + .../9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm | 7 + .../9d686d62-c22c-20ec-7455-b4adc8070b8c.htm | 15 + .../9d9cf5a5-3349-bfae-7d39-41082644a49e.htm | 9 + .../9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm | 13 + .../a50146be-5b11-1554-db6f-817ea76b9343.htm | 16 + .../a5292253-7fbd-5dfa-819f-1d67d27580d6.htm | 10 + .../a8864de9-4275-a608-f5b0-26d4b313967d.htm | 7 + .../abfab841-a96c-b22d-7cd8-fec3aba92510.htm | 205 ++ .../acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm | 8 + .../acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm | 8 + .../ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm | 8 + .../adaddf64-5e6e-447b-5d81-c38398216201.htm | 13 + .../adc84477-1eb3-bb14-ee09-0525268c45f4.htm | 7 + .../ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm | 8 + .../ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm | 7 + .../aebe0cd6-1499-7da2-2f96-c86d84189b58.htm | 13 + .../af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm | 10 + .../af9edc83-1d26-349b-8105-6064a540e2c7.htm | 8 + .../b29c2176-174b-e620-0e33-9a22730ad05f.htm | 9 + .../b3e934e2-1ddf-35e3-0995-3b555539f33f.htm | 10 + .../b5c75d58-f132-f3ff-217f-e69b252db748.htm | 9 + .../b78d4878-d301-191f-9c53-4f41d3e937e6.htm | 18 + .../b9f05ef6-f80c-5676-1eca-d73833dca177.htm | 7 + .../ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm | 8 + .../ba843001-e657-41e8-7c66-c2473781ed40.htm | 76 + .../bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm | 13 + .../bc474319-2c51-e93f-07e2-9728d609c563.htm | 8 + .../bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm | 10 + .../bcdb40c8-478a-043c-5db0-393001600029.htm | 83 + .../bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm | 63 + .../bf10cc41-d9e2-52c5-0415-1083f0f55489.htm | 10 + .../bf55ab7f-78c8-3879-b8f8-464dc203791e.htm | 10 + .../c0d47063-6820-3464-ed46-94ffd2329683.htm | 7 + .../c2860c42-fc4c-78f8-7d32-195e74262434.htm | 9 + .../c2f3867b-b906-a526-c836-718da1546a78.htm | 9 + .../c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm | 9 + .../c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm | 10 + .../c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm | 14 + .../c7991a63-f63c-20d8-0605-fab6e9f13392.htm | 7 + .../cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm | 8 + .../d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm | 9 + .../d20e5816-faf3-723d-5f2d-ebff462012f1.htm | 29 + .../d329fe20-e750-bf52-a75b-f2383bf1d35a.htm | 11 + .../d416e051-269c-c343-aece-3682b87f3cbc.htm | 14 + .../d516c33b-29ef-9613-62fb-b6717264a32b.htm | 9 + .../d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm | 11 + .../d7215876-6117-ce45-75a4-77dc00c386cd.htm | 8 + .../d8964a64-57ec-3b0c-94b5-247707cd34e8.htm | 8 + .../dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm | 11 + .../db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm | 9 + .../dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm | 23 + .../df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm | 9 + .../e058b656-39e3-5a55-4437-ee869ecbf35e.htm | 9 + .../e05efb85-3736-fa59-2720-a460b898048a.htm | 13 + .../e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm | 9 + .../e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm | 10 + .../e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm | 13 + .../e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm | 8 + .../e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm | 11 + .../e753341a-7040-8dda-8f1e-681e926e9292.htm | 12 + .../e8491570-1fda-7d8e-48b8-c15f26c41d01.htm | 12 + .../e88e79e3-3edc-69e5-1854-23968928c073.htm | 14 + .../e9953cab-b878-4169-fda6-d5addecb267b.htm | 7 + .../eac30137-8237-e01a-ee3d-e599d117c03e.htm | 31 + .../eae9601e-6da0-b304-9836-5e4b1e743f94.htm | 16 + .../eb5261e9-43df-01a5-b974-25c2fd13309c.htm | 13 + .../ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm | 11 + .../ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm | 12 + .../eefee0d8-fb59-4546-386a-53f40c545c43.htm | 12 + .../ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm | 7 + .../ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm | 9 + .../ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm | 7 + .../efb3089a-8900-83fe-ce65-f22e686d7477.htm | 7 + .../efc2cb08-5c2b-c758-477e-d5739183a1ba.htm | 19 + .../f0db6147-f3aa-d599-6371-a89da047bbc5.htm | 14 + .../f28be11d-b67a-765c-441a-d7da336ccf77.htm | 10 + .../f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm | 8 + .../f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm | 8 + .../f42e1d9a-273c-861f-b7db-6244c9266d2c.htm | 26 + .../f55ba01a-50d3-248c-5c34-ba32355db223.htm | 8 + .../f640b978-f990-84a2-015a-40bf256fc37d.htm | 14 + .../f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm | 8 + .../fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm | 5 + .../fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm | 8 + .../fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm | 9 + .../fd95464a-c61d-8ed2-a568-34b825efc047.htm | 7 + .../ff84ba57-4738-8ff0-2356-095dfe1cc159.htm | 14 + SpriteLibrary/Doc/Help/icons/AlertCaution.png | Bin 0 -> 618 bytes SpriteLibrary/Doc/Help/icons/AlertNote.png | Bin 0 -> 3236 bytes .../Doc/Help/icons/AlertSecurity.png | Bin 0 -> 503 bytes SpriteLibrary/Doc/Help/icons/CFW.gif | Bin 0 -> 588 bytes SpriteLibrary/Doc/Help/icons/CodeExample.png | Bin 0 -> 196 bytes SpriteLibrary/Doc/Help/icons/Search.png | Bin 0 -> 343 bytes .../Doc/Help/icons/SectionCollapsed.png | Bin 0 -> 229 bytes .../Doc/Help/icons/SectionExpanded.png | Bin 0 -> 223 bytes SpriteLibrary/Doc/Help/icons/TocClose.gif | Bin 0 -> 893 bytes SpriteLibrary/Doc/Help/icons/TocCollapsed.gif | Bin 0 -> 838 bytes SpriteLibrary/Doc/Help/icons/TocExpanded.gif | Bin 0 -> 837 bytes SpriteLibrary/Doc/Help/icons/TocOpen.gif | Bin 0 -> 896 bytes SpriteLibrary/Doc/Help/icons/favicon.ico | Bin 0 -> 25094 bytes SpriteLibrary/Doc/Help/icons/privclass.gif | Bin 0 -> 621 bytes SpriteLibrary/Doc/Help/icons/privdelegate.gif | Bin 0 -> 1045 bytes .../Doc/Help/icons/privenumeration.gif | Bin 0 -> 597 bytes SpriteLibrary/Doc/Help/icons/privevent.gif | Bin 0 -> 580 bytes .../Doc/Help/icons/privextension.gif | Bin 0 -> 608 bytes SpriteLibrary/Doc/Help/icons/privfield.gif | Bin 0 -> 574 bytes .../Doc/Help/icons/privinterface.gif | Bin 0 -> 585 bytes SpriteLibrary/Doc/Help/icons/privmethod.gif | Bin 0 -> 603 bytes SpriteLibrary/Doc/Help/icons/privproperty.gif | Bin 0 -> 1054 bytes .../Doc/Help/icons/privstructure.gif | Bin 0 -> 630 bytes SpriteLibrary/Doc/Help/icons/protclass.gif | Bin 0 -> 600 bytes SpriteLibrary/Doc/Help/icons/protdelegate.gif | Bin 0 -> 1041 bytes .../Doc/Help/icons/protenumeration.gif | Bin 0 -> 583 bytes SpriteLibrary/Doc/Help/icons/protevent.gif | Bin 0 -> 564 bytes .../Doc/Help/icons/protextension.gif | Bin 0 -> 589 bytes SpriteLibrary/Doc/Help/icons/protfield.gif | Bin 0 -> 570 bytes .../Doc/Help/icons/protinterface.gif | Bin 0 -> 562 bytes SpriteLibrary/Doc/Help/icons/protmethod.gif | Bin 0 -> 183 bytes SpriteLibrary/Doc/Help/icons/protoperator.gif | Bin 0 -> 547 bytes SpriteLibrary/Doc/Help/icons/protproperty.gif | Bin 0 -> 1039 bytes .../Doc/Help/icons/protstructure.gif | Bin 0 -> 619 bytes SpriteLibrary/Doc/Help/icons/pubclass.gif | Bin 0 -> 368 bytes SpriteLibrary/Doc/Help/icons/pubdelegate.gif | Bin 0 -> 1041 bytes .../Doc/Help/icons/pubenumeration.gif | Bin 0 -> 339 bytes SpriteLibrary/Doc/Help/icons/pubevent.gif | Bin 0 -> 314 bytes SpriteLibrary/Doc/Help/icons/pubextension.gif | Bin 0 -> 551 bytes SpriteLibrary/Doc/Help/icons/pubfield.gif | Bin 0 -> 311 bytes SpriteLibrary/Doc/Help/icons/pubinterface.gif | Bin 0 -> 314 bytes SpriteLibrary/Doc/Help/icons/pubmethod.gif | Bin 0 -> 329 bytes SpriteLibrary/Doc/Help/icons/puboperator.gif | Bin 0 -> 310 bytes SpriteLibrary/Doc/Help/icons/pubproperty.gif | Bin 0 -> 609 bytes SpriteLibrary/Doc/Help/icons/pubstructure.gif | Bin 0 -> 595 bytes SpriteLibrary/Doc/Help/icons/slMobile.gif | Bin 0 -> 909 bytes SpriteLibrary/Doc/Help/icons/static.gif | Bin 0 -> 879 bytes SpriteLibrary/Doc/Help/icons/xna.gif | Bin 0 -> 549 bytes SpriteLibrary/Doc/Help/index.html | 14 + .../Doc/Help/scripts/branding-Website.js | 624 ++++++ SpriteLibrary/Doc/Help/scripts/branding.js | 560 +++++ .../Doc/Help/scripts/clipboard.min.js | 7 + SpriteLibrary/Doc/Help/scripts/highlight.js | 148 ++ .../Doc/Help/scripts/jquery-1.11.0.min.js | 4 + SpriteLibrary/Doc/Help/search.html | 35 + .../Doc/Help/styles/branding-Help1.css | 40 + .../Doc/Help/styles/branding-HelpViewer.css | 48 + .../Doc/Help/styles/branding-Website.css | 156 ++ .../Doc/Help/styles/branding-cs-CZ.css | 3 + .../Doc/Help/styles/branding-de-DE.css | 3 + .../Doc/Help/styles/branding-en-US.css | 3 + .../Doc/Help/styles/branding-es-ES.css | 3 + .../Doc/Help/styles/branding-fr-FR.css | 3 + .../Doc/Help/styles/branding-it-IT.css | 3 + .../Doc/Help/styles/branding-ja-JP.css | 18 + .../Doc/Help/styles/branding-ko-KR.css | 19 + .../Doc/Help/styles/branding-pl-PL.css | 3 + .../Doc/Help/styles/branding-pt-BR.css | 3 + .../Doc/Help/styles/branding-ru-RU.css | 3 + .../Doc/Help/styles/branding-tr-TR.css | 3 + .../Doc/Help/styles/branding-zh-CN.css | 18 + .../Doc/Help/styles/branding-zh-TW.css | 18 + SpriteLibrary/Doc/Help/styles/branding.css | 577 +++++ SpriteLibrary/Doc/Help/styles/highlight.css | 27 + .../07a473e4-4716-e5b9-c7d2-c4748265fc58.xml | 1 + .../154fc8b0-0d6c-003e-be50-c94da6bc4597.xml | 1 + .../1f2c365c-e65b-3894-2e47-41f07250bbc0.xml | 1 + .../2788d4d5-88bf-1154-dd17-8d4b99a79118.xml | 1 + .../2c9b874d-5097-98bf-908c-f6bac5d647d3.xml | 1 + .../323c4f03-703d-0898-c73e-40eb5784c05f.xml | 1 + .../4141394a-0d7d-5cf8-6b01-0a4fb43159ab.xml | 1 + .../4e310248-8e1a-76aa-edbc-a83f4ba9b425.xml | 1 + .../50eae5e0-c59c-9d9c-d551-21dba8696ac9.xml | 1 + .../66013d9b-4126-7d65-05bb-94eb9d134be6.xml | 1 + .../6b7227c0-7a6a-6342-3b08-917c7de429cc.xml | 1 + .../6d383ed6-ff9b-f1b0-a53d-54ea41795870.xml | 1 + .../817b64cb-8c4b-af50-69ba-6762e8ae51c5.xml | 1 + .../8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.xml | 1 + .../92b04460-74f1-c388-f3ac-ea510ffc4e06.xml | 1 + .../9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.xml | 1 + .../abfab841-a96c-b22d-7cd8-fec3aba92510.xml | 1 + .../adaddf64-5e6e-447b-5d81-c38398216201.xml | 1 + .../ae6c1c82-0519-4751-0b6d-f264c484e4cb.xml | 1 + .../b29c2176-174b-e620-0e33-9a22730ad05f.xml | 1 + .../bcdb40c8-478a-043c-5db0-393001600029.xml | 1 + .../bdcfa83c-c4a7-49f3-4d49-2f865014aee6.xml | 1 + .../c6c542de-2b1f-1086-b5b2-56b7e9a9525f.xml | 1 + .../eae9601e-6da0-b304-9836-5e4b1e743f94.xml | 1 + .../f42e1d9a-273c-861f-b7db-6244c9266d2c.xml | 1 + .../fd95464a-c61d-8ed2-a568-34b825efc047.xml | 1 + SpriteLibrary/Doc/Help/toc/roottoc.xml | 1 + SpriteLibrary/Doc/MakeHelp.bat | 2 + SpriteLibrary/Doc/PerlXML2Doc.pl | 75 + SpriteLibrary/Doc/SpriteLibrary.shfbproj | 101 + SpriteLibrary/Doc/forPDF.html | 551 +++++ SpriteLibrary/KeyMessageFilter.cs | 107 + SpriteLibrary/Properties/AssemblyInfo.cs | 36 + .../Properties/Resources.Designer.cs | 75 + SpriteLibrary/Properties/Resources.resx | 124 ++ SpriteLibrary/Resources/ChangeLog.rtf | 70 + SpriteLibrary/SmartImage.cs | 457 ++++ SpriteLibrary/Sprite.cs | 1897 +++++++++++++++++ SpriteLibrary/SpriteController.cs | 1364 ++++++++++++ SpriteLibrary/SpriteLibrary.csproj | 85 + SpriteLibrary/SpritePayload.cs | 36 + SpriteLibrary/bin/Release/SpriteLibrary.XML | 1766 +++++++++++++++ SpriteLibrary/bin/Release/SpriteLibrary.dll | Bin 0 -> 66048 bytes SpriteLibrary/bin/Release/SpriteLibrary.pdb | Bin 0 -> 138752 bytes .../obj/Release/CoreCompileInputs.cache | 1 + .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 713 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 7437 bytes ...riteLibrary.Properties.Resources.resources | Bin 0 -> 8537 bytes .../SpriteLibrary.csproj.FileListAbsolute.txt | 8 + ...priteLibrary.csproj.GenerateResource.Cache | Bin 0 -> 997 bytes ...brary.csprojResolveAssemblyReference.cache | Bin 0 -> 2682 bytes SpriteLibrary/obj/Release/SpriteLibrary.dll | Bin 0 -> 66048 bytes SpriteLibrary/obj/Release/SpriteLibrary.pdb | Bin 0 -> 138752 bytes .../Properties.Resources.Designer.cs.dll | Bin 0 -> 3072 bytes ...le_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs | 0 ...le_5937a670-0e60-4077-877b-f7221da3dda1.cs | 0 ...le_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs | 0 369 files changed, 14030 insertions(+) create mode 100644 .vs/SpriteLibrary/v14/.suo create mode 100644 .vs/SpriteLibrary/v15/.suo create mode 100644 SpriteLibrary.sln create mode 100644 SpriteLibrary/Doc/Help/Documentation.msha create mode 100644 SpriteLibrary/Doc/Help/Documentation.mshc create mode 100644 SpriteLibrary/Doc/Help/HelpLibraryManagerLauncher.exe create mode 100644 SpriteLibrary/Doc/Help/Install_Documentation.bat create mode 100644 SpriteLibrary/Doc/Help/LastBuild.log create mode 100644 SpriteLibrary/Doc/Help/Remove_Documentation.bat create mode 100644 SpriteLibrary/Doc/Help/SearchHelp.aspx create mode 100644 SpriteLibrary/Doc/Help/SearchHelp.inc.php create mode 100644 SpriteLibrary/Doc/Help/SearchHelp.php create mode 100644 SpriteLibrary/Doc/Help/Web.Config create mode 100644 SpriteLibrary/Doc/Help/WebKI.xml create mode 100644 SpriteLibrary/Doc/Help/WebTOC.xml create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_100.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_101.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_102.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_103.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_104.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_105.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_106.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_107.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_108.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_109.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_110.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_111.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_112.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_113.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_114.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_115.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_116.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_117.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_118.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_119.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_122.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_97.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_98.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_99.json create mode 100644 SpriteLibrary/Doc/Help/fti/FTI_Files.json create mode 100644 SpriteLibrary/Doc/Help/html/00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm create mode 100644 SpriteLibrary/Doc/Help/html/01fdd72c-b202-8593-db2a-e1373358dd66.htm create mode 100644 SpriteLibrary/Doc/Help/html/07a473e4-4716-e5b9-c7d2-c4748265fc58.htm create mode 100644 SpriteLibrary/Doc/Help/html/08442d70-3a79-fa24-4f3e-eddc5c102938.htm create mode 100644 SpriteLibrary/Doc/Help/html/0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm create mode 100644 SpriteLibrary/Doc/Help/html/0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm create mode 100644 SpriteLibrary/Doc/Help/html/0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm create mode 100644 SpriteLibrary/Doc/Help/html/0e8b825f-f8df-9f14-41ec-f00778409dfb.htm create mode 100644 SpriteLibrary/Doc/Help/html/0f4e570a-2888-8819-176b-9dd070ca7db4.htm create mode 100644 SpriteLibrary/Doc/Help/html/0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm create mode 100644 SpriteLibrary/Doc/Help/html/139d1443-5e11-02ed-7534-eb0f857804da.htm create mode 100644 SpriteLibrary/Doc/Help/html/154fc8b0-0d6c-003e-be50-c94da6bc4597.htm create mode 100644 SpriteLibrary/Doc/Help/html/16df05cc-8770-7cbe-f754-ba9e386674ad.htm create mode 100644 SpriteLibrary/Doc/Help/html/17255a69-f623-3a42-a7ce-db1eb348581a.htm create mode 100644 SpriteLibrary/Doc/Help/html/1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm create mode 100644 SpriteLibrary/Doc/Help/html/17ee5c77-8351-af30-dc43-9458d683a69e.htm create mode 100644 SpriteLibrary/Doc/Help/html/18405dcf-237d-db66-cf64-0e08b0d16b41.htm create mode 100644 SpriteLibrary/Doc/Help/html/184a1964-91ec-6f0d-b7cf-95b722599d69.htm create mode 100644 SpriteLibrary/Doc/Help/html/1bab1e49-641a-5648-d034-4298d8158019.htm create mode 100644 SpriteLibrary/Doc/Help/html/1f2c365c-e65b-3894-2e47-41f07250bbc0.htm create mode 100644 SpriteLibrary/Doc/Help/html/20db7ecc-35df-8911-2615-1f2b8777f03b.htm create mode 100644 SpriteLibrary/Doc/Help/html/23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm create mode 100644 SpriteLibrary/Doc/Help/html/25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm create mode 100644 SpriteLibrary/Doc/Help/html/2695c170-24ea-95d2-7f85-34c3930416b5.htm create mode 100644 SpriteLibrary/Doc/Help/html/27051af5-8ad4-0b54-231d-456499ae5b51.htm create mode 100644 SpriteLibrary/Doc/Help/html/2788d4d5-88bf-1154-dd17-8d4b99a79118.htm create mode 100644 SpriteLibrary/Doc/Help/html/29f62d1a-212b-273e-582e-670c1ea2856c.htm create mode 100644 SpriteLibrary/Doc/Help/html/2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm create mode 100644 SpriteLibrary/Doc/Help/html/2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm create mode 100644 SpriteLibrary/Doc/Help/html/2c9b874d-5097-98bf-908c-f6bac5d647d3.htm create mode 100644 SpriteLibrary/Doc/Help/html/323c4f03-703d-0898-c73e-40eb5784c05f.htm create mode 100644 SpriteLibrary/Doc/Help/html/34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm create mode 100644 SpriteLibrary/Doc/Help/html/36d40ecf-484f-3b53-43e4-87ed9108cb76.htm create mode 100644 SpriteLibrary/Doc/Help/html/37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm create mode 100644 SpriteLibrary/Doc/Help/html/38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm create mode 100644 SpriteLibrary/Doc/Help/html/3a7614d3-cfe9-ce52-55be-ca5324839e92.htm create mode 100644 SpriteLibrary/Doc/Help/html/3aabe50b-5222-99aa-4654-356baa30033a.htm create mode 100644 SpriteLibrary/Doc/Help/html/3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm create mode 100644 SpriteLibrary/Doc/Help/html/3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm create mode 100644 SpriteLibrary/Doc/Help/html/4067393e-d724-b01d-dc77-947440c6c444.htm create mode 100644 SpriteLibrary/Doc/Help/html/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm create mode 100644 SpriteLibrary/Doc/Help/html/41ac663a-2019-6a14-5ffd-16dfc7472578.htm create mode 100644 SpriteLibrary/Doc/Help/html/447d1a9a-0e17-9827-2a01-438434c1b879.htm create mode 100644 SpriteLibrary/Doc/Help/html/451487c4-0cca-2c80-9b71-b116cbe00d6e.htm create mode 100644 SpriteLibrary/Doc/Help/html/4716eb02-e702-b61a-126a-362af50ca6d5.htm create mode 100644 SpriteLibrary/Doc/Help/html/48ff9be7-1395-25af-3585-3d32eba07309.htm create mode 100644 SpriteLibrary/Doc/Help/html/49befa66-d9d0-400c-1fc2-ac57f17433f1.htm create mode 100644 SpriteLibrary/Doc/Help/html/4a6fe677-5369-6c0a-1e61-81355aa238b1.htm create mode 100644 SpriteLibrary/Doc/Help/html/4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm create mode 100644 SpriteLibrary/Doc/Help/html/4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm create mode 100644 SpriteLibrary/Doc/Help/html/509560bd-f402-7e7f-a461-46845061a5fc.htm create mode 100644 SpriteLibrary/Doc/Help/html/50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm create mode 100644 SpriteLibrary/Doc/Help/html/51c9d545-e5c3-888d-d033-17085734aa1d.htm create mode 100644 SpriteLibrary/Doc/Help/html/5284b83c-61a7-aefe-4087-f7137551b783.htm create mode 100644 SpriteLibrary/Doc/Help/html/56b507fc-3071-20e9-63a7-b33484f3e687.htm create mode 100644 SpriteLibrary/Doc/Help/html/56d803c5-e2ad-dd16-0592-b816f726498d.htm create mode 100644 SpriteLibrary/Doc/Help/html/57a9f458-c6c8-d106-aad4-b2547736909a.htm create mode 100644 SpriteLibrary/Doc/Help/html/5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm create mode 100644 SpriteLibrary/Doc/Help/html/5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm create mode 100644 SpriteLibrary/Doc/Help/html/5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm create mode 100644 SpriteLibrary/Doc/Help/html/5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm create mode 100644 SpriteLibrary/Doc/Help/html/5d507565-cf0d-de52-2253-b55396e3886a.htm create mode 100644 SpriteLibrary/Doc/Help/html/603ff402-efe2-bede-5c71-1a9583da0800.htm create mode 100644 SpriteLibrary/Doc/Help/html/60fe71db-5ea2-cf93-f216-79b15a6779db.htm create mode 100644 SpriteLibrary/Doc/Help/html/6273fa69-a784-9916-a8eb-5b16529fdf48.htm create mode 100644 SpriteLibrary/Doc/Help/html/63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm create mode 100644 SpriteLibrary/Doc/Help/html/64d54496-389b-21a7-0387-25878b2bcc4c.htm create mode 100644 SpriteLibrary/Doc/Help/html/6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm create mode 100644 SpriteLibrary/Doc/Help/html/66013d9b-4126-7d65-05bb-94eb9d134be6.htm create mode 100644 SpriteLibrary/Doc/Help/html/662ea0d6-7a35-be51-5a25-288752509d24.htm create mode 100644 SpriteLibrary/Doc/Help/html/6707f122-af81-e57d-d937-e4000242446f.htm create mode 100644 SpriteLibrary/Doc/Help/html/675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm create mode 100644 SpriteLibrary/Doc/Help/html/679ff642-b87f-24d6-80c5-434c06c71523.htm create mode 100644 SpriteLibrary/Doc/Help/html/68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm create mode 100644 SpriteLibrary/Doc/Help/html/6acc0e43-8cb8-535c-6f39-8163bb21447a.htm create mode 100644 SpriteLibrary/Doc/Help/html/6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm create mode 100644 SpriteLibrary/Doc/Help/html/6b7227c0-7a6a-6342-3b08-917c7de429cc.htm create mode 100644 SpriteLibrary/Doc/Help/html/6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm create mode 100644 SpriteLibrary/Doc/Help/html/6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm create mode 100644 SpriteLibrary/Doc/Help/html/6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm create mode 100644 SpriteLibrary/Doc/Help/html/72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm create mode 100644 SpriteLibrary/Doc/Help/html/747bfb64-7646-38ee-09e3-65455ac597e5.htm create mode 100644 SpriteLibrary/Doc/Help/html/7a4959c4-936a-b924-d525-7becb693a55b.htm create mode 100644 SpriteLibrary/Doc/Help/html/7c73b68e-f842-bfee-55d8-b36488fb35b7.htm create mode 100644 SpriteLibrary/Doc/Help/html/7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm create mode 100644 SpriteLibrary/Doc/Help/html/7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm create mode 100644 SpriteLibrary/Doc/Help/html/7d21be0e-d534-6d93-1476-3aa585a8fea3.htm create mode 100644 SpriteLibrary/Doc/Help/html/7d3a40d7-0ee8-6117-8d32-b236da97778f.htm create mode 100644 SpriteLibrary/Doc/Help/html/7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm create mode 100644 SpriteLibrary/Doc/Help/html/80b0403d-da14-c176-9d01-080fc170a67d.htm create mode 100644 SpriteLibrary/Doc/Help/html/817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm create mode 100644 SpriteLibrary/Doc/Help/html/81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm create mode 100644 SpriteLibrary/Doc/Help/html/859526c5-9283-3edb-386b-905cbaa406fd.htm create mode 100644 SpriteLibrary/Doc/Help/html/88cf999b-5b19-4cfc-adab-b0276f18431a.htm create mode 100644 SpriteLibrary/Doc/Help/html/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm create mode 100644 SpriteLibrary/Doc/Help/html/8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm create mode 100644 SpriteLibrary/Doc/Help/html/8b245db5-fbb6-18bc-d219-832668d1432a.htm create mode 100644 SpriteLibrary/Doc/Help/html/8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm create mode 100644 SpriteLibrary/Doc/Help/html/8e41c462-a765-51e2-4c3b-de231acba259.htm create mode 100644 SpriteLibrary/Doc/Help/html/8e88c5f2-f5d0-02df-c7cb-9701313411af.htm create mode 100644 SpriteLibrary/Doc/Help/html/8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm create mode 100644 SpriteLibrary/Doc/Help/html/90511f90-497b-fc61-6984-15d76101a6f1.htm create mode 100644 SpriteLibrary/Doc/Help/html/90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm create mode 100644 SpriteLibrary/Doc/Help/html/92b04460-74f1-c388-f3ac-ea510ffc4e06.htm create mode 100644 SpriteLibrary/Doc/Help/html/92e90a8d-e5eb-daea-2804-b99254f25433.htm create mode 100644 SpriteLibrary/Doc/Help/html/93aee3f0-fb9a-e628-9224-0128a91d363a.htm create mode 100644 SpriteLibrary/Doc/Help/html/9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm create mode 100644 SpriteLibrary/Doc/Help/html/9474d6c2-30d9-a39b-3c10-b50286f93813.htm create mode 100644 SpriteLibrary/Doc/Help/html/96b717e2-d860-aa86-3760-d39620a2bb31.htm create mode 100644 SpriteLibrary/Doc/Help/html/98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm create mode 100644 SpriteLibrary/Doc/Help/html/995741fd-f6ea-f11e-ee46-c88de9307e8a.htm create mode 100644 SpriteLibrary/Doc/Help/html/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm create mode 100644 SpriteLibrary/Doc/Help/html/9d686d62-c22c-20ec-7455-b4adc8070b8c.htm create mode 100644 SpriteLibrary/Doc/Help/html/9d9cf5a5-3349-bfae-7d39-41082644a49e.htm create mode 100644 SpriteLibrary/Doc/Help/html/9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm create mode 100644 SpriteLibrary/Doc/Help/html/a50146be-5b11-1554-db6f-817ea76b9343.htm create mode 100644 SpriteLibrary/Doc/Help/html/a5292253-7fbd-5dfa-819f-1d67d27580d6.htm create mode 100644 SpriteLibrary/Doc/Help/html/a8864de9-4275-a608-f5b0-26d4b313967d.htm create mode 100644 SpriteLibrary/Doc/Help/html/abfab841-a96c-b22d-7cd8-fec3aba92510.htm create mode 100644 SpriteLibrary/Doc/Help/html/acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm create mode 100644 SpriteLibrary/Doc/Help/html/acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm create mode 100644 SpriteLibrary/Doc/Help/html/ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm create mode 100644 SpriteLibrary/Doc/Help/html/adaddf64-5e6e-447b-5d81-c38398216201.htm create mode 100644 SpriteLibrary/Doc/Help/html/adc84477-1eb3-bb14-ee09-0525268c45f4.htm create mode 100644 SpriteLibrary/Doc/Help/html/ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm create mode 100644 SpriteLibrary/Doc/Help/html/ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm create mode 100644 SpriteLibrary/Doc/Help/html/aebe0cd6-1499-7da2-2f96-c86d84189b58.htm create mode 100644 SpriteLibrary/Doc/Help/html/af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm create mode 100644 SpriteLibrary/Doc/Help/html/af9edc83-1d26-349b-8105-6064a540e2c7.htm create mode 100644 SpriteLibrary/Doc/Help/html/b29c2176-174b-e620-0e33-9a22730ad05f.htm create mode 100644 SpriteLibrary/Doc/Help/html/b3e934e2-1ddf-35e3-0995-3b555539f33f.htm create mode 100644 SpriteLibrary/Doc/Help/html/b5c75d58-f132-f3ff-217f-e69b252db748.htm create mode 100644 SpriteLibrary/Doc/Help/html/b78d4878-d301-191f-9c53-4f41d3e937e6.htm create mode 100644 SpriteLibrary/Doc/Help/html/b9f05ef6-f80c-5676-1eca-d73833dca177.htm create mode 100644 SpriteLibrary/Doc/Help/html/ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm create mode 100644 SpriteLibrary/Doc/Help/html/ba843001-e657-41e8-7c66-c2473781ed40.htm create mode 100644 SpriteLibrary/Doc/Help/html/bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm create mode 100644 SpriteLibrary/Doc/Help/html/bc474319-2c51-e93f-07e2-9728d609c563.htm create mode 100644 SpriteLibrary/Doc/Help/html/bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm create mode 100644 SpriteLibrary/Doc/Help/html/bcdb40c8-478a-043c-5db0-393001600029.htm create mode 100644 SpriteLibrary/Doc/Help/html/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm create mode 100644 SpriteLibrary/Doc/Help/html/bf10cc41-d9e2-52c5-0415-1083f0f55489.htm create mode 100644 SpriteLibrary/Doc/Help/html/bf55ab7f-78c8-3879-b8f8-464dc203791e.htm create mode 100644 SpriteLibrary/Doc/Help/html/c0d47063-6820-3464-ed46-94ffd2329683.htm create mode 100644 SpriteLibrary/Doc/Help/html/c2860c42-fc4c-78f8-7d32-195e74262434.htm create mode 100644 SpriteLibrary/Doc/Help/html/c2f3867b-b906-a526-c836-718da1546a78.htm create mode 100644 SpriteLibrary/Doc/Help/html/c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm create mode 100644 SpriteLibrary/Doc/Help/html/c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm create mode 100644 SpriteLibrary/Doc/Help/html/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm create mode 100644 SpriteLibrary/Doc/Help/html/c7991a63-f63c-20d8-0605-fab6e9f13392.htm create mode 100644 SpriteLibrary/Doc/Help/html/cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm create mode 100644 SpriteLibrary/Doc/Help/html/d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm create mode 100644 SpriteLibrary/Doc/Help/html/d20e5816-faf3-723d-5f2d-ebff462012f1.htm create mode 100644 SpriteLibrary/Doc/Help/html/d329fe20-e750-bf52-a75b-f2383bf1d35a.htm create mode 100644 SpriteLibrary/Doc/Help/html/d416e051-269c-c343-aece-3682b87f3cbc.htm create mode 100644 SpriteLibrary/Doc/Help/html/d516c33b-29ef-9613-62fb-b6717264a32b.htm create mode 100644 SpriteLibrary/Doc/Help/html/d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm create mode 100644 SpriteLibrary/Doc/Help/html/d7215876-6117-ce45-75a4-77dc00c386cd.htm create mode 100644 SpriteLibrary/Doc/Help/html/d8964a64-57ec-3b0c-94b5-247707cd34e8.htm create mode 100644 SpriteLibrary/Doc/Help/html/dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm create mode 100644 SpriteLibrary/Doc/Help/html/db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm create mode 100644 SpriteLibrary/Doc/Help/html/dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm create mode 100644 SpriteLibrary/Doc/Help/html/df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm create mode 100644 SpriteLibrary/Doc/Help/html/e058b656-39e3-5a55-4437-ee869ecbf35e.htm create mode 100644 SpriteLibrary/Doc/Help/html/e05efb85-3736-fa59-2720-a460b898048a.htm create mode 100644 SpriteLibrary/Doc/Help/html/e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm create mode 100644 SpriteLibrary/Doc/Help/html/e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm create mode 100644 SpriteLibrary/Doc/Help/html/e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm create mode 100644 SpriteLibrary/Doc/Help/html/e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm create mode 100644 SpriteLibrary/Doc/Help/html/e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm create mode 100644 SpriteLibrary/Doc/Help/html/e753341a-7040-8dda-8f1e-681e926e9292.htm create mode 100644 SpriteLibrary/Doc/Help/html/e8491570-1fda-7d8e-48b8-c15f26c41d01.htm create mode 100644 SpriteLibrary/Doc/Help/html/e88e79e3-3edc-69e5-1854-23968928c073.htm create mode 100644 SpriteLibrary/Doc/Help/html/e9953cab-b878-4169-fda6-d5addecb267b.htm create mode 100644 SpriteLibrary/Doc/Help/html/eac30137-8237-e01a-ee3d-e599d117c03e.htm create mode 100644 SpriteLibrary/Doc/Help/html/eae9601e-6da0-b304-9836-5e4b1e743f94.htm create mode 100644 SpriteLibrary/Doc/Help/html/eb5261e9-43df-01a5-b974-25c2fd13309c.htm create mode 100644 SpriteLibrary/Doc/Help/html/ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm create mode 100644 SpriteLibrary/Doc/Help/html/ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm create mode 100644 SpriteLibrary/Doc/Help/html/eefee0d8-fb59-4546-386a-53f40c545c43.htm create mode 100644 SpriteLibrary/Doc/Help/html/ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm create mode 100644 SpriteLibrary/Doc/Help/html/ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm create mode 100644 SpriteLibrary/Doc/Help/html/ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm create mode 100644 SpriteLibrary/Doc/Help/html/efb3089a-8900-83fe-ce65-f22e686d7477.htm create mode 100644 SpriteLibrary/Doc/Help/html/efc2cb08-5c2b-c758-477e-d5739183a1ba.htm create mode 100644 SpriteLibrary/Doc/Help/html/f0db6147-f3aa-d599-6371-a89da047bbc5.htm create mode 100644 SpriteLibrary/Doc/Help/html/f28be11d-b67a-765c-441a-d7da336ccf77.htm create mode 100644 SpriteLibrary/Doc/Help/html/f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm create mode 100644 SpriteLibrary/Doc/Help/html/f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm create mode 100644 SpriteLibrary/Doc/Help/html/f42e1d9a-273c-861f-b7db-6244c9266d2c.htm create mode 100644 SpriteLibrary/Doc/Help/html/f55ba01a-50d3-248c-5c34-ba32355db223.htm create mode 100644 SpriteLibrary/Doc/Help/html/f640b978-f990-84a2-015a-40bf256fc37d.htm create mode 100644 SpriteLibrary/Doc/Help/html/f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm create mode 100644 SpriteLibrary/Doc/Help/html/fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm create mode 100644 SpriteLibrary/Doc/Help/html/fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm create mode 100644 SpriteLibrary/Doc/Help/html/fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm create mode 100644 SpriteLibrary/Doc/Help/html/fd95464a-c61d-8ed2-a568-34b825efc047.htm create mode 100644 SpriteLibrary/Doc/Help/html/ff84ba57-4738-8ff0-2356-095dfe1cc159.htm create mode 100644 SpriteLibrary/Doc/Help/icons/AlertCaution.png create mode 100644 SpriteLibrary/Doc/Help/icons/AlertNote.png create mode 100644 SpriteLibrary/Doc/Help/icons/AlertSecurity.png create mode 100644 SpriteLibrary/Doc/Help/icons/CFW.gif create mode 100644 SpriteLibrary/Doc/Help/icons/CodeExample.png create mode 100644 SpriteLibrary/Doc/Help/icons/Search.png create mode 100644 SpriteLibrary/Doc/Help/icons/SectionCollapsed.png create mode 100644 SpriteLibrary/Doc/Help/icons/SectionExpanded.png create mode 100644 SpriteLibrary/Doc/Help/icons/TocClose.gif create mode 100644 SpriteLibrary/Doc/Help/icons/TocCollapsed.gif create mode 100644 SpriteLibrary/Doc/Help/icons/TocExpanded.gif create mode 100644 SpriteLibrary/Doc/Help/icons/TocOpen.gif create mode 100644 SpriteLibrary/Doc/Help/icons/favicon.ico create mode 100644 SpriteLibrary/Doc/Help/icons/privclass.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privdelegate.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privenumeration.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privevent.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privextension.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privfield.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privinterface.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privmethod.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privproperty.gif create mode 100644 SpriteLibrary/Doc/Help/icons/privstructure.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protclass.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protdelegate.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protenumeration.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protevent.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protextension.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protfield.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protinterface.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protmethod.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protoperator.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protproperty.gif create mode 100644 SpriteLibrary/Doc/Help/icons/protstructure.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubclass.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubdelegate.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubenumeration.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubevent.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubextension.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubfield.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubinterface.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubmethod.gif create mode 100644 SpriteLibrary/Doc/Help/icons/puboperator.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubproperty.gif create mode 100644 SpriteLibrary/Doc/Help/icons/pubstructure.gif create mode 100644 SpriteLibrary/Doc/Help/icons/slMobile.gif create mode 100644 SpriteLibrary/Doc/Help/icons/static.gif create mode 100644 SpriteLibrary/Doc/Help/icons/xna.gif create mode 100644 SpriteLibrary/Doc/Help/index.html create mode 100644 SpriteLibrary/Doc/Help/scripts/branding-Website.js create mode 100644 SpriteLibrary/Doc/Help/scripts/branding.js create mode 100644 SpriteLibrary/Doc/Help/scripts/clipboard.min.js create mode 100644 SpriteLibrary/Doc/Help/scripts/highlight.js create mode 100644 SpriteLibrary/Doc/Help/scripts/jquery-1.11.0.min.js create mode 100644 SpriteLibrary/Doc/Help/search.html create mode 100644 SpriteLibrary/Doc/Help/styles/branding-Help1.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-HelpViewer.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-Website.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-cs-CZ.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-de-DE.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-en-US.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-es-ES.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-fr-FR.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-it-IT.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-ja-JP.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-ko-KR.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-pl-PL.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-pt-BR.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-ru-RU.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-tr-TR.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-zh-CN.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding-zh-TW.css create mode 100644 SpriteLibrary/Doc/Help/styles/branding.css create mode 100644 SpriteLibrary/Doc/Help/styles/highlight.css create mode 100644 SpriteLibrary/Doc/Help/toc/07a473e4-4716-e5b9-c7d2-c4748265fc58.xml create mode 100644 SpriteLibrary/Doc/Help/toc/154fc8b0-0d6c-003e-be50-c94da6bc4597.xml create mode 100644 SpriteLibrary/Doc/Help/toc/1f2c365c-e65b-3894-2e47-41f07250bbc0.xml create mode 100644 SpriteLibrary/Doc/Help/toc/2788d4d5-88bf-1154-dd17-8d4b99a79118.xml create mode 100644 SpriteLibrary/Doc/Help/toc/2c9b874d-5097-98bf-908c-f6bac5d647d3.xml create mode 100644 SpriteLibrary/Doc/Help/toc/323c4f03-703d-0898-c73e-40eb5784c05f.xml create mode 100644 SpriteLibrary/Doc/Help/toc/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.xml create mode 100644 SpriteLibrary/Doc/Help/toc/4e310248-8e1a-76aa-edbc-a83f4ba9b425.xml create mode 100644 SpriteLibrary/Doc/Help/toc/50eae5e0-c59c-9d9c-d551-21dba8696ac9.xml create mode 100644 SpriteLibrary/Doc/Help/toc/66013d9b-4126-7d65-05bb-94eb9d134be6.xml create mode 100644 SpriteLibrary/Doc/Help/toc/6b7227c0-7a6a-6342-3b08-917c7de429cc.xml create mode 100644 SpriteLibrary/Doc/Help/toc/6d383ed6-ff9b-f1b0-a53d-54ea41795870.xml create mode 100644 SpriteLibrary/Doc/Help/toc/817b64cb-8c4b-af50-69ba-6762e8ae51c5.xml create mode 100644 SpriteLibrary/Doc/Help/toc/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.xml create mode 100644 SpriteLibrary/Doc/Help/toc/92b04460-74f1-c388-f3ac-ea510ffc4e06.xml create mode 100644 SpriteLibrary/Doc/Help/toc/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.xml create mode 100644 SpriteLibrary/Doc/Help/toc/abfab841-a96c-b22d-7cd8-fec3aba92510.xml create mode 100644 SpriteLibrary/Doc/Help/toc/adaddf64-5e6e-447b-5d81-c38398216201.xml create mode 100644 SpriteLibrary/Doc/Help/toc/ae6c1c82-0519-4751-0b6d-f264c484e4cb.xml create mode 100644 SpriteLibrary/Doc/Help/toc/b29c2176-174b-e620-0e33-9a22730ad05f.xml create mode 100644 SpriteLibrary/Doc/Help/toc/bcdb40c8-478a-043c-5db0-393001600029.xml create mode 100644 SpriteLibrary/Doc/Help/toc/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.xml create mode 100644 SpriteLibrary/Doc/Help/toc/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.xml create mode 100644 SpriteLibrary/Doc/Help/toc/eae9601e-6da0-b304-9836-5e4b1e743f94.xml create mode 100644 SpriteLibrary/Doc/Help/toc/f42e1d9a-273c-861f-b7db-6244c9266d2c.xml create mode 100644 SpriteLibrary/Doc/Help/toc/fd95464a-c61d-8ed2-a568-34b825efc047.xml create mode 100644 SpriteLibrary/Doc/Help/toc/roottoc.xml create mode 100644 SpriteLibrary/Doc/MakeHelp.bat create mode 100644 SpriteLibrary/Doc/PerlXML2Doc.pl create mode 100644 SpriteLibrary/Doc/SpriteLibrary.shfbproj create mode 100644 SpriteLibrary/Doc/forPDF.html create mode 100644 SpriteLibrary/KeyMessageFilter.cs create mode 100644 SpriteLibrary/Properties/AssemblyInfo.cs create mode 100644 SpriteLibrary/Properties/Resources.Designer.cs create mode 100644 SpriteLibrary/Properties/Resources.resx create mode 100644 SpriteLibrary/Resources/ChangeLog.rtf create mode 100644 SpriteLibrary/SmartImage.cs create mode 100644 SpriteLibrary/Sprite.cs create mode 100644 SpriteLibrary/SpriteController.cs create mode 100644 SpriteLibrary/SpriteLibrary.csproj create mode 100644 SpriteLibrary/SpritePayload.cs create mode 100644 SpriteLibrary/bin/Release/SpriteLibrary.XML create mode 100644 SpriteLibrary/bin/Release/SpriteLibrary.dll create mode 100644 SpriteLibrary/bin/Release/SpriteLibrary.pdb create mode 100644 SpriteLibrary/obj/Release/CoreCompileInputs.cache create mode 100644 SpriteLibrary/obj/Release/DesignTimeResolveAssemblyReferences.cache create mode 100644 SpriteLibrary/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.Properties.Resources.resources create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.csproj.FileListAbsolute.txt create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.csproj.GenerateResource.Cache create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.csprojResolveAssemblyReference.cache create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.dll create mode 100644 SpriteLibrary/obj/Release/SpriteLibrary.pdb create mode 100644 SpriteLibrary/obj/Release/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 SpriteLibrary/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs create mode 100644 SpriteLibrary/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs create mode 100644 SpriteLibrary/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs diff --git a/.vs/SpriteLibrary/v14/.suo b/.vs/SpriteLibrary/v14/.suo new file mode 100644 index 0000000000000000000000000000000000000000..65beebbfd2cdbb3706bfc40b3f0a8fdbab80b810 GIT binary patch literal 61440 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 B7s&ts literal 0 HcmV?d00001 diff --git a/.vs/SpriteLibrary/v15/.suo b/.vs/SpriteLibrary/v15/.suo new file mode 100644 index 0000000000000000000000000000000000000000..59bb85e38a12ba4cb10007b4769e57957ea8a6c4 GIT binary patch literal 64512 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 + + SpriteLibrary + + +
+ Vendor Name + en-us + SpriteLibrary + SpriteLibrary +
+
+
+ + Documentation + Documentation.mshc +
+
+ + diff --git a/SpriteLibrary/Doc/Help/Documentation.mshc b/SpriteLibrary/Doc/Help/Documentation.mshc new file mode 100644 index 0000000000000000000000000000000000000000..212b7bc82c213a0c1a81756b81f47da982841dad GIT binary patch literal 486055 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�ZcXxR>^ut`NltRHlzziZv2K<`qRRth&>U17+TTG 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%0AEoO-6N=hxtxhXcYVa>~Pb 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/VZWjjZm6!~g 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%0A3XZPfw#LpP>&J|VM0)hZJ#z;FEt-|vPC)=2k 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 VBNLUXt-7uHb&g84`WgS%{{WHA-1-0j literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/HelpLibraryManagerLauncher.exe b/SpriteLibrary/Doc/Help/HelpLibraryManagerLauncher.exe new file mode 100644 index 0000000000000000000000000000000000000000..e36e145de5820d3ffdb68068802e70144b8846fa GIT binary patch literal 32768 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 Nla&8|^nYmy{5zrfTZjMv literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/Install_Documentation.bat b/SpriteLibrary/Doc/Help/Install_Documentation.bat new file mode 100644 index 0000000..eb56964 --- /dev/null +++ b/SpriteLibrary/Doc/Help/Install_Documentation.bat @@ -0,0 +1,47 @@ +@ECHO OFF +CLS + +REM This is an example script to show how to use the Help Library Manager Launcher to install an MS Help Viewer +REM file. You can use this as an example for creating a script to run from your product's installer. + +REM NOTE: If not executed from within the same folder as the executable, a full path is required on the +REM executable and the HelpContentSetup.msha file. + +IF "%1%"=="" GOTO MissingVersion +IF "%1%"=="1.0" GOTO HelpViewer1 + +GOTO HelpViewer2: + +:HelpViewer1 + +REM Help Viewer 1.0 +REM Uninstall first in case it is already there. If not, it won't install below. We'll ignore any error output +REM by redirecting it to NUL. +HelpLibraryManagerLauncher.exe /product "VS" /version "100" /locale en-us /uninstall /silent /vendor "Vendor Name" /productName "SpriteLibrary" /mediaBookList "SpriteLibrary" > NUL + +REM For Help Viewer 1.0. the setup name must be HelpContentSetup.msha so make sure we copy the setup file to that +REM name. SHFB names it after the help file so that multiple files can be deployed to the same output older at +REM build time. +IF EXIST "Documentation.msha" COPY /Y "Documentation.msha" HelpContentSetup.msha + +REM Install the new content. +HelpLibraryManagerLauncher.exe /product "VS" /version "100" /locale en-us /sourceMedia "%CD%\HelpContentSetup.msha" + +GOTO Exit + +:HelpViewer2 + +REM Help Viewer 2.x +REM Uninstall first in case it is already there. If not, it won't install below. We'll ignore any error output +REM by redirecting it to NUL. +HelpLibraryManagerLauncher.exe /viewerVersion %1 /locale en-us /wait 0 /operation uninstall /vendor "Vendor Name" /productName "SpriteLibrary" /bookList "SpriteLibrary" > NUL + +REM Install the new content. +HelpLibraryManagerLauncher.exe /viewerVersion %1 /locale en-us /wait 0 /operation install /sourceUri "%CD%\Documentation.msha" + +GOTO Exit + +:MissingVersion +ECHO A help viewer version parameter is required + +:Exit diff --git a/SpriteLibrary/Doc/Help/LastBuild.log b/SpriteLibrary/Doc/Help/LastBuild.log new file mode 100644 index 0000000..0e023fb --- /dev/null +++ b/SpriteLibrary/Doc/Help/LastBuild.log @@ -0,0 +1,366 @@ + + + +Finding tools... +The Sandcastle tools are located in 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\' +Locating components in the following folder(s): + C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc + C:\ProgramData\EWSoftware\Sandcastle Help File Builder\Components and Plug-Ins\ + C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ +Using framework reflection data for '.NET Framework 4.5' located in 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\Data\.NETFramework' +Using presentation style 'VS2013' located in 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013' +Loading and initializing plug-ins... +Lightweight Website Style Version 2016.9.17.0 +Copyright © 2006-2016, Eric Woodruff, All Rights Reserved +Portions Copyright © 2014, Sam Harwell, All Rights Reserved +------------------------------- +Clearing any prior web/markdown output... + + +Validating and copying documentation source information +Source: C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\bin\Release\SpriteLibrary.XML +Source: C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\bin\Release\SpriteLibrary.dll + Found assembly 'C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\bin\Release\SpriteLibrary.dll' + +Copying XML comments files + C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\bin\Release\SpriteLibrary.XML -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\SpriteLibrary.XML + + +Generating shared content files (en-US, English (United States))... + + Last step completed in 00:00:00.0431 + + +Generating API filter for MRefBuilder... + Last step completed in 00:00:00.0055 + + +Generating reflection information... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - GenerateRefInfo.proj] +Build started 1/14/2017 2:18:27 PM. +Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\GenerateRefInfo.proj" on node 1 (default targets). +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. +PrepareForBuild: + Creating directory "obj\Debug\". +GenerateRefInfo: + MRefBuilder (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + No source code context base path specified. Source context information is unavailable. + Loaded 1 assemblies for reflection and 1 dependency assemblies. + Wrote information on 1 namespaces, 9 types, and 172 members + Copying file from "reflection.org" to "reflection.all". + XslTransform (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Applying XSL transformation 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\MergeDuplicates.xsl'. +Done Building Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\GenerateRefInfo.proj" (default targets). + +Build succeeded. + +Time Elapsed 00:00:01.25 + Last step completed in 00:00:01.7018 + + +Transforming reflection output... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - TransformManifest.proj] +Build started 1/14/2017 2:18:28 PM. +Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\TransformManifest.proj" on node 1 (default targets). +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. +TransformManifest: + XslTransform (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Applying XSL transformation 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\\ProductionTransforms\ApplyVSDocModel.xsl'. + Copying file from "reflection.xml" to "reflection.nofilenames". + XslTransform (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Applying XSL transformation 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\AddFilenames.xsl'. + XslTransform (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Applying XSL transformation 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\ProductionTransforms\ReflectionToManifest.xsl'. +Done Building Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\TransformManifest.proj" (default targets). + +Build succeeded. + +Time Elapsed 00:00:01.07 + Last step completed in 00:00:01.4112 + + +Generating namespace summary information... + Last step completed in 00:00:00.0210 + + +Copying additional content files... +No additional content to copy + Last step completed in 00:00:00.0025 + + +Merging conceptual and additional tables of contents... + Last step completed in 00:00:00.0005 + + +Generating intermediate table of contents file... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - GenerateIntermediateTOC.proj] +Build started 1/14/2017 2:18:30 PM. +Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\GenerateIntermediateTOC.proj" on node 1 (default targets). +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. +GenerateIntermediateTOC: + XslTransform (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Applying XSL transformation 'C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\\ProductionTransforms\CreateVSToc.xsl'. +Done Building Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\GenerateIntermediateTOC.proj" (default targets). + +Build succeeded. + +Time Elapsed 00:00:00.55 +Generating conceptual content intermediate TOC file... + Last step completed in 00:00:00.9175 + + +Creating Sandcastle configuration files... + sandcastle.config + Last step completed in 00:00:00.4511 + + +Merging custom build component configurations +C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\sandcastle.config + Updating reference topic configurations. + Replaced configuration for 'Syntax Component' (instance 1) with configuration for 'Syntax Component' + No conceptual content. Removing conceptual content components. + Last step completed in 00:00:00.0165 + + +Building help topics... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - BuildTopics.proj] +Build started 1/14/2017 2:18:31 PM. +Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\BuildTopics.proj" on node 1 (default targets). +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. +BuildTopics: + BuildAssembler (v2016.9.17.0) + Copyright c 2006-2016, Microsoft Corporation, All Rights Reserved. + Portions Copyright c 2006-2016, Eric Woodruff, All Rights Reserved. + Loading configuration... + Processing topics... + Processed 198 topic(s) + CopyFromIndexComponent: "reflection" in-memory cache entries used: 7 of 15. + CopyFromIndexComponent: "comments" in-memory cache entries used: 2 of 30. +Done Building Project "C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\BuildTopics.proj" (default targets). + +Build succeeded. + +Time Elapsed 00:00:10.90 + Last step completed in 00:00:11.2938 + + +Combining conceptual and API intermediate TOC files... + Last step completed in 00:00:00.0040 + + +Extracting HTML info for HTML Help 1 and/or website... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - ExtractHtmlInfo.proj] +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. +Sandcastle Help File Builder and Tools, version 2016.9.17.0 +Copyright c 2006-2016, Eric Woodruff, All Rights Reserved +E-Mail: Eric@EWoodruff.us + +Using LCID '1033', code page '65001', encoding charset 'UTF-8'. + +Processing website files in C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website +Processed 198 HTML files +Sorting keywords and generating See Also indices +Saving website keyword index to C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\WebKI.xml +Saving website table of contents to C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\WebTOC.xml + Last step completed in 00:00:00.9811 + + +Copying standard help content... +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertCaution.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\AlertCaution.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertNote.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\AlertNote.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertSecurity.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\AlertSecurity.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\CFW.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\CFW.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\CodeExample.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\CodeExample.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\favicon.ico -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\favicon.ico +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\privstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protoperator.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protoperator.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\protstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\puboperator.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\puboperator.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\pubstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\SectionCollapsed.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\SectionCollapsed.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\SectionExpanded.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\SectionExpanded.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\slMobile.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\slMobile.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\static.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\static.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\xna.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\icons\xna.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\scripts\branding.js -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\scripts\branding.js +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-cs-CZ.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-cs-CZ.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-de-DE.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-de-DE.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-en-US.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-en-US.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-es-ES.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-es-ES.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-fr-FR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-fr-FR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-Help1.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-Help1.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-HelpViewer.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-HelpViewer.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-it-IT.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-it-IT.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ja-JP.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-ja-JP.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ko-KR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-ko-KR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-pl-PL.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-pl-PL.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-pt-BR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-pt-BR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ru-RU.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-ru-RU.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-tr-TR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-tr-TR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-Website.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-Website.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-zh-CN.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-zh-CN.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-zh-TW.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding-zh-TW.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\MSHelpViewer\styles\branding.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertCaution.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\AlertCaution.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertNote.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\AlertNote.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\AlertSecurity.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\AlertSecurity.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\CFW.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\CFW.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\CodeExample.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\CodeExample.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\favicon.ico -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\favicon.ico +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\privstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\privstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protoperator.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protoperator.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\protstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\protstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubclass.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubclass.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubdelegate.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubdelegate.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubenumeration.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubenumeration.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubevent.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubevent.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubextension.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubextension.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubfield.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubfield.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubinterface.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubinterface.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubmethod.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubmethod.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\puboperator.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\puboperator.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubproperty.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubproperty.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\pubstructure.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\pubstructure.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\SectionCollapsed.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\SectionCollapsed.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\SectionExpanded.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\SectionExpanded.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\slMobile.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\slMobile.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\static.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\static.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\icons\xna.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\xna.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\scripts\branding.js -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\scripts\branding.js +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-cs-CZ.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-cs-CZ.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-de-DE.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-de-DE.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-en-US.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-en-US.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-es-ES.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-es-ES.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-fr-FR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-fr-FR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-Help1.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-Help1.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-HelpViewer.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-HelpViewer.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-it-IT.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-it-IT.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ja-JP.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-ja-JP.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ko-KR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-ko-KR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-pl-PL.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-pl-PL.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-pt-BR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-pt-BR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-ru-RU.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-ru-RU.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-tr-TR.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-tr-TR.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-Website.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-Website.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-zh-CN.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-zh-CN.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding-zh-TW.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding-zh-TW.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\styles\branding.css -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\styles\branding.css +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\index.html -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\index.html +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\search.html -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\search.html +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\SearchHelp.aspx -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\SearchHelp.aspx +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\SearchHelp.inc.php -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\SearchHelp.inc.php +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\SearchHelp.php -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\SearchHelp.php +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\Web.Config -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\Web.Config +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\icons\Search.png -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\Search.png +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\icons\TocClose.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\TocClose.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\icons\TocCollapsed.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\TocCollapsed.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\icons\TocExpanded.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\TocExpanded.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\icons\TocOpen.gif -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\icons\TocOpen.gif +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\scripts\branding-Website.js -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\scripts\branding-Website.js +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\scripts\clipboard.min.js -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\scripts\clipboard.min.js +C:\Program Files (x86)\EWSoftware\Sandcastle Help File Builder\PresentationStyles\VS2013\Web\scripts\jquery-1.11.0.min.js -> C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Working\Output\Website\scripts\jquery-1.11.0.min.js + Last step completed in 00:00:02.2605 + + +Executing informational Generate Table of Contents build step for plug-ins (not used for MS Help Viewer) + Last step completed in 00:00:00.0015 + + +Executing informational Generate Help Project build step for plug-ins (not used for MS Help Viewer) + Last step completed in 00:00:00.0015 + + +Generating MS Help Viewer file... +[C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe - BuildHelpViewerFile.proj] +Project file contains ToolsVersion="12.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="4.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=291333. + Compressing help content files... + Compression finished. 267 items added + Saving C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Documentation.mshc... + Finished saving C:\Users\TimYo\Documents\Visual Studio 2015\Projects\SpriteLibrary\SpriteLibrary\Doc\Help\Documentation.mshc + Compressed 4 folders, 263 files. Reduced size by 1,043,810 bytes (71%). + Last step completed in 00:00:01.4054 + + +Generating website table of contents file... + Last step completed in 00:00:00.0015 + + +Generating full-text index for the website... + + +Adding lightweight search and TOC elements to each topic... + Last step completed in 00:00:00.2865 + + +Copying website files to output folder... + +Copied 328 files for the website content + Last step completed in 00:00:00.6354 + + +Removing intermediate files... + Last step completed in 00:00:01.1018 + + + +Build completed successfully at 1/14/2017 2:18:49 PM. Total time: 00:00:23.8718 + + + diff --git a/SpriteLibrary/Doc/Help/Remove_Documentation.bat b/SpriteLibrary/Doc/Help/Remove_Documentation.bat new file mode 100644 index 0000000..189e581 --- /dev/null +++ b/SpriteLibrary/Doc/Help/Remove_Documentation.bat @@ -0,0 +1,31 @@ +@ECHO OFF +CLS + +REM This is an example script to show how to use the Help Library Manager Launcher to remove an MS Help Viewer file. +REM You can use this as an example for creating a script to run from your product's uninstaller. + +REM NOTE: If not executed from within the same folder as the executable, a full path is required on the executable. + +IF "%1%"=="" GOTO MissingVersion +IF "%1%"=="1.0" GOTO HelpViewer1 + +GOTO HelpViewer2 + +:HelpViewer1 + +REM Help Viewer 1.0 +HelpLibraryManagerLauncher.exe /product "VS" /version "100" /locale en-us /uninstall /silent /vendor "Vendor Name" /productName "SpriteLibrary" /mediaBookList "SpriteLibrary" + +GOTO Exit + +:HelpViewer2 + +REM Help Viewer 2.x +HelpLibraryManagerLauncher.exe /viewerVersion %1 /locale en-us /wait 0 /operation uninstall /vendor "Vendor Name" /productName "SpriteLibrary" /bookList "SpriteLibrary" + +GOTO Exit + +:MissingVersion +ECHO A help viewer version parameter is required + +:Exit diff --git a/SpriteLibrary/Doc/Help/SearchHelp.aspx b/SpriteLibrary/Doc/Help/SearchHelp.aspx new file mode 100644 index 0000000..6e2a17b --- /dev/null +++ b/SpriteLibrary/Doc/Help/SearchHelp.aspx @@ -0,0 +1,233 @@ +<%@ Page Language="C#" EnableViewState="False" %> + + diff --git a/SpriteLibrary/Doc/Help/SearchHelp.inc.php b/SpriteLibrary/Doc/Help/SearchHelp.inc.php new file mode 100644 index 0000000..b905e13 --- /dev/null +++ b/SpriteLibrary/Doc/Help/SearchHelp.inc.php @@ -0,0 +1,173 @@ +filename = $file; + $this->pageTitle = $title; + $this->rank = $rank; + } +} + + +/// +/// Split the search text up into keywords +/// +/// The keywords to parse +/// A list containing the words for which to search +function ParseKeywords($keywords) +{ + $keywordList = array(); + $words = preg_split("/[^\w]+/", $keywords); + + foreach($words as $word) + { + $checkWord = strtolower($word); + $first = substr($checkWord, 0, 1); + if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList)) + { + array_push($keywordList, $checkWord); + } + } + + return $keywordList; +} + + +/// +/// Search for the specified keywords and return the results as a block of +/// HTML. +/// +/// The keywords for which to search +/// The file list +/// The dictionary used to find the words +/// True to sort by title, false to sort by +/// ranking +/// A block of HTML representing the search results. +function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle) +{ + $sb = "
    "; + $matches = array(); + $matchingFileIndices = array(); + $rankings = array(); + + $isFirst = true; + + foreach($keywords as $word) + { + if (!array_key_exists($word, $wordDictionary)) + { + return "Nothing found"; + } + $occurrences = $wordDictionary[$word]; + + $matches[$word] = $occurrences; + $occurrenceIndices = array(); + + // Get a list of the file indices for this match + foreach($occurrences as $entry) + array_push($occurrenceIndices, ($entry >> 16)); + + if($isFirst) + { + $isFirst = false; + foreach($occurrenceIndices as $i) + { + array_push($matchingFileIndices, $i); + } + } + else + { + // After the first match, remove files that do not appear for + // all found keywords. + for($idx = 0; $idx < count($matchingFileIndices); $idx++) + { + if (!in_array($matchingFileIndices[$idx], $occurrenceIndices)) + { + array_splice($matchingFileIndices, $idx, 1); + $idx--; + } + } + } + } + + if(count($matchingFileIndices) == 0) + { + return "Nothing found"; + } + + // Rank the files based on the number of times the words occurs + foreach($matchingFileIndices as $index) + { + // Split out the title, filename, and word count + $fileIndex = explode("\x00", $fileInfo[$index]); + + $title = $fileIndex[0]; + $filename = $fileIndex[1]; + $wordCount = intval($fileIndex[2]); + $matchCount = 0; + + foreach($keywords as $words) + { + $occurrences = $matches[$word]; + + foreach($occurrences as $entry) + { + if(($entry >> 16) == $index) + $matchCount += $entry & 0xFFFF; + } + } + + $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount); + array_push($rankings, $r); + + if(count($rankings) > 99) + break; + } + + // Sort by rank in descending order or by page title in ascending order + if($sortByTitle) + { + usort($rankings, "cmprankbytitle"); + } + else + { + usort($rankings, "cmprank"); + } + + // Format the file list and return the results + foreach($rankings as $r) + { + $f = $r->filename; + $t = $r->pageTitle; + $sb .= "
  1. $t
  2. "; + } + + $sb .= "rank - $x->rank; +} + +function cmprankbytitle($x, $y) +{ + return strcmp($x->pageTitle, $y->pageTitle); +} + +?> diff --git a/SpriteLibrary/Doc/Help/SearchHelp.php b/SpriteLibrary/Doc/Help/SearchHelp.php new file mode 100644 index 0000000..eaa1e11 --- /dev/null +++ b/SpriteLibrary/Doc/Help/SearchHelp.php @@ -0,0 +1,58 @@ + + Nothing found + $val) + { + $wordDictionary[$ftiWord] = $val; + } + } + } + } + + // Perform the search and return the results as a block of HTML + $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle); + echo $results; +?> \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/Web.Config b/SpriteLibrary/Doc/Help/Web.Config new file mode 100644 index 0000000..26672e8 --- /dev/null +++ b/SpriteLibrary/Doc/Help/Web.Config @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpriteLibrary/Doc/Help/WebKI.xml b/SpriteLibrary/Doc/Help/WebKI.xml new file mode 100644 index 0000000..c275a6f --- /dev/null +++ b/SpriteLibrary/Doc/Help/WebKI.xml @@ -0,0 +1,351 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpriteLibrary/Doc/Help/WebTOC.xml b/SpriteLibrary/Doc/Help/WebTOC.xml new file mode 100644 index 0000000..4348aff --- /dev/null +++ b/SpriteLibrary/Doc/Help/WebTOC.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SpriteLibrary/Doc/Help/fti/FTI_100.json b/SpriteLibrary/Doc/Help/fti/FTI_100.json new file mode 100644 index 0000000..ab7b83c --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_100.json @@ -0,0 +1 @@ +{"duplicate":[1048578,1376258,1572865,1835009,3932162,4063236,4325380,5898241,7536643,9633793,10027009,10747907,10813442,11403265,12648451,12910593,13041669],"datetime":[9240578],"display":[196610,2424833,3145729,3866625,4063237,4325381,6160386,6356993,8716289,9371649,10944513,11993089],"drawn":[1441793,1835009,2293762,4063236,4259841,4325379,5046273,5505025,6291457,6684673,6946817,9306113,9568257,10027013,10551297,10682369,11075585,11206657,11534337,12910594,13041670],"draws":[6881281,9175041,13041665],"determines":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,12582913,13041665],"didsomething":[9240580],"data":[3604481,5373953,6881281,11206657,13041665],"default":[1,3342337,3604481,4063234,4325378,4915201,5046273,7340033,9043969,10027009,10747906,11927553,12582914,13041667],"define":[2490369,4063233,9240577,10027009,11403265,13041665],"decimal":[9830401],"dealing":[4390913,10027009,13041665],"destroysprite":[3407874,4063233,4325377],"destinationlist":[786434],"determining":[7208961],"degrees":[655361,1048578,1376260,1441795,1638402,9830403,10027011,10747912,10813442,11272196,13041675],"ddns":[6881281],"duplicating":[4063233,4325377,11862017],"defining":[9568257],"destroyed":[589827,3407873,4063233,4325377,5373953,10027011,11206657,13041668],"defined":[2031617,3604481,4063234,6881281,10551297],"defines":[9568257,10551297],"dimentions":[327681,3735553,6029313,7667714,10747907,13041667],"documentation":[4063233,4325377,9961473],"determine":[65537,3211265,3670017,4063233,4325377,4456449,4718593,9961473,10027009,12713985,13041666],"duplicated":[4063235,4325379,4849666,5898241,9502722,9633793,10027010,11730945,13041667],"displayed":[1703937,2031618,2621441,3801089,4063239,4325379,5505026,7077889,7405569,9568257,10551297],"delegate":[1179651,2359299,6881283,12582913],"distinguish":[5898241,9633793,13041665],"double":[327686,655362,1638404,4718594,5308418,6750210,7667714,7733250,9830403,10747906,11272196,11665410,12255234,13041668],"drawing":[262145,393217,1114113,2752514,2818049,2883585,3080193,3211265,3735553,4128769,4063233,4653057,5832706,5963777,6029313,6422529,6553601,6815746,7012353,7077890,7208961,7602177,7798785,8650753,8912897,9109505,9437186,10092545,10420225,10747906,10878977,12058626,12320769,12910593,13041666],"destination":[1310724,1769475,10420226,10747908,11206657,12124161,12320771,13041669],"different":[1703937,1835009,2883586,4063238,4325381,6553602,6881281,7405569,9175041,10747905,11993089,12910593,13041665],"destroyallsprites":[3801090,4063233,4325377],"decides":[6881281,9175041],"direction":[655361,1310721,1769473,4718593,5308418,7929857,9830404,10027009,10420226,10747914,11665409,12255233,12713985,13041676],"draw":[1835009,3014657,4063233,4325377,12582913],"destroying":[589826,3407873,4063234,4325377,6881281,10027009,13041665],"degree":[655361,10747905,13041665],"drag":[6946817,10027009,13041665],"deals":[6881281,13041665],"duplicatesprite":[3932164,4063237,4325381,7536643,9502721,10027009,11403265,11730945,11862017,12648451,13041665],"delegates":[6881281],"dumb":[1310721,1769473,10747905,13041665],"description":[1376257,1769473,1835009,2031617,2490369,2949121,3342337,3473409,3604482,4063237,4325377,4718593,4915201,5111809,5898241,6881284,7143425,7405569,7536641,7667713,7864321,9175041,9306113,10027009,10289154,10747905,10944513,11206657,11534337,11927555,13041669],"directly":[2883585,4063233,4325377],"delta":[7929857,10747905,13041665],"duplicates":[4063233,4325377,9502721,9764865,10027009,11403265,13041665],"dotick":[2490369,4063233,9240581,9568257],"divide":[6750209,7143426,7733249,10289154],"designated":[3932161],"destroy":[589826,3407876,4063238,4325381,5373953,6881281,8126466,10027010,10354689,10747906,11206657,11862018,13041669],"dll":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703937,1900545,1966081,2097153,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3407873,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4063233,4194305,4259841,4390913,4456449,4521985,4587521,4653057,4784129,4849665,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7208961,7274497,7340033,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665],"durationinmilliseconds":[5963778],"demand":[1048577,1376258,10747906,10813441,13041666],"duration":[3080195,5832706,5898241,5963777,6225921,7077890,7798786,9240578,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_101.json b/SpriteLibrary/Doc/Help/fti/FTI_101.json new file mode 100644 index 0000000..4e85ec7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_101.json @@ -0,0 +1 @@ +{"exposes":[2490369,3342337,3473409,3604481,4063233,4325377,4718593,4915201,5111809,7143425,7405569,9306113,10027009,10289153,10747905,11206657,11927553,13041665],"existing":[1376262,2752513,3080193,5832705,7798785,8650753,10092545,10747910,13041670],"easiest":[327681,3735553,4784129,7667714,10027009,10747906,13041667],"entirely":[11075585,11206657,13041665],"explorer":[6881281],"enumerations":[6881281],"exited":[1966081,11206657,13041665],"examples":[1835009,3604481,3932161,4063234,4325377,9240577,9568257,10551297,12582913,12910593],"ellipse":[9175041],"erased":[10027009,10682369,13041665],"events":[1179650,2490370,4063233,6881284,9175041,10944513,11206658,11927553,13041665],"enumeration":[6881281,9175041,10944513],"expect":[5701633,11206657,13041665],"equals":[3342337,3473409,3604481,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"equal":[3342337,3473409,3604481,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"exiting":[1966081,9240577,11206657,13041665],"emmediately":[6946817,10027009,13041665],"easy":[9240577],"ends":[4063233,6684673,9306113],"easier":[524289,10027009,13041665],"end":[458753,4063233,4325377,11206657,11862017,13041665],"eventargs":[1179650,6881283,9240577,9568257,11927555],"extra":[2097153,4718593,13041665],"entire":[4063233,4259841,4325377,11534337],"example":[1048577,1376264,2424833,2752513,3080193,5832705,7798785,8650753,9568257,9830401,10092545,10551297,10747914,10813441,13041674],"event":[131076,458754,720898,786434,851969,917507,1179650,1769475,1900547,1966082,2359297,2424833,2555906,3276803,4063236,4325380,4980738,5111812,5373954,5701634,6094849,6881281,7274497,7471106,8257538,8323074,9240580,9568257,10223619,10616835,10747909,11075587,11141122,11206666,11337729,11599874,11927556,11993089,12124164,12320769,13041679],"enum":[9175041,10944513],"effect":[6946819,10027011,10747905,11993089,13041668],"explode":[2555905,11206657,13041665],"ellipses":[9175041],"exists":[3211265,10747905,11862017,13041665],"erase":[589825,3407873,4063234,4325377,5439489,8126465,9306113,10027009,10747905,13041666],"eventhandler":[2031617,4063233,9240578,9568259]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_102.json b/SpriteLibrary/Doc/Help/fti/FTI_102.json new file mode 100644 index 0000000..87623a7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_102.json @@ -0,0 +1 @@ +{"false":[786433,1769473,3211265,5767169,6815745,7208962,7340033,8781825,9240580,9437185,9633793,10027012,10747906,11010049,11468804,13041670],"frames":[1376268,2752515,3080195,5832708,5898241,7077892,7798787,8650755,10092547,10747916,13041677],"func":[8257538,8323074],"focus":[2949124,4063238,4325382,5767170,8519682,8781826],"following":[2490369,3342337,3473409,3604481,4063233,4325377,4718593,4915201,5111809,7143425,7405569,9306113,10027009,10289153,10747905,11206657,11927553,13041665],"finds":[262145,10747905,13041665],"forms":[2359297,4063233,5767169,6881282,9240577,9568257,10551297],"forever":[1966081,8126465,10747905,11206657,13041666],"frameindex":[3997698,5701633,10027009,11206657,13041666],"form":[2949124,4063240,4325382,5767170,8519682,8781826,9240577,9568259,10223617,10551298,10616833,11206658,13041666],"fails":[5111809,7274497,11927553],"flag":[2424833,10747905,13041665],"facing":[1441793,4718593,5570561,10027009,13041666],"fast":[4063233,4325377,9043969],"fires":[458753,917506,11075585,11206661,12124161,13041669],"frame":[393221,1114114,1245185,2162692,2424835,2752513,3080193,3997698,5701633,5832708,5898242,5963780,6225924,6422529,6619138,7077891,7798787,7864324,8650754,9240577,10027012,10747915,10944514,11206657,11468802,11993091,12058625,12451843,12976131,13041682],"frame_index":[2162690],"function":[262146,458753,589825,2490369,2686977,2883585,3342337,3604481,3932161,4063244,4325386,4915201,6553601,7929857,8257539,8323075,8388609,9240579,9502721,9568258,9830401,10027009,10420227,10747913,10878977,11206657,11730945,11927553,12582913,13041675],"faces":[4718593,5570561,13041665],"fully":[3473409,10289153],"free":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"flip":[4718594,5570561,9699329,13041666],"finishes":[10747905,11993089,13041665],"figure":[3997697,4063233,4325377,10027009,10878977,13041665],"follow":[1,786433],"firetime":[3604481],"faster":[1310721,1703937,1769473,4063233,4718593,7405569,8978433,10747905,12255233,13041666],"fields":[4063233,4718594,5111810,7143426,7405570,10289153,11927553,13041665],"finished":[65537,2424833,4063233,4325377,8454145,10027010,11010049,11468801,11993089,13041666],"finally":[1835009,4063233,4325377,12910593],"field":[851970,1703938,1835009,2097154,4063233,4325377,4456450,5570562,6094850,6750210,7274498,7733250,7995394,9699330,10354689,10747905,11337730,12255234,12582914,12910593,13041665],"first":[786433,1245185,1769473,5832705,6619137,9240577,10747906,12582914,13041666],"fit":[1441793,10027009,13041665],"flipping":[4718593,9699329,13041665],"final":[786433,917505,1769473,10747905,11206658,12124161,13041667],"finalize":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"float":[6946817],"foot":[5701633,11206657,13041665],"finish":[9240577],"functions":[2883585,3604481,4063235,4325379,6553602,6881281,9240577,10027009,12713985,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_103.json b/SpriteLibrary/Doc/Help/fti/FTI_103.json new file mode 100644 index 0000000..79c44fe --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_103.json @@ -0,0 +1 @@ +{"generator":[4063233,7405569,7995393],"getsize":[6291458,10027009,13041665],"goes":[1441793,3866625,4063234,4325378,6356993,10027009,13041665],"going":[4718593,5111809,7274497,9699329,11927553,13041665],"generating":[1048577,1376258,10747906,10813441,13041666],"great":[4718594,5570561,9699329,13041666],"goofs":[1835010,4063234,4325378,12910594],"got":[6029313,10747905,13041665],"gone":[3407873,4063233,4325377,8126465,10747905,13041665],"gethashcode":[3342337,3473409,3604481,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"general":[10420225,10747905,13041665],"generic":[786433],"graphical":[6881282,13041665],"getframeanimationspeed":[10747905,12451842,13041665],"getspritevector":[10747905,12517378,13041665],"guy":[1376268,2752514,3080194,5832706,7798786,8650754,10092546,10747916,13041676],"getimage":[2162691,7864323,10747906,12976131,13041666],"glow":[720897,11206658,11599873,13041666],"getspriteradans":[5308418,10747905,13041665],"gobbling":[4718594,5570561,9699329,13041666],"glowing":[4980737,7471105,11206658,13041666],"gotten":[327681,3735553,7667714,10747906,13041666],"getspritepictureboxcenter":[10485762,10747905,13041665],"grabbing":[7077889],"given":[262145,655361,2162689,2883585,2949121,3211265,4063235,4325379,5767169,6815745,7864321,9109505,9437185,10420225,10747908,13041668],"garbage":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"game":[1703937,4063234,6881281,7405569],"getspritebaseimagecenter":[10747905,12845058,13041665],"grab":[2752513,3080193,5832707,5898241,7077891,7798785,8650753,10092545,13041665],"grabs":[1376262,2752513,3080193,5832705,7798785,8650753,10092545,10747910,13041670],"generate":[1114113,5898244,5963777,6422529,12058625,13041668],"getanimationspeed":[8978434,10747905,13041665],"gettype":[3342337,3473409,3604481,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"glitch":[2949122,4063235,4325379,5767169,8519681,8781825],"good":[589825,2949122,3080193,4063235,4325379,5767169,8519681,8781825,10027009,13041665],"gets":[917506,1769473,3342337,3473409,3604481,4063233,4325377,4718594,4915201,5570561,9699329,10289153,10420225,10747907,11206658,11927553,12320769,13041671],"getvisiblesize":[6291457,8585218,10027010,13041666],"growing":[1703937,4063233,7405569],"getspritedegrees":[9830402,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_104.json b/SpriteLibrary/Doc/Help/fti/FTI_104.json new file mode 100644 index 0000000..8d4c49c --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_104.json @@ -0,0 +1 @@ +{"health":[2097153,4718593,13041665],"height":[1114117,2621445,3538945,4063234,4325378,4653058,5832707,5898245,5963780,6881281,7077891,7798787,8650755,9175041,10027009,10289153,10747905,12058626,13041671],"happen":[4063233,4325377,5701633,9043969,11206657,13041665],"http":[6881282],"hasbeendrawn":[10027009,10682370,13041665],"head":[10420225,10747905,13041665],"house":[589825,10027009,13041665],"hierarchy":[3604481,4063233,11927553,13041665],"hard":[4063233,6881281],"haul":[1048577,1376258,10747906,10813441,13041666],"horizontally":[1048577],"heigh":[2621441],"hover":[10223617,10616833,11206658,13041666],"height_ratio":[6750210,7143425,10289153],"heart":[4063233,6881281],"hight":[2621441],"help":[4063233,6881281,9175041],"harder":[6029313,10747905,13041665],"hidden":[3276801,5636097,10747905,11206657,13041666],"hit":[1310722,1769473,2555905,3670019,4456449,4718593,7602177,10747906,11141121,11206658,13041669],"happens":[131073,1900545,1966081,2555905,3276801,10223617,10616833,11141121,11206664,13041672],"hold":[2097153,4718593,13041665],"hash":[3342337,3473409,3604481,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"howmanyanimations":[2424834],"hits":[2555905,11141121,11206658,13041666],"hidesprite":[5636097,10354690,10747906,13041666],"higher":[4718593,5046274,8978433,10027010,12255233,13041667],"having":[4063233,6684673,9306113]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_105.json b/SpriteLibrary/Doc/Help/fti/FTI_105.json new file mode 100644 index 0000000..33b8c90 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_105.json @@ -0,0 +1 @@ +{"inheritance":[3604481,4063233,11927553,13041665],"imprecise":[10420225,10747905,13041665],"incredibly":[9240577],"indicates":[3473409,10289153],"index":[1245186,2162691,2424833,3997697,6225922,7864321,10027009,10747906,11993089,12451842,13041667],"instant":[3276801,11206657,13041665],"imagine":[1835009,4063233,4325377,12910593],"includes":[4063233,5242881,9306113],"information":[1179649,2097154,4718594,6881282,11927553,13041666],"images":[1114113,1703937,1835009,4063235,4325377,5439489,5898242,7405569,9306113,10027009,11403265,12058625,12910593,13041667],"involved":[5111810,6094850,11927554],"item":[720898,2621441,4063234,4325378,4980738,5505026,7340033,7471106,11206664,11599874,13041672],"immediately":[1900545,11206657,13041665],"inside":[6881281,9109505,9175041],"image_frame":[393217,10747905,13041665],"imagepointdestination":[10420226],"idea":[9633793],"imagelayout":[4063233,9240577,9568257,10551297],"invalidate":[1835010,4063238,4259844,4325382,8912900,11534341,12910594],"instance":[3342337,3473412,3604482,4063233,4325377,4521985,4915201,10289156,10747905,11927554,12779521,13041665],"ispaused":[7340034,10747905,13041665],"initializecomponent":[9240577,9568257,10551297],"image":[262145,327682,393221,786433,1114118,1376268,1441793,1703938,1835022,2031617,2162692,2228226,2293761,2621441,2752517,2818050,2883585,3014657,3080197,3211266,3276801,3538945,3735553,4128770,4063269,4259841,4325404,4653058,4718594,4784129,5439493,5570561,5832711,5898251,5963780,6291457,6422533,6553605,6684677,6750210,6881283,7012356,7077894,7143428,7405570,7733250,7798789,7864323,8650757,8912898,9109506,9306118,9437185,9699329,10027013,10092549,10158081,10289157,10420225,10551297,10747925,10878979,10944513,11206657,11534338,12058630,12320769,12845058,12910608,12976133,13041705],"initializes":[3604481,4521985,11927553,12779521],"int":[393218,1048577,1114114,1245186,1441793,1507329,2097154,2162690,2424835,2621442,3080193,3538945,3604482,3932162,3997697,4718594,5046273,5242881,5505026,5832708,5963779,6225923,6488065,6619138,7077892,7798787,8650754,8978434,9043969,9502721,10158081,10813442,11993090,12189697,12255233,12451843,13041666],"int32":[393218,1048578,1114116,1245186,1376269,1441793,1507329,2162692,2424835,2621442,3080194,3538945,3997697,5046273,5242881,5505026,5832712,5898249,5963782,6225923,6488065,6619138,7077896,7798790,7864322,8650756,8978434,9043969,9502721,10158081,10747919,10813444,11993090,12189697,12255233,12451843,13041688],"interval":[4063233,4325377,9043970],"intensive":[1048577,1376258,10747906,10813441,13041666],"integer":[1048577,2621441,5505026,6619137,10420225,10747905,10813441,13041665],"instantiate":[2490369,4063233,9240577],"iskeypressed":[2949123,4063234,4325378,5767171,8781827,9240580],"internal":[262145,10747905,13041665],"info":[6881281],"initial":[6881281,10027009,11403265,13041665],"important":[589825,10027009,13041665],"intersect":[4063233,4325377,9109505],"inherited":[3342342,3473412,3604486,4063238,4325382,4915206,10289156,10747910,11927558,13041670],"included":[5111809,6094849,11927553],"imagerectangle":[2818050,8912898],"initializecomponents":[4063233],"imagebox":[3211265,7208961],"instead":[131073,1179649,1703937,3276801,4063233,6029313,6881281,7208961,7405569,7929857,10420225,10747909,11206658,11665409,13041671],"initially":[9240577,10027009,11403265,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_106.json b/SpriteLibrary/Doc/Help/fti/FTI_106.json new file mode 100644 index 0000000..51e5746 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_106.json @@ -0,0 +1 @@ +{"just":[1835009,4063233,4325377,5373953,6946817,7208961,9830401,9895937,10027009,10747908,10944513,11206657,11993089,12582913,12910593,13041670],"jerky":[9240577],"journey":[1769473,10747905,12320769,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_107.json b/SpriteLibrary/Doc/Help/fti/FTI_107.json new file mode 100644 index 0000000..32c7d6f --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_107.json @@ -0,0 +1 @@ +{"keys":[2949122,4063235,4325379,5767171,8519684,8781826,9240581],"kill":[8126465,10747905,13041665],"know":[4063233,4325377,5898241,9633793,10747905,11665409,11796481,13041666],"keypress":[2359297,2686977,4063235,4325379,6881281,8257537,8323073],"key":[2686978,2949127,4063245,4325388,5767175,8519683,8781828],"keyeventargs":[2359298,4063234,4325378,8257537,8323073],"keyup":[4063233,4325377,8257537],"keydown":[4063233,4325377,8323073],"keyspressed":[4063233,4325377,8519682],"knows":[4063233,5242881,9306113]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_108.json b/SpriteLibrary/Doc/Help/fti/FTI_108.json new file mode 100644 index 0000000..a42db2c --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_108.json @@ -0,0 +1 @@ +{"looks":[3604481,4718593,5570561,6619137,10747905,13041666],"losing":[4063233,4325377,11862017],"locationonpicturebox":[10878978],"library":[6881283,9240577],"lot":[1835009,4063233,4325377,10420225,10747905,12910593,13041665],"list":[786437,917505,1376257,1769475,1835009,2031617,2293764,2883587,2949121,4063239,4194308,4325383,5898241,6553603,7536641,7667713,7864321,8454145,8519684,9109508,9764868,10027009,10747906,11206658,11534337,11730948,11796481,12124161,13041669],"left":[655361,1376268,1441794,2752514,3080194,3932161,4718593,5111809,5832706,6881281,7798786,8650754,9175041,9240583,9699329,10027010,10092546,10747917,10944513,11337729,11927553,13041680],"let":[9895938,10747906,13041666],"long":[1048577,1376258,9240577,10747906,10813441,13041666],"locationonimage":[4128770,7012354],"likely":[4063234,4325378,8716289,9371649],"location":[262147,327683,2883586,3211267,3735553,3932161,4128769,4063239,4325383,4390913,4784130,5111809,6029313,6553606,6750211,6881281,7012353,7143430,7208964,7536641,7667714,7733251,8388609,9109506,9175041,10027011,10289158,10747909,10878979,11075585,11206657,11337729,11927553,12648449,12845057,13041673],"like":[1900545,3604482,3997697,4718595,5570562,9699329,10027010,10747905,11206657,11468801,11665409,13041671],"line":[786433,1769473,10747905,13041665],"lastdirection":[9240581],"lastmovement":[9240578],"looking":[7602177,8978433,9240577,12451841],"link":[1],"loses":[2949122,4063235,4325379,5767169,8519681,8781825],"lower":[4718593,5046274,8978433,10027010,12255233,13041667],"loops":[4063233,4325377,9961473],"locations":[2228225,4063235,4325379,10878978],"look":[4063233,4325377,4718594,5570561,9502721,9699329,9961473,10027009,11468801,13041667],"little":[1441793,10027009,10420225,10747905,13041666],"looked":[6553601],"load":[10027009,11403265,13041665],"lost":[2949122,4063235,4325379,5767169,8519681,8781825]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_109.json b/SpriteLibrary/Doc/Help/fti/FTI_109.json new file mode 100644 index 0000000..917efcc --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_109.json @@ -0,0 +1 @@ +{"mirrorhorizontal":[1048578],"memory":[1048577,1376258,1835009,2686977,4063234,4325378,4718594,5570561,9699329,10747906,10813441,12910593,13041668],"mirror":[1048578],"movementspeed":[1769474,3932161,4718594,9240579,10027009,10747906,12255235,12320770,12713985,13041669],"making":[3604481,4063233,6881281],"majority":[2490369,4063233,9240577],"mirrorhorizontally":[1048577,1376257,4718593,9699330,10747905,13041666],"mirrorvertically":[1048577,1376257,4718593,5570562,10747905,13041666],"makes":[1703937,4063233,7405569],"main":[4063234,6881282],"multiple":[1114113,3604481,5898242,12058625,13041666],"mouseleave":[4980738,11206657,13041665],"movingtopoint":[524290,10027009,13041665],"moveto":[524289,786435,917505,1310723,1769476,8060929,8454146,10027011,10420228,10747912,11206659,12124162,12320771,13041678],"millisecods":[2490369,4063233,9240577],"mouseenter":[720898,11206657,13041665],"moving":[786433,1310722,1769475,6946817,8060929,9240577,10027009,10420225,10747910,12517377,13041671],"mouseleavetransparent":[7471106,11206657,13041665],"mousedown":[2883585,4063234,4325378,6553601],"master":[4063233,4325377,9764865],"mousehovertransparent":[10223618,11206657,13041665],"maindrawingarea":[4063236,9240579,9568260,10551300],"method":[65537,196609,262145,327681,393217,655361,786433,1048577,1245185,1310721,1376257,1572865,1638401,1769473,1835009,2162689,2228225,2293761,2424833,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211268,3407873,3670018,3735553,3801089,3866625,3932161,4128769,4194305,4063233,4259841,4587521,4653057,5177345,5308417,5505025,5636097,5767169,5832705,6029313,6160385,6225921,6356993,6553601,6619137,6815745,7012353,7208964,7340033,7405569,7536641,7602177,7667713,7798785,7864321,7929857,8060929,8126465,8192001,8257537,8323073,8388609,8519681,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9371649,9437185,9502721,9764865,9830401,9895937,9961473,10092545,10354689,10420225,10485761,10813441,10878977,11010049,11272193,11534337,11665409,11730945,11796481,11862017,11993089,12320769,12386305,12451841,12517377,12582914,12648449,12845057,12910593,12976129],"menu":[720899,4980739,7471107,11206668,11599875,13041676],"mouse":[327682,720898,2883585,3735554,4063233,4325377,4390913,4980738,6029313,7208961,7471106,7667716,10027009,10223617,10616833,10747910,11206666,11599874,13041681],"mouseup":[2883585,4063234,4325378,6553601],"middle":[589826,10027010,13041666],"misses":[2686977,4063233,4325377],"methods":[3342338,3473410,3604481,3670017,4063233,4325378,4915202,10289153,10747907,11927553,13041666],"marking":[9175041],"monster":[5701633,11206657,13041665],"mouseentertransparent":[11206657,11599874,13041665],"make":[1572865,2097153,2424833,4063236,4325378,4653057,4718596,5046273,5570561,5636097,6160386,7405569,7536641,7995393,8847361,9240577,9633793,9699329,10027009,10747909,12255233,12386305,12648449,13041674],"myspritecontroller":[3932161,4063234,9240581,9568257,10551297],"manages":[1114113,4063233,6422529,6881281,12058625],"manually":[2490369,4063233,6881282,9240577,10289153],"mycontroller":[1835010,4063234,4325378,12910594],"multiply":[6750209,7143426,7733249,10289154],"mousehover":[10616834,11206657,13041665],"map":[6946817,10027009,13041665],"matches":[11862017],"milliseconds":[5832705,5898241,5963778,6225921,6619137,7077889,7798785,9240577,12451841,13041665],"math":[9830401,10747906,11665409,13041666],"memberwiseclone":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"mirrorvertical":[1048578],"movement":[1310721,1769473,4718593,6881281,7929858,9830401,9895937,10747909,10944515,12255233,13041670],"moves":[655361,720897,786433,1769473,4980738,6881281,7471106,10027009,10223617,10616833,10747906,11206664,11599873,12713985,13041676],"moved":[6881281],"member":[9175041,10944513],"mydir":[9240581],"members":[2490369,3342337,3473409,3604481,4063233,4325377,4718593,4915201,5111809,7143425,7405569,9175041,9306113,10027009,10289153,10747905,10944513,11206657,11927553,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_110.json b/SpriteLibrary/Doc/Help/fti/FTI_110.json new file mode 100644 index 0000000..ac94e15 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_110.json @@ -0,0 +1 @@ +{"notify":[1835009,3014657,4063233,4325377],"nimber":[10027009,12189697,13041665],"newlocationonpicturebox":[6029314],"newpoint":[6815746,9437186],"numbers":[5046274,10027010,13041666],"namesprite":[4063233,4325377,8192002],"need":[1310721,1703937,1769474,1835011,2097153,3604481,3997697,4063239,4325380,4718596,5373953,5570561,6881283,7405569,8388610,9699329,10027010,10289153,10747908,11206657,11796481,12255233,12320769,12713985,12910595,13041675],"namespace":[65538,131074,196610,262146,327682,393218,458754,524290,589826,655362,720898,786434,851970,917506,1048578,1114114,1179650,1245186,1310722,1376257,1441794,1507330,1572866,1638402,1703938,1769473,1835009,1900546,1966082,2031617,2097154,2162690,2228226,2293762,2359298,2424834,2490369,2555906,2621442,2686978,2752514,2818050,2883586,2949121,3014658,3080194,3145730,3211266,3276802,3342337,3407874,3473409,3538946,3604482,3670018,3735554,3801090,3866626,3932162,3997698,4128770,4063234,4194306,4259842,4325377,4390914,4456450,4521986,4587522,4653058,4784130,4718593,4849666,4915201,4980738,5046274,5111809,5177346,5242882,5308418,5373954,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898241,5963778,6029314,6094850,6160386,6225922,6291458,6356994,6422530,6488066,6553602,6619138,6684674,6750210,6815746,6881281,6946818,7012354,7077890,7143425,7208962,7274498,7340034,7405569,7471106,7536641,7602178,7667713,7733250,7798786,7864321,7929858,7995394,8060930,8126466,8192002,8257538,8323074,8388610,8454146,8519682,8585218,8650754,8716290,8781826,8847362,8912898,8978434,9043970,9109506,9175042,9240578,9306113,9371650,9437186,9502722,9568258,9633794,9699330,9764866,9830402,9895938,9961474,10027009,10092546,10158082,10223618,10289154,10354690,10420226,10485762,10551298,10616834,10682370,10747905,10813442,10878978,10944514,11010050,11075586,11141122,11206657,11272194,11337730,11403266,11468802,11534337,11599874,11665410,11730946,11796482,11862018,11927554,11993090,12058626,12124162,12189698,12255234,12320770,12386306,12451842,12517378,12582914,12648450,12713986,12779522,12845058,12910594,12976130,13041666],"new":[393217,1114113,1245185,1572865,1835011,2097153,2424833,3604482,3735553,3932161,4063240,4325382,4521985,4718593,5898244,5963777,6225921,6422529,6619137,6881281,9043969,9240577,9502721,9568257,10551297,10747907,11730945,11796481,11927553,11993089,12058625,12648449,12779521,12910596,13041672],"net":[6881281],"newtickmilliseconds":[9043970],"newvector":[7929858],"nontransparent":[9175041],"newsize":[4653058],"needed":[1835009,4063233,4325377,6881281,9175041,12910593],"newlocation":[5111810,11337731,11927554],"named":[524289,3801089,3932161,4063238,4325381,5242881,7536641,9306113,9502721,10027011,11403266,11730946,11862017,13041667],"newsprite":[3932167],"nearly":[6946817,10027009,13041665],"notice":[1441793,10027009,13041665],"null":[1835010,3604482,3932161,4063234,4325378,5111809,6094849,11862017,11927553,12648450,12910594],"newlocationonimage":[3735554],"newimage":[393218],"notoriously":[9240577],"newbackground":[1835012,4063236,4325380,12910596],"needs":[589825,4063233,7405569,7995393,9240577,10027010,10682369,13041666],"newspeed":[6225922,6619138],"number":[262145,1048577,1376264,1507329,1638403,1835009,2424835,2752513,3080194,4063237,4325380,4718594,5046275,5505025,5832706,5898241,5963777,7077891,7405569,7798785,7995393,8650753,8978434,9502721,9830401,10027012,10092545,10747918,10813441,10878978,11272195,11993090,12255234,12910593,13041685]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_111.json b/SpriteLibrary/Doc/Help/fti/FTI_111.json new file mode 100644 index 0000000..283aee8 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_111.json @@ -0,0 +1 @@ +{"oldsprite":[5898241,9633795,13041665],"outside":[4456449,4718593,13041665],"optional":[393218,1245185,2424833,3211265,4259841,4587521,5177345,7208961,7340033,8912897,9633793,9895937,9961473,11993089],"optimizeforlargespriteimages":[1703938,4063233,7405569],"ought":[5111809,7274497,11927553],"opacity":[6946821,10027012,13041668],"overlap":[9175042],"origspritename":[5898241,9633793,13041665],"overridden":[4063233,7405569,12582913],"overridding":[12582913],"oneimage":[1835010,4063234,4325378,12910594],"opposite":[524289,10027009,13041665],"occasionally":[2949122,4063235,4325379,5767169,8519681,8781825],"operations":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"override":[3604481],"object":[1179650,2359298,2621441,3342347,3473410,3604492,4063248,4325391,4915211,5505025,8257537,8323073,9240577,9568257,10289154,10747915,11927564,13041676],"originally":[1441793,10027009,13041665],"one":[524289,786433,917505,1114114,1835011,2424834,2883585,4063244,4325384,5963778,6553601,6881282,6946817,7012353,7077890,7405569,7995393,8454145,9961473,10027014,10420225,10747907,11206657,11468802,11862017,12582914,12713985,12910595,13041674],"operation":[524289,10027009,13041665],"order":[196610,3866625,4063237,4325381,6160385,6356993,8716289,9371649,12582914],"original":[5898242,9633795,13041666],"originalimage":[4063234,5439490,6684673,9306114],"overload":[327681,786433,1048577,1114113,1310721,1376257,1769473,1835009,2031617,2162689,2752513,2949121,3014657,3080193,3735553,3932161,4259841,5767169,5832705,5898241,5963777,6422529,7077889,7536641,7667713,7798785,7864321,8650753,8781825,8912897,9568257,9633793,10092545,10551297,10813441,11534337,12058625,12320769,12648449,12910593,12976129],"overlaps":[7602178,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_112.json b/SpriteLibrary/Doc/Help/fti/FTI_112.json new file mode 100644 index 0000000..d3e71fd --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_112.json @@ -0,0 +1 @@ +{"pixels":[2228227,4063233,4325377,4718593,5505025,6815746,7012353,8978433,9437186,12255233,13041665],"problem":[1835009,4063233,4325377,12910593],"putpictureboxlocation":[327681,3735553,6029314,7667714,10747907,13041667],"positioned":[5636097,10747905,13041665],"placespritebehind":[196610,4063233,4325377],"parameters":[65537,196609,262145,327681,393217,655361,786433,1048577,1114113,1179649,1245185,1310721,1572865,1638401,2162689,2359297,2424833,2621441,2752513,2818049,2883585,3080193,3211265,3407873,3670017,3735553,3866625,3932161,4128769,4063234,4259841,4325378,4587521,4653057,5177345,5505025,5767169,5832705,5963777,6029313,6160385,6225921,6356993,6422529,6553601,6619137,6815745,7012353,7077889,7208961,7340033,7602177,7798785,7929857,8192001,8257538,8323074,8650753,8716289,8912897,8978433,9043969,9109505,9371649,9437185,9502721,9568257,9633793,9895937,9961473,10092545,10420225,10551297,10813441,10878977,11010049,11272193,11665409,11730945,11796481,11862017,11993089,12058625,12320769,12451841,12648449,12910593],"project":[6881282],"paused":[7340034,10027009,10747905,10944514,11468801,13041666],"pictuerbox":[4128769],"pb_map":[1835010,4063234,4325378,12910594],"perform":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"percentage":[6619137,10747905,13041665],"play":[65538,4063233,4325377],"puts":[3932161],"pauseevents":[10944514],"place":[327681,3735553,7667714,8454145,9830401,10027009,10747906,13041667],"pass":[1179649,6881281,9240577],"points":[786433,917506,5701633,8454145,10027009,11206660,12124161,13041669],"people":[4063233,4325377,7929857,9043969,10747906,11665409,13041666],"prefer":[4063233,4325377,7929857,9043969,10747905,13041665],"public":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703937,1900545,1966081,2097156,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3407873,3538945,3604484,3670017,3735553,3801089,3866625,3932162,3997697,4128769,4063233,4194305,4259841,4390913,4456449,4521985,4587521,4653057,4718595,4784129,4849665,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6946817,7012353,7077889,7208961,7274497,7340033,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240579,9371649,9437185,9502721,9568259,9633793,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551299,10616833,10682369,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041668],"pause":[4063236,4325380,5177345,6881281,7340033,9895943,9961476,10747909,10944516,13041669],"places":[5111809,6881281,7274497,11927553],"picturebox":[1835011,2031622,2621441,2818050,2883586,3014658,3211265,3538945,4063253,4128769,4325388,4653057,5505025,6029314,6291457,6553602,6750210,6815745,6881285,7012353,7143428,7208961,7733250,8388609,8585217,9568262,10027012,10158081,10289157,10485762,10551304,10747910,10878979,12910593,13041674],"pictureboxes":[4063233,6881281],"pauseall":[4587521,5177345,7340034,9895937,9961473,10747905,10944513,13041665],"pointers":[1835009,4063233,4325377,12910593],"priority":[2686977,4063233,4325377],"portoin":[11206657,11599873,13041665],"portions":[9175041],"private":[9240577,9568257],"point":[262151,786441,917505,1376257,1769482,2883590,3211268,3735556,3932161,4128774,4063241,4325385,4390914,4718593,4784130,5111809,5832707,5898241,6029315,6553606,6815748,7012359,7077892,7208963,7667713,8454145,9437188,10027010,10420233,10485763,10682369,10747928,10878984,11206659,11337731,11927553,12124162,12255233,12320774,12845059,13041695],"pauses":[10223617,10616833,11206658,13041666],"precise":[2228225,4063236,4325380,6553601,9240577,10878978,12582913],"particularly":[6029313,10747905,13041665],"perpetually":[10420225,10747905,13041665],"picture":[1966081,2228227,2555905,2621441,2883585,4063237,4325381,4390913,5505026,7012353,10027009,10878977,11206658,13041667],"probably":[262145,9830401,10747906,13041666],"parent":[10223617,10616833,11206658,13041666],"payload":[2097157,3604486,4718596,5373953,11206657,13041669],"pausemovement":[10944514],"part":[131073,7077889,11206657,13041665],"primarily":[5111809,6881281,7274497,9175041,11927553],"placespriteinfrontof":[4063233,4325377,6160386],"possible":[4063233,6881282,9240577,13041665],"position":[3211265,5832705,6029313,6881281,7208961,10747905,13041666],"parts":[4063233,6684673,9306113],"programs":[6881281,9240577],"print":[5046273,10027009,13041665],"placement":[5111809,11337729,11927553],"pausable":[10944513],"program":[4063234,4325377,4718594,5570561,6881281,7405569,7995393,9175041,9240577,9699329,11862017,13041666],"pauseanimation":[10944514],"properties":[4063234,9240577,9306114,9568257,10027010,10551297,13041665],"pressed":[2686977,2949124,4063239,4325383,5767173,8519683,8781828,9240577],"presses":[4063233],"pull":[1114113,5963777,6422529,12058625],"programmed":[3670017,10747905,13041665],"pixel":[262146,7208961,10747905,10878977,13041665],"pointing":[1441793,10027009,13041665],"printed":[4718594,5570561,9699329,13041666],"partial":[9240577,9568257,10551297],"poorly":[524289,10027009,13041665],"pieces":[9240577],"processing":[10027009,11403265,13041665],"playing":[1835009,4063234,4325378,11010051,12910593],"process":[524289,10027009,13041665],"property":[524290,589826,1441794,1507330,3407873,3538946,3604481,3997698,4063233,4325377,4390914,4718593,4784130,4849666,5046274,5242882,5439490,6291458,6488066,6684674,6946818,8454146,8585218,10158082,10682370,11403266,11468802,12189698,12255233,12713986,13041665],"processes":[262145,10747905,13041665],"portion":[7471105,9109505,10223617,11206658,13041666],"positions":[6881281,10289153],"putbaseimagelocation":[327683,3735555,3932161,6029313,7667715,10747907,13041667],"pictureboxlocation":[4390914,10027009,13041665],"particular":[262145,4063233,4325377,6619137,10747905,11730945,13041665],"particualar":[8978433,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_113.json b/SpriteLibrary/Doc/Help/fti/FTI_113.json new file mode 100644 index 0000000..d838d9d --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_113.json @@ -0,0 +1 @@ +{"queue":[4259841,8912897],"qualified":[3473409,10289153],"quickly":[9240577],"queueupinvalidation":[4259842,8912898],"quite":[6946817,10027009,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_114.json b/SpriteLibrary/Doc/Help/fti/FTI_114.json new file mode 100644 index 0000000..8efeba6 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_114.json @@ -0,0 +1 @@ +{"ratio":[2228227,4063234,4325378,6750209,6881281,7143426,7733249,10289155],"rarely":[1441793,10027009,13041665],"rule":[10027009,11403265,13041665],"returnpictureboxadjustedwidth":[4063233,4325377,5505026],"right":[655361,1376262,1441793,1900545,2752513,3080193,4718593,5111809,5832705,6881281,7798785,8650753,9240583,9699329,10027009,10092545,10747911,11206657,11337729,11927553,13041674],"remainder":[4063233,4325377,11862017],"reset":[2686978,4063234,4325378],"registerkeyupfunction":[4063233,4325377,8257538],"rectangle":[131073,851969,1441793,2818055,3211265,4063236,4325380,5111809,6881281,7208962,7602181,8912901,9109509,9175044,10027009,10747906,11206657,11534338,11927553,13041668],"reaches":[786434,1769474,10747906,13041666],"reached":[786433,1769473,10747905,11206657,12124161,13041666],"rapidly":[6946817,10027009,13041665],"recalcpictureboxlocation":[8388610,10747905,13041665],"replacing":[1835010,4063234,4325378,12910594],"rectangles":[9175042],"refined":[12582913],"representing":[6619137],"rotated":[1048578,1376260,10747908,10813442,13041668],"registerkeydownfunction":[4063233,4325377,8323074],"resume":[3997697,10027009,13041665],"range":[12451841],"returnadjustmentratio":[2228226,3145730,4063233,4325377,10747905,13041665],"random":[4063233,7405569,7995395],"resize":[1703937,4063233,4653057,6029313,7405569,8388609,10747907,13041667],"retainname":[9633794],"rounding":[4063233,4325377,9830401,10420225,10747906,10878977,13041666],"returnpictureboxadjustedpoint":[4063233,4325377,7012354],"reverse":[4063233,4325377,7012353],"recalculate":[10420225,10747905,13041665],"randomnumbergenerator":[4063233,7405569,7995394],"rotation":[1048577,1376258,1441795,6881281,10027010,10747906,10813442,13041669],"reclaimed":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"reach":[10420225,10747905,13041665],"regularly":[4063233,4325377,9043969],"resumes":[10944514],"return":[262145,1638401,1835010,2162690,2228226,2293762,2621442,2818049,2883585,3145729,3211265,3932161,4128769,4063243,4194306,4325387,4849665,5308417,5505026,5767169,6291457,6553601,6815746,7012353,7208962,7340033,7602177,7864322,8519682,8585217,8781825,8978434,9109506,9240578,9437186,9502721,9764866,9830402,10027012,10485762,10747914,10878977,11010049,11272193,11468801,11730946,11862017,12451842,12517378,12582913,12648449,12845058,12910594,12976130,13041678],"represents":[1572865,3342337,3604481,4063233,4325377,4915201,9830401,10747905,11927553,13041665],"relative":[4653057,8585217,10027009,10747905,13041666],"resetkeypressstate":[2686978,2949122,4063236,4325380,5767169,8519681,8781825],"responsible":[10420225,10747905,13041665],"replaceoriginalimage":[1835012,3014659,4063237,4325379,5439489,6684673,9306114,12910596],"releases":[2949122,4063235,4325379,5767169,8519681,8781825],"result":[2424833,10747905,13041665],"reports":[10027009,11468801,13041665],"redirected":[1],"resources":[3342337,3604481,4063234,4325377,4915201,9240577,9568257,10551297,10747905,11927553,13041665],"round":[9830401,10747905,13041665],"released":[2686977,4063233,4325377],"resizes":[8388609,10747905,13041665],"replaces":[393217,10747905,13041665],"retain":[3932161],"rotate":[1048577,1376258,10747906,10813441,13041666],"ready":[9240577],"rectabgle":[7602177],"returnpointadjustedforimage":[4063233,4325377,10878978],"remove":[3407873,3801089,4063234,4325378,10354689,10747905,13041665],"replaceimage":[393218,10747905,13041665],"results":[1441793,9830401,10027009,10747905,13041666],"rotationdegrees":[10813442],"returned":[9830401,10747905,11141121,11206657,13041666],"replace":[393219,1835009,4063235,4325377,5439489,6684673,9306114,10747907,12910593,13041667],"reaching":[10420225,10747905,13041665],"replacebackground":[1835009,4063233,4325377,12910593],"relation":[6291457,8585217,10027010,13041666],"reason":[10027009,11403265,13041665],"recompute":[8388609,10747905,13041665],"removed":[8060929,8126465,10747906,13041666],"refreshing":[3080193],"removes":[10354689,10747905,13041665],"reappear":[5636097,10747905,13041665],"returns":[2883585,3145729,3342337,3473410,3604481,4063239,4325383,4915201,5308417,6553601,10027010,10289154,10747907,10878978,11468802,11730945,11862017,11927553,12648449,13041669],"rotating":[1048577,1376258,1441793,10027009,10747906,10813441,13041667],"report":[6881281,10027012,10682369,11468803,13041669],"reference":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4194305,4063233,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4784129,4718593,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6291458,6225921,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881283,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027010,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041666],"radians":[1638404,5308418,10747909,11272194,11665411,13041669],"returnpictureboxadjustedheight":[2621442,4063233,4325377],"retrieve":[2097153,4718593,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_115.json b/SpriteLibrary/Doc/Help/fti/FTI_115.json new file mode 100644 index 0000000..594d10b --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_115.json @@ -0,0 +1 @@ +{"spritesbasedoff":[4063233,4325377,11730946],"setspritedirectionradians":[4718593,10747905,11665410,12255233,13041666],"sword":[5701633,11206657,13041665],"spriteatimagepoint":[3211266,10747905,13041665],"specifying":[1048577,1572865,2031618,2424833,4063234,5898241,7077889,9568257,10551297,10747906,10813441,13041667],"spritekeyeventhandler":[2359298,6881281,8257538,8323074],"sort":[983041,4063233,7405569,10420225,10747905,12582917,13041665],"spriteanimationcomplete":[458754,2424833,10747906,11206657,11993089,13041667],"setspritedirectiondegrees":[655362,3932161,4718593,7929857,9240578,10747907,11665409,12255233,13041668],"sure":[2424833,6160385,10747905,13041665],"spritecollisionmethod":[851970,3211267,3670018,6881281,7208964,9175042,10747905,13041665],"spriteforwards":[4063233,4325377,8716290],"syntax":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703937,1900545,1966081,2097154,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3407873,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4063233,4194305,4259841,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6946817,7012353,7077889,7208961,7274497,7340033,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041666],"sets":[1835009,4063233,4325377,10420225,10747905,12910593,13041665],"solution":[6881281],"sample":[6881281],"shift":[7929858,10747906,13041666],"stops":[2424835,10747906,13041666],"spritesize":[2752514,12058626],"shrunk":[262145,3145729,3538945,8585217,10027011,10158081,10747906,13041669],"specifiec":[7208961,10747905,13041665],"specified":[196609,262145,327681,1048577,1376264,2752513,2883585,3080193,3211265,3342337,3473409,3604481,3735553,3866625,3932162,4063252,4325396,4653057,4915201,5177345,5832705,5898242,6029313,6160385,6356993,6422529,6488065,6553602,6619137,7077889,7208961,7340034,7536642,7602177,7667714,7798785,8192002,8650753,8716289,8912897,9371649,9502722,9633793,9961473,10027009,10092545,10289153,10747922,10813441,10878977,11010049,11534337,11796481,11862018,11927553,12451841,12648449,13041685],"stretch":[2818049,4063234,4325377,9240577,9568257,10551297],"setspritedirectiontopoint":[4718593,10420227,10747906,12255233,13041667],"stub":[3604481,6881281],"spriteexitspicturebox":[1966082,11206657,13041665],"specify":[393217,1376262,2424833,2752513,3080193,5832705,7798785,8650753,10092545,10747912,12582913,13041672],"someday":[6881281,9175041],"status":[2686977,4063233,4325377],"sendtoback":[8847362,10747905,13041665],"spriteeventargs":[851970,1179652,4915203,5111811,6094850,6881283,7274498,11141121,11206657,11337730,11927559,12779524,13041665],"setting":[1703938,4063234,6946817,7405570,9568257,10027009,13041665],"stating":[1048578],"spritebackwards":[4063233,4325377,9371650],"simply":[10027009,10354689,10747905,11468801,13041666],"shots":[2555905,11206657,13041665],"stretching":[4063233,4325377,5505025],"sprite":[131079,196616,262148,327684,393220,458756,524290,589831,655363,720902,786438,917509,1048578,1114119,1179653,1245186,1310730,1376270,1441796,1507331,1572868,1638402,1703938,1769486,1835011,1900550,1966085,2031618,2097155,2162691,2293762,2424837,2555909,2621442,2686977,2752516,2883586,3014657,3080196,3145733,3211268,3276807,3407878,3538946,3604482,3670022,3735556,3866628,3932169,3997698,4063279,4194306,4325412,4390916,4456451,4587524,4653060,4718603,4784131,4849668,4980742,5046276,5111814,5308420,5373958,5505025,5570564,5636099,5701636,5832708,5898258,5963782,6029315,6094853,6160392,6225923,6291460,6356996,6422535,6488068,6553603,6619138,6684673,6815747,6881297,6946823,7077895,7208968,7274497,7340038,7405571,7471110,7536644,7602180,7667718,7798788,7864322,7929859,8060931,8126467,8192005,8388610,8454147,8585220,8650756,8716292,8847363,8978435,9109506,9175046,9240579,9306113,9371652,9437187,9502723,9568257,9633805,9699332,9764866,9830404,9895940,10027050,10092548,10158083,10223621,10289153,10354692,10420228,10485763,10551297,10616837,10682371,10747979,10813442,10944516,11075589,11141126,11206689,11272194,11337730,11403270,11468807,11599878,11665411,11730951,11796486,11862026,11927559,11993091,12058631,12124168,12189698,12255236,12320775,12386307,12451842,12517380,12582919,12648456,12713987,12845059,12910594,12976131,13041834],"spriteatpictureboxpoint":[7208962,10747905,13041665],"step":[2424833,10747905,13041665],"stop":[4980737,7471105,8060929,9240577,10420225,10747906,11206658,13041668],"second":[12582914],"startframe":[1245186],"stored":[2686977,4063233,4325377],"setname":[1572866,4063233,4325377,8192001,10747905,11862017,13041665],"slowly":[9240577],"spriteeventhandler":[131074,458754,720898,917506,1179650,1900546,1966082,2555906,3276802,4980738,5373954,5701634,6881281,7471106,10223618,10616834,11075586,11141122,11599874,12124162],"stuff":[9568257],"scaled":[262145,1441793,10027009,10747905,13041666],"spritetoback":[3866626,4063233,4325377],"spaceship":[9240585],"search":[983041],"spritepausetype":[4063235,4325379,4587523,5177349,6881281,7340036,9895939,9961478,10944514],"sizes":[1703937,4063233,7405569],"shrinking":[1441793,1703937,4063234,4325377,5505025,7405569,10027009,13041665],"spritecomparisondelegate":[4063233,7405569,12582915],"spritesatimagepoint":[4063233,4325377,6553602],"spriteatpicturebox":[3211265,10747905,13041665],"send":[3866625,4063233,4325377,5177345,8716289,9371649,9961473,10420226,10747905,13041665],"setspritename":[10027009,11403265,13041665],"structures":[6881281],"speed":[2097153,4718595,6225921,6619139,7929858,8978435,10027009,10747911,12255234,12451842,12713985,13041675],"sent":[10878977],"sides":[9175041],"spriteimage":[1114114,2752514,3080194,5832706,5963778,6422530,7077890,7798786,8650754,10092546,12058626],"single":[1048577,1376258,3080193,5898241,6422529,6946817,10747907,10813441,12451841,13041668],"stick":[4456449,4718593,13041665],"spriteadjustedpoint":[262146,10747905,13041665],"starty":[3932162],"shallow":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"spritechangesanimationframes":[5701634,11206657,13041665],"set":[589825,655361,786434,1441793,1769475,1835009,1900545,2031617,3407873,4063235,4325378,4718593,5046273,5111809,5898241,6946818,7274497,7340033,7929857,8257537,8323073,8978433,9240577,9633794,9830403,10027011,10551297,10747913,11206657,11665409,11927553,12189698,12255233,12320769,12713985,12910593,13041679],"spritereachedend":[1769473,10747905,12320769,13041665],"sitting":[6946817,10027009,13041665],"spritereachedendpoint":[524289,786433,1769473,8454146,10027010,10747905,13041667],"soundplay":[65538,4063233,4325377],"shoot":[2097153,4718593,13041665],"spriteatendpoint":[917505,11206657,13041665],"substantial":[1703937,4063233,7405569],"spritehitspicturebox":[2555906,11206657,13041665],"spritepayload":[2097156,3342339,3604488,4521988,4718594,6881282,13041666],"setspritedirection":[4718593,7929858,10027009,10747905,12255233,12713985,13041667],"spritefromname":[4063233,4325377,11862018],"state":[12582913],"slow":[1703937,4063233,7405569],"spriteintersectsrectangle":[7602178,10747905,13041665],"safer":[10027009,12189697,13041665],"starts":[1376262,2752513,3080193,5832705,7798785,8650753,9240577,10092545,10747910,13041670],"sprites":[196609,262145,1835010,1966081,2031618,2097153,2162689,2293762,2883586,3014657,3670017,3801090,3866626,4063265,4194306,4259841,4325401,4718593,5046274,5177346,5242882,5439490,6356993,6553602,6684673,6881284,7864322,8716290,8847361,9109506,9175041,9306117,9371650,9502723,9568258,9764867,9961474,10027015,10551298,10747910,11141121,11206658,11403269,11534337,11730947,11796482,11927553,12386305,12582916,12910594,12976129,13041681],"spritesatpoint":[2883586,4063233,4325377],"sequence":[3997697,6881281,10027010,11468801,13041667],"stream":[65538],"spritecontroller":[65538,196610,1114115,1703938,1835010,2031620,2228226,2293762,2490372,2621442,2686978,2818050,2883586,2949122,3014658,3407874,3801090,3866626,3932162,4063247,4128770,4194306,4259842,4325383,5177346,5242882,5439490,5505026,5767170,5898245,5963779,6160386,6356994,6422531,6553602,6684674,6881284,7012354,7077891,7405571,7536642,7995394,8192002,8257538,8323074,8519682,8716290,8781826,8912898,9043971,9109506,9240580,9306115,9371650,9502723,9568263,9764866,9961475,10551302,10878978,11010050,11534338,11730947,11796482,11862018,12058627,12582914,12648450,12910594,13041670],"spritecanmoveonpicturebox":[6815746,10747905,13041665],"select":[1376262,2752513,3080193,5832705,7798785,8650753,10092545,10747910,13041670],"spritesbasedoffanything":[4063233,4325377,9764866],"spritearrivedatwaypoint":[786433,917506,1769473,10747905,11206657,13041666],"specific":[6225921,6881281,10747905,11206657,12124161,13041666],"size":[1376257,1703937,2228225,2752516,3538945,4063234,4325377,4653060,5898241,6291460,6881281,7405569,8585220,10027014,10158081,10747906,12058628,13041674],"string":[65538,1572867,3342337,3604481,3932164,4063237,4325381,4849666,4915201,7536641,8192004,9502723,10027009,10747905,11010050,11403267,11730947,11862019,11927553,13041666],"solid":[6946817,10027009,13041665],"spritebeingdestroyed":[5373954,11206657,13041665],"spritelist":[8126465,10747905,13041665],"start":[1245186,2424833,5832706,7077890,9240577,10747907,11993089,13041667],"scratch":[1245185,10747905,13041665],"spritesinimagerectangle":[4063233,4325377,9109506],"soundisfinished":[4063233,4325377,11010050],"sender":[1179650,2359298,4063234,4325378,8257537,8323073,9240577,9568257],"spritesthathavebeendrawn":[2293762,4063233,4325377],"spritesadpoint":[4063233,4325377,6553601],"small":[1835009,2949122,4063236,4325380,5767169,8519681,8781825,12910593],"store":[2097154,4718594,13041666],"straight":[786433,1769473,10747905,13041665],"speeding":[1703937,4063233,7405569],"structure":[3473409,6750209,6881282,7143425,7733249,10289154],"startx":[3932162],"system":[65538,262145,327682,393219,655361,786433,1048579,1114115,1179649,1245186,1572865,1638401,2162690,2359298,2424835,2621441,2752514,2818049,2883585,2949122,3080194,3211265,3604481,3735553,3932161,4063236,4128769,4259841,4325379,4653057,5505025,5767170,5832710,5963780,6029313,6225923,6422529,6553601,6619138,6815745,7012353,7077894,7208961,7602177,7798788,7929857,8192001,8519681,8650755,8781825,8912898,8978433,9043969,9109505,9240578,9437185,9502721,9568258,9633793,10092545,10420225,10551297,10813442,10878977,11010049,11272193,11665409,11730945,11862017,11927554,11993090,12058626,12320769,12451842,12910593,13041665],"starting":[5832705,9175041],"shown":[5963777],"space":[9240577],"sound":[65538,4063234,4325378,11010051],"shootingfieldform":[9240578,9568258,10551298],"spriteoriginname":[4849667,10027010,13041666],"spriteadjustmentratio":[2228227,3145732,3473411,6750210,6881281,7143427,7733250,10289155,10747905,13041665],"spritehitssprite":[11141122,11206657,13041665],"swing":[5701633,11206657,13041665],"spritetoadd":[11796482],"spritename":[5898242,9633794,10027009,11403266,11730946,13041667],"spritecanmoveonimage":[9437186,10747905,13041665],"spriteinitializes":[1900546,11206657,13041665],"setsize":[4653058,10747905,13041665],"stopped":[9240577,10944513],"storing":[3604481,6881281],"sends":[4063233,4325377,9961473],"stretched":[262145,3145729,3538945,7012353,8585217,10027011,10158081,10747906,13041669],"spritepayloads":[3604481],"struct":[10289153],"sendtofront":[10747905,12386306,13041665],"spritelibrary":[65541,131078,196615,262149,327685,393221,458758,524293,589829,655365,720902,786437,851973,917510,983041,1048581,1114118,1179654,1245189,1310726,1376258,1441797,1507333,1572869,1638405,1703941,1769474,1835010,1900550,1966086,2031618,2097157,2162693,2228229,2293765,2359301,2424837,2490370,2555910,2621445,2686981,2752517,2818053,2883589,2949122,3014661,3080197,3145733,3211270,3276806,3342338,3407878,3473410,3538949,3604486,3670023,3735557,3801093,3866630,3932165,3997701,4063238,4128773,4194309,4259845,4325378,4390917,4456453,4521989,4587526,4653061,4718594,4784133,4849669,4915202,4980742,5046277,5111810,5177350,5242885,5308421,5373958,5439493,5505029,5570565,5636101,5701638,5767173,5832709,5898242,5963782,6029317,6094853,6160391,6225925,6291461,6356998,6422534,6488069,6553605,6619141,6684677,6750213,6815749,6881287,6946821,7012357,7077894,7143426,7208966,7274501,7340038,7405570,7471110,7536642,7602181,7667714,7733253,7798789,7864322,7929861,7995397,8060933,8126469,8192006,8257542,8323078,8388613,8454149,8519685,8585221,8650757,8716294,8781829,8847365,8912901,8978437,9043973,9109509,9175046,9240581,9306114,9371654,9437189,9502725,9568261,9633798,9699333,9764869,9830405,9895942,9961478,10027010,10092549,10158085,10223622,10289157,10354693,10420229,10485765,10551301,10616838,10682373,10747906,10813445,10878981,10944517,11010053,11075590,11141126,11206658,11272197,11337733,11403269,11468805,11534338,11599878,11665413,11730949,11796486,11862021,11927558,11993093,12058630,12124166,12189701,12255237,12320773,12386309,12451845,12517381,12582917,12648454,12713989,12779525,12845061,12910597,12976133,13041670],"spritetofront":[4063233,4325377,6356994],"sit":[10944513],"sloppy":[4063234,4325378,10878978],"screen":[4063233,4325377,5505025],"spritearrivedatendpoint":[786433,1769474,10747906,11206657,12124162,12320769,13041667],"spritecount":[4063233,5242882,9306113],"serves":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"signals":[6881281,10944513],"steps":[2424833,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_116.json b/SpriteLibrary/Doc/Help/fti/FTI_116.json new file mode 100644 index 0000000..70068df --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_116.json @@ -0,0 +1 @@ +{"twice":[1835009,4063233,4325377,12910593],"tostring":[3342337,3473409,3604481,3932161,4063233,4325377,4915201,10289153,10747905,11927553,13041665],"takes":[1114113,2883585,4063238,4325382,5505025,5898243,5963777,6553601,6946817,7012353,10027011,10878978,11403266,12058625,13041670],"taken":[2686977,4063234,4325377,5439489,9306113],"types":[3604481,6881284,9175044],"tiny":[9830401,10747905,13041665],"try":[1703937,3342337,3604481,4063236,4325377,4915201,6881282,7405569,10747905,11927553,13041665],"terrible":[9633793],"timespan":[9240577],"tpayload":[3604482],"thumb":[10027009,11403265,13041665],"transparency":[9175041],"title":[983041],"tricky":[10027009,11468801,13041665],"targetsprite":[5111809,6094850,11927553],"traveling":[1966081,5308418,9830401,10747906,11206657,13041667],"timage":[12910594],"twoimage":[1835010,4063234,4325378,12910594],"transforms":[4063233,4325377,7012353],"tanksprite":[3604484],"top":[1376263,1769473,1835009,2031617,2490369,2752513,2949121,3080193,3342337,3473409,3604482,4063237,4325377,4718593,4915201,5046274,5111809,5636097,5832705,5898241,7143425,7405569,7536641,7667713,7798785,7864321,8650753,9175041,9306113,10027011,10092545,10289154,10747912,11206657,11534337,11927555,12582915,13041678],"timing":[10223617,10616833,11206658,13041666],"thought":[6881281,9175041],"two":[1835009,3670017,4063233,4325377,9175041,10747905,11141121,11206657,12582914,12910593,13041666],"toplay":[65538],"tell":[458753,786433,917505,1769475,1835011,3407873,4063236,4325380,5373953,8126465,8454145,10027011,10747908,11206661,11468802,12124162,12320770,12910595,13041676],"timertickmethod":[9568258],"turn":[786433,1769473,10747905,13041665],"tapping":[9240577],"trying":[1310722,1769473,2162690,5111809,9109505,10747905,11337729,11927553,13041665],"transparent":[6946817,7208961,7471105,10027009,10223617,10747905,11206659,11599873,13041669],"think":[2949122,4063235,4325379,5767169,8519681,8781825],"thing":[589825,2949122,4063236,4325380,5767169,8192001,8519681,8781825,10027009,13041665],"triggers":[1179649],"togoinfrontof":[6160386],"track":[327681,3735553,6029313,7667714,10747907,13041667],"tyounglightsys":[6881281],"triggered":[786434,1769474,2949122,4063237,4325381,5767169,8257537,8323073,8519681,8781825,10747906,13041666],"time":[589825,786433,917505,1769473,2097153,3407873,4063233,4259841,4325377,4718594,5701633,5832705,6946818,7798785,8912897,8978433,9240578,10027016,10682369,10747905,11206658,11403265,11468803,12255233,13041677],"target":[3670018,7602178],"tells":[524289,8454145,10027010,13041666],"true":[589825,786433,1703938,1769474,3211265,3407873,3932162,4063235,4259841,4325377,5111809,5767169,6815746,7208962,7274497,7340033,7405570,7602177,8454145,8781825,8912897,9240582,9437186,10027013,10747910,11010049,11468803,11927553,11993089,12320769,13041675],"togobehind":[196610],"tick":[4063234,4325378,9043971,9240577,9568257],"terms":[2621441,4063234,4325378,5505025],"tracks":[6881281,13041665],"totalmilliseconds":[9240577],"topic":[1],"timer":[2490369,4063233,9240579],"times":[1441793,2424833,10027011,10747905,11468802,13041668],"total":[12451841],"taking":[2424833,3145729,4063233,4325377,5505025,7012353,10747906,13041666],"tankpayload":[2097153,3604485,4718593,13041665],"tries":[9240577],"type":[65538,131073,196610,262146,327682,393219,458753,524289,589825,655361,720897,786433,851969,917505,1048579,1114116,1179650,1245186,1310721,1441793,1507329,1572865,1638402,1703937,1900545,1966081,2097153,2162691,2228225,2293761,2359298,2424835,2490369,2555905,2621442,2752514,2818050,2883586,3080194,3145729,3211267,3276801,3342338,3407873,3473411,3538945,3604482,3670018,3735553,3866625,3932162,3997697,4128770,4063235,4194305,4259841,4325379,4390913,4456449,4587521,4653057,4718593,4784129,4849665,4915202,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505026,5570561,5701633,5767170,5832710,5963781,6029313,6094849,6160386,6225923,6291457,6356993,6422530,6488065,6553602,6619138,6684673,6750209,6815746,6881281,6946817,7012354,7077895,7143425,7208963,7274497,7340035,7405569,7471105,7602178,7733249,7798788,7929857,7995393,8192002,8257537,8323073,8454145,8519681,8585217,8650755,8716289,8781825,8912898,8978434,9043969,9109506,9240577,9306113,9371649,9437186,9502722,9568258,9633794,9699329,9764865,9830401,9895937,9961474,10027009,10092545,10158081,10223617,10289155,10420225,10485761,10551297,10616833,10682369,10747907,10813442,10878978,10944513,11010050,11075585,11141121,11206657,11272194,11337729,11403265,11468801,11599873,11665409,11730946,11796481,11862018,11927554,11993090,12058627,12124161,12189697,12255233,12320769,12451843,12517377,12582913,12648450,12713985,12845057,12910593,12976129,13041667],"things":[327681,1835009,3735553,4063233,4325377,4718594,5570561,6029313,7667714,9240577,9699329,10420225,10747908,10944513,12910593,13041670],"told":[5373953,10027010,11206657,11468802,13041667]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_117.json b/SpriteLibrary/Doc/Help/fti/FTI_117.json new file mode 100644 index 0000000..34810b0 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_117.json @@ -0,0 +1 @@ +{"unhidesprite":[5636098,10354689,10747906,13041666],"unless":[327681,393217,3735553,7667714,8454145,10027010,10747908,11468801,11665409,13041670],"unpause":[4063234,4325378,4587524,5177348,10747906,10944515,13041666],"usually":[524289,2490369,2686977,4063236,4325379,4784129,6946817,9240577,9830401,10027012,10747905,11403265,11796481,11862017,13041669],"user":[3604481,6881281],"using":[327683,1048577,1376257,1441793,2162689,2424833,2818049,3735555,4063233,4325377,4653057,4718595,5308417,5570561,5636097,6029313,6225921,6553601,6881282,7012353,7340033,7667718,7864322,7929858,8454145,9240577,9699329,10027012,10747923,11665409,12189697,12255233,12713985,12976129,13041690],"useful":[262145,1966081,2555905,6881281,9175041,10747905,11206658,13041667],"uses":[393217,2883585,3080193,4063234,4325378,6553601,9240577,10747905,13041665],"unpaused":[10944514],"used":[262146,458753,851970,1179649,1835009,2228225,3014657,3145730,3211265,4063235,4325379,4390913,5111811,6553601,6881282,7012353,7274497,9175041,9568257,10027010,10747907,11206657,11403265,11927555,13041670],"uncleaer":[12582913]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_118.json b/SpriteLibrary/Doc/Help/fti/FTI_118.json new file mode 100644 index 0000000..b1db9ed --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_118.json @@ -0,0 +1 @@ +{"visible":[131073,3276801,3538945,4063234,4325377,5242881,6553601,8585217,9306113,10027011,10158081,11206658,13041669],"values":[1179649,2097153,4718593,6881281,9175041,13041665],"vertically":[1048577],"vanishes":[589825,3407873,4063233,4325377,10027009,13041665],"virtual":[2621441,4063233,4325377],"various":[2097154,4718594,6881281,9175041,13041666],"visiblewidth":[10027009,10158082,13041665],"vectors":[7929857,10747905,13041665],"visibleheight":[3538946,10027009,13041665],"value":[131073,262145,458753,524289,589825,720897,851969,917505,1048577,1441793,1507329,1638401,1703937,1900545,1966081,2097153,2162689,2228225,2293761,2555905,2621441,2818049,2883585,3145729,3211265,3276801,3538945,3932161,3997697,4128769,4194305,4390913,4456449,4784129,4849665,4980737,5046273,5242881,5308417,5373953,5439489,5505025,5570561,5701633,5767169,6094849,6291457,6488065,6553601,6684673,6750209,6815745,6946819,7012353,7208961,7274497,7340033,7471105,7602177,7733249,7995393,8454145,8519681,8585217,8781825,8978433,9109505,9175041,9240577,9437185,9502721,9699329,9764865,9830402,10027011,10158081,10223617,10485761,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468802,11599873,11730945,11862017,12124161,12189697,12255233,12451841,12517377,12582913,12648449,12713985,12845057,12976129,13041668],"vector":[4718593,6881281,7929861,10747907,12255233,12517380,13041669],"verify":[589825,10027009,13041665],"variable":[10747905,11993089,13041665],"version":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703937,1900545,1966081,2097153,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3407873,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4063234,4194305,4259841,4390913,4456449,4521985,4587521,4653057,4784129,4849665,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684674,6750209,6815745,6946817,7012353,7077889,7208961,7274497,7340033,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665],"valuetype":[3473411,10289155],"void":[65537,196609,327681,393217,655361,786433,1048577,1179649,1245185,1310721,1572865,1835009,2359297,2424833,2686977,2752513,3014657,3080193,3407873,3670017,3735553,3801089,3866625,3932161,4063233,4259841,4325377,4587521,4653057,5177345,5636097,5832705,6029313,6160385,6225921,6356993,6619137,7798785,7929857,8060929,8126465,8192001,8257537,8323073,8388609,8650753,8716289,8847361,8912897,9043969,9240577,9371649,9568257,9895937,9961473,10092545,10354689,10420225,10813441,11665409,11796481,11993089,12320769,12386305,12910594]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_119.json b/SpriteLibrary/Doc/Help/fti/FTI_119.json new file mode 100644 index 0000000..3345348 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_119.json @@ -0,0 +1 @@ +{"whattosend":[196610,6160386],"width":[1114117,4063235,4325379,4653058,5505030,5832707,5898245,5963780,6881281,7077891,7798787,8650755,9175041,10027009,10158081,10289153,10747905,12058626,13041671],"ways":[1835009,4063233,4325377,12910593],"www":[6881281],"working":[9175041],"waypoints":[8060929,10747905,13041665],"windowsbase":[6881281],"warning":[393217,2162689,6946817,7864322,10027009,10747907,12976129,13041668],"whe":[3407873,4063233,4325377],"want":[131073,196609,327682,393218,589825,720897,1048577,1245186,1376270,1835009,1966081,2031617,2424834,2555905,2752514,3080194,3276801,3604481,3735554,4063237,4325380,4587521,4980737,5046274,5373953,5701633,5832706,6029313,6160385,6356993,6881281,6946817,7471105,7667716,7798786,8257537,8323073,8650754,9175041,9240579,9568257,9633793,9830401,9895937,10027012,10092546,10420225,10551297,10747927,10813441,10878977,11206666,11599873,11665409,11862017,11993089,12582913,12910593,13041701],"windows":[2359297,5767169,6881282,7929857,9240577,9568257,10551297],"whichframe":[6225922,12451842],"walking":[1376268,2424833,2752514,3080194,4718593,5832706,7798786,8650754,9699329,10092546,10747917,13041678],"wide":[5505025],"works":[4718594,5570561,6881281,9175041,9699329,10420225,10747905,13041667],"wish":[393217,10747905,12451841,13041665],"width_ratio":[7143425,7733250,10289153],"whichanimation":[1245186,2424834,6225922,6619138,8978434,11993090,12451842],"write":[2162689,7864322,10747906,12976129,13041666],"window":[2686977,4063233,4325377,6029313,6881281,10747905,13041665],"way":[327681,1572865,1835009,3735553,4063233,4325377,5898241,6029313,7667714,9633793,10420225,10747909,12910593,13041670],"work":[2490369,3145729,3276801,4063233,9240577,10747905,11206657,13041666]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_122.json b/SpriteLibrary/Doc/Help/fti/FTI_122.json new file mode 100644 index 0000000..3cda34c --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_122.json @@ -0,0 +1 @@ +{"zvalues":[12582913],"zvalue":[5046274,10027009,12582915,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_97.json b/SpriteLibrary/Doc/Help/fti/FTI_97.json new file mode 100644 index 0000000..9c92ac1 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_97.json @@ -0,0 +1 @@ +{"allow":[4063233,7405569,12582913],"access":[2097153,4718593,13041665],"animaton":[5701633,11206657,13041665],"assembly":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703937,1900545,1966081,2097153,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3407873,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4063233,4194305,4259841,4390913,4456449,4521985,4587521,4653057,4784129,4849665,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6946817,7012353,7077889,7208961,7274497,7340033,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665],"area":[4063233,9568258,10551298],"adjustrectangle":[2818050,4063233,4325377],"accessible":[4063233,7405569,7995393],"animatejustafewtimes":[2424834,10747907,11993090,13041667],"actual":[2424833,3538945,4063233,4325377,7208961,10027010,10158081,10747905,11862017,11993089,13041667],"args":[2883585,4063233,4325377],"animating":[6946818,10027012,10747905,10944513,11468802,11993089,13041669],"adjust":[2818049,4128769,4063234,4325378,5111809,11337729,11927553],"allows":[1179650,3342337,3604481,4063233,4325377,4915201,6881282,10747905,11927553,13041665],"animateonce":[10027009,10747905,11468801,11993090,13041666],"attribute":[786433,1769473,10747905,13041665],"automatic":[10944513],"away":[4980737,7471105,11206658,13041666],"animate":[458753,1900545,9895937,10027011,10747905,11206658,11468803,13041670],"affects":[6225921,8585217,10027009,10747905,13041666],"automaticallymoves":[3932161,4718593,9240578,10027009,12255233,12713986,13041666],"addanimation":[1048579,1376265,2752515,3080195,4718594,5570561,5832707,7798787,8650755,9699329,10092547,10747912,10813443,13041674],"absoloute":[4063233,4325377,6553601],"armor":[2097154,3604482,4718594,13041666],"avoid":[4063233,6881281,9240577],"adjustment":[2228225,4063233,4325377,6881281,10289153],"animations":[1048577,1376264,1507329,2424833,2752513,3080193,4063233,5832705,5963777,6619137,7798785,8650753,10027009,10092545,10747913,10813441,13041674],"angleindegrees":[655362],"actually":[589825,1703937,1835010,4063235,4325378,7405569,10027009,10420226,10747906,12910594,13041667],"added":[6881281,9175041,11862017],"associating":[7077889],"aspects":[4587521,6881281,9895937,13041665],"angle":[1441793,10027009,11665409,13041665],"affect":[1835009,2162689,4063233,4325377,5111809,7864322,7929857,10747907,11337729,11927553,12910593,12976129,13041667],"articles":[6881281],"animationdone":[2424833,10027010,10747906,11468803,11993089,13041668],"animates":[5963777],"add":[1376268,2752514,3080194,3604481,4063236,4325380,5832706,6881283,7798786,8257537,8323073,8650754,9175041,10092546,10747916,10813441,11796483,13041676],"animation_index":[2162690],"angleinradians":[11665410],"animationindex":[10027009,12189698,13041665],"asking":[7208961,10747905,13041665],"according":[2818049,4063233,4325377],"animationframetoendon":[2424834,11993090],"animated":[6881282,13041665],"ask":[7340033,10747905,13041665],"adjustpoint":[4128770,4063233,4325377],"animation":[393222,458754,1048580,1114116,1245187,1376286,2162690,2424841,2752517,3080197,3997697,5701633,5832709,5898243,5963778,6225923,6422529,6619140,6881281,7077890,7798789,8650757,8978435,9240578,9895937,10027013,10092549,10747952,10813444,10944514,11206659,11468802,11993095,12058627,12189698,12451842,12976129,13041724],"appear":[12582913],"associated":[4390913,10027009,13041665],"addsprite":[3932161,4063233,4325377,11796482],"animationtocopy":[1048578,10813442],"animate_once":[10027009,11468801,13041665],"action":[10354689,10747905,13041665],"adjusts":[6619137,10747905,13041665],"appears":[196609,4063233,4325377],"allsprites":[4063233,4194306,4325377],"automatically":[1,655361,1769473,4456449,4718593,8388609,10027009,10420225,10747908,12320769,12713985,13041670],"adjusted":[2818049,4063233,4325377,7012353],"animationcount":[1507330,10027009,13041665],"arrived":[786433,1769473,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_98.json b/SpriteLibrary/Doc/Help/fti/FTI_98.json new file mode 100644 index 0000000..217d1f4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_98.json @@ -0,0 +1 @@ +{"button":[6881281],"box":[1966081,2228228,2555905,2621442,2883585,4063237,4325381,4390913,4456450,4718594,5505026,7012353,8388609,8585217,10027010,10747905,10878977,11206658,13041671],"booleans":[1048577,1376257,10747905,13041665],"best":[5636097,10027009,10747905,12189697,13041666],"browse":[6881282],"basic":[1179649,6881281,10027009,11403265,13041665],"border":[2555905,11206657,13041665],"board":[6815745,9437185,10747906,13041666],"baseimagelocation":[4784130,10027009,13041665],"based":[393217,2818049,2883586,3932161,4063244,4325388,5898241,6553605,8912897,9109505,9502721,9633793,10420225,10747905,11730947,12845057,13041666],"basically":[2621441,3604481,4063233,4325377],"bool":[524289,589825,1048578,1703937,1769473,3211265,4259841,4456449,5570561,5767169,6815745,7208961,7274497,7340033,7602177,8454145,8781825,8912897,9240580,9437185,9633793,9699329,10682369,10747905,11010049,11468801,12320769,12713985,13041665],"base":[4653057,4784129,6881281,10027009,10747905,13041666],"beware":[6225921,10747905,13041665],"begin":[1769473,7077889,9240577,10747905,12320769,13041665],"backgroundimagelayout":[4063233,9240577,9568257,10551297],"bitmap":[1835010,4063234,4325378,12910594],"bit":[1310721,1441793,1769473,9830401,10027010,10420225,10747907,11468801,13041669],"backgroundimage":[327681,1835009,3735553,4063238,4325378,5439490,6684674,7667714,9240577,9306115,9568257,10551297,10747906,10878977,12910593,13041666],"background":[327682,1835014,2031617,2883585,3014658,4063250,4325388,4653057,5439490,6553603,6684674,6881281,9109505,9240577,9306116,9437185,9568257,10289153,10420225,10551298,10747906,10878978,12845058,12910596,13041666],"boolean":[524291,589825,1048582,1376258,1703937,3211265,4063234,4259842,4325378,4456449,5570561,5767169,5898241,6815745,7208961,7274497,7340033,7602177,8454146,8781825,8912898,9437185,9633794,9699329,10027012,10682369,10747906,11010049,11468802,11534338,12713985,13041671],"better":[10420225,10747905,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_99.json b/SpriteLibrary/Doc/Help/fti/FTI_99.json new file mode 100644 index 0000000..7d6b61a --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_99.json @@ -0,0 +1 @@ +{"clean":[4063233,6684673,9306113],"circle":[9175042],"changeanimationspeed":[6619138,10747905,13041665],"convertradianstodegrees":[1638402,10747905,13041665],"command":[4063235,4325379,5177345,8060929,9502721,10747905,11730945,13041665],"creates":[3342337,3604481,3932161,4063235,4325379,4915201,9502721,10747905,11730945,11927553,13041665],"clicks":[131074,3276801,4390913,10027009,11206659,13041668],"created":[1114113,1900545,4063233,5898242,10027009,11206657,11403265,12058625,13041668],"convertdegreestoradians":[10747905,11272194,13041665],"check":[65537,2949122,3211265,3670017,4063237,4325380,5701633,5767170,7602177,8781825,9175041,10747907,11010049,11206657,13041668],"changetickinterval":[4063233,4325377,9043970],"collisions":[851969,5111809,6881281,9175041,10944513,11927553],"completely":[3407873,4063234,4325377,6881281],"consecutive":[5898241,7077889,13041665],"count":[4063235,4325378,5242881,5832706,7077890,9306113,9502723],"controlling":[6881281],"cannotmoveoutsidebox":[3932161,4456450,4718593,13041665],"create":[1048577,1376258,2031618,4063236,4325377,5898242,7077889,9568257,9633793,10027009,10551297,10747906,10813441,11403265,11796481,13041669],"changing":[196609],"control":[9240577],"certain":[5701633,11206657,13041665],"com":[6881281],"code":[1835009,3473409,4063233,4325377,9240577,10289153,12910593],"calculated":[4718593,8978433,12255233,13041665],"corresponds":[2621441,10878977],"cancelmoveto":[8060930,10747905,13041665],"cached":[1703937,4063233,7405569],"comes":[5701633,11206657,13041665],"centerpoint":[10485761,10747906,12845057,13041666],"clicking":[7208961,10747905,13041665],"constructor":[1114113,2031617,4521985,5898241,5963777,6422529,7077889,9568257,9633793,10551297,12058625,12779521],"cleaning":[589825,10027009,13041665],"collisionmethod":[851971,5111810,11927554],"copies":[1835010,4063234,4325378,12910594],"checks":[9175041,10944513],"corner":[1376262,2752513,3080193,5636097,5832705,7798785,8650753,10092545,10747911,13041671],"call":[9240577],"cpu":[4718594,5570561,9699329,13041666],"coordinates":[262145,327682,2818049,2883586,3211265,3735554,3932161,4063237,4325381,4653057,6553602,7208961,7667716,8912898,10747910,10878977,11534337,13041670],"colisions":[6881281,13041665],"collection":[3342337,3604481,4063233,4325377,4915201,10747905,11927553,13041665],"contain":[7929857,9175041,10747905,13041665],"calls":[8388609,10747905,13041665],"configure":[4063233],"contains":[1179649,4063233,5439489,5505025,6881282,9306113,10289153,11141121,11206657,11927553,13041665],"classes":[6881281],"consideration":[1310721,1769473,3145729,4063233,4325377,5505025,7012353,10747906,13041666],"controller":[1114115,1835011,2031618,2686977,3014657,3407873,4063246,4325383,5242881,5963779,6422531,6488065,6881282,7077891,8192001,9240578,9306113,9568257,10027009,10551297,10944513,11796482,12058627,12910594,13041665],"calculate":[6881281,10289153],"collision":[3670017,5111809,6094849,6881281,9175041,10747905,11927553,13041665],"continues":[1441793,10027009,13041665],"considered":[8519681],"calling":[2686977,4063233,4325377],"calculates":[4063233,4325377,5505025],"conflict":[9240577],"complete":[2424833,10747905,13041665],"changeanimation":[1245186,1376262,2752513,3080193,5832705,7798785,8650753,9240578,10027009,10092545,10747911,12189697,13041672],"codeproject":[6881281],"controls":[4063233,6881281],"changed":[1835009,2686977,3014657,4063234,4325378],"changes":[1835009,4063233,4325377,5701633,11206657,12910593,13041665],"checkbeforemove":[5111810,7274497,11075586,11206657,11337729,11927554,13041665],"cancel":[5111810,7274499,8060929,10747905,11075585,11206657,11927554,13041666],"conforms":[4128769,4063233,4325377],"compareto":[12582913],"countspritesbasedoff":[4063233,4325377,9502722],"clockwise":[1441793,10027009,10813441,13041665],"changeframeanimationspeed":[6225922,10747905,13041665],"currently":[851969,1310721,1769473,4063233,4325377,5111809,5308417,6881281,8519682,9175041,10747906,11010050,11927553,13041666],"convert":[1638401,10747906,11272193,13041666],"clicktransparent":[131073,3276802,11206658,13041666],"case":[4063233],"completes":[10747905,11993089,13041665],"completed":[65537,4063233,4325377,10027010,11468802,13041666],"copy":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1441793,1507329,1572865,1638401,1703938,1835009,1900545,1966081,2097154,2162689,2228225,2293761,2359297,2424833,2555905,2621441,2686977,2752513,2818049,2883585,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3538945,3604485,3670017,3735553,3801089,3866625,3932162,3997697,4128769,4063238,4194305,4259841,4325378,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6946817,7012353,7077889,7208961,7274497,7340033,7405569,7471105,7602177,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240578,9371649,9437185,9502721,9568258,9633794,9699329,9764865,9830401,9895937,9961473,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551298,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11272193,11337729,11403265,11468801,11599873,11665409,11730945,11796481,11862017,11927554,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582914,12648449,12713985,12779521,12845057,12910594,12976129,13041667],"containing":[2228225],"complex":[1835009,4063233,4325377,12910593],"constraints":[11075585,11206657,13041665],"clone":[4063233,4325377,5898241,9633793,10027009,11403265,11862017,13041666],"cleanup":[3342337,3604481,4063233,4325377,4915201,5373954,10747905,11206658,11927553,13041667],"creating":[6881281],"converted":[11272193],"collide":[9175041],"comparison":[12582914],"clicked":[2883585,7208961,10747905,13041665],"corresponding":[1638401,4128769,4063233,4325377,6815745,9437185,10878978,11272193],"consider":[4718594,5570561,9699329,13041666],"compares":[6619137,10747905,12582913,13041665],"called":[2490369,4063233,9240577],"continue":[10944513],"collections":[786433],"class":[65537,131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097155,2162689,2228225,2293761,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3538945,3604487,3670017,3735553,3801089,3866625,3932161,3997697,4063235,4128769,4194305,4259841,4325377,4390913,4456449,4521986,4587521,4653057,4718595,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6815745,6881283,6946817,7012353,7077889,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9240578,9306113,9371649,9437185,9502721,9568259,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10354689,10420225,10485761,10551299,10616833,10682369,10747905,10813441,10878977,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927555,11993089,12058625,12124161,12189697,12255233,12320769,12386305,12451841,12517377,12582913,12648449,12713985,12779522,12845057,12910593,12976129,13041668],"checking":[2424834,3670017,10747906,13041666],"checkforkeypress":[9240578,9568258],"current":[393217,2162690,2228225,3145729,3342340,3473409,3604484,3997697,4063236,4325380,4915204,7864321,10027009,10289153,10747911,10944513,11927556,12517378,12976131,13041672],"click":[131074,327682,2883585,3276802,3735554,4063233,4325377,6029313,6881284,7208961,7667716,10747910,11206659,13041673],"change":[196609,393218,1441793,1835009,3866625,4063240,4325384,6160385,6225921,6356993,6619138,8192002,8716289,9043969,9240578,9371649,10027011,10747906,11075585,11206657,11403265,12189697,12910593,13041670],"checkspritehitssprite":[3670018,10747905,13041665],"counter":[1441793,10027009,10813441,13041665],"calculating":[2228225,4063233,4325377],"constructors":[3604481,4063233,11927553,13041665]} \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/fti/FTI_Files.json b/SpriteLibrary/Doc/Help/fti/FTI_Files.json new file mode 100644 index 0000000..097182b --- /dev/null +++ b/SpriteLibrary/Doc/Help/fti/FTI_Files.json @@ -0,0 +1 @@ +["SpriteLibrary - Redirect\u0000index.html\u000018","SpriteController.SoundPlay Method\u0000html/08442d70-3a79-fa24-4f3e-eddc5c102938.htm\u000097","Sprite.Click Event\u0000html/01fdd72c-b202-8593-db2a-e1373358dd66.htm\u000095","SpriteController.PlaceSpriteBehind Method\u0000html/0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm\u000098","Sprite.SpriteAdjustedPoint Method\u0000html/0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm\u0000132","Sprite.PutBaseImageLocation Method (Double, Double)\u0000html/00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm\u0000150","Sprite.ReplaceImage Method\u0000html/0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm\u0000154","Sprite.SpriteAnimationComplete Event\u0000html/0e8b825f-f8df-9f14-41ec-f00778409dfb.htm\u000074","Sprite.MovingToPoint Property\u0000html/139d1443-5e11-02ed-7534-eb0f857804da.htm\u000094","Sprite.Destroying Property\u0000html/0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm\u0000144","Sprite.SetSpriteDirectionDegrees Method\u0000html/0f4e570a-2888-8819-176b-9dd070ca7db4.htm\u000095","Sprite.MouseEnter Event\u0000html/17255a69-f623-3a42-a7ce-db1eb348581a.htm\u000083","Sprite.MoveTo Method (List(Point))\u0000html/16df05cc-8770-7cbe-f754-ba9e386674ad.htm\u0000180","SpriteEventArgs.CollisionMethod Field\u0000html/18405dcf-237d-db66-cf64-0e08b0d16b41.htm\u000062","Sprite.SpriteArrivedAtWaypoint Event\u0000html/17ee5c77-8351-af30-dc43-9458d683a69e.htm\u000091","SpriteLibrary - Search\u0000search.html\u000010","Sprite.AddAnimation Method (Int32, Boolean, Boolean)\u0000html/1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm\u0000181","Sprite Constructor (SpriteController, Image, Int32, Int32)\u0000html/184a1964-91ec-6f0d-b7cf-95b722599d69.htm\u0000152","Sprite.SpriteEventHandler Delegate\u0000html/1bab1e49-641a-5648-d034-4298d8158019.htm\u0000111","Sprite.ChangeAnimation Method\u0000html/25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm\u000095","Sprite.MoveTo Method (Sprite)\u0000html/27051af5-8ad4-0b54-231d-456499ae5b51.htm\u0000123","Sprite.AddAnimation Method\u0000html/154fc8b0-0d6c-003e-be50-c94da6bc4597.htm\u0000716","Sprite.Rotation Property\u0000html/20db7ecc-35df-8911-2615-1f2b8777f03b.htm\u0000150","Sprite.AnimationCount Property\u0000html/23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm\u000062","Sprite.SetName Method\u0000html/36d40ecf-484f-3b53-43e4-87ed9108cb76.htm\u000084","Sprite.ConvertRadiansToDegrees Method\u0000html/2695c170-24ea-95d2-7f85-34c3930416b5.htm\u000077","SpriteController.OptimizeForLargeSpriteImages Field\u0000html/34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm\u0000131","Sprite.MoveTo Method\u0000html/1f2c365c-e65b-3894-2e47-41f07250bbc0.htm\u0000247","SpriteController.ReplaceOriginalImage Method\u0000html/2c9b874d-5097-98bf-908c-f6bac5d647d3.htm\u0000308","Sprite.SpriteInitializes Event\u0000html/2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm\u000076","Sprite.SpriteExitsPictureBox Event\u0000html/37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm\u000076","SpriteController Constructor\u0000html/323c4f03-703d-0898-c73e-40eb5784c05f.htm\u000076","Sprite.payload Field\u0000html/3a7614d3-cfe9-ce52-55be-ca5324839e92.htm\u0000131","Sprite.GetImage Method (Int32, Int32)\u0000html/4067393e-d724-b01d-dc77-947440c6c444.htm\u0000130","SpriteController.ReturnAdjustmentRatio Method\u0000html/41ac663a-2019-6a14-5ffd-16dfc7472578.htm\u000092","SpriteController.SpritesThatHaveBeenDrawn Method\u0000html/2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm\u000078","SpriteKeyEventHandler Delegate\u0000html/38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm\u000073","Sprite.AnimateJustAFewTimes Method\u0000html/3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm\u0000205","SpriteController Events\u0000html/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm\u000059","Sprite.SpriteHitsPictureBox Event\u0000html/3aabe50b-5222-99aa-4654-356baa30033a.htm\u000079","SpriteController.ReturnPictureBoxAdjustedHeight Method\u0000html/447d1a9a-0e17-9827-2a01-438434c1b879.htm\u0000105","SpriteController.ResetKeypressState Method\u0000html/48ff9be7-1395-25af-3585-3d32eba07309.htm\u000091","Sprite.AddAnimation Method (Image, Size)\u0000html/4a6fe677-5369-6c0a-1e61-81355aa238b1.htm\u0000170","SpriteController.AdjustRectangle Method\u0000html/4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm\u000093","SpriteController.SpritesAtPoint Method\u0000html/3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm\u0000146","SpriteController.IsKeyPressed Method\u0000html/50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm\u0000141","SpriteController.ReplaceOriginalImage Method\u0000html/49befa66-d9d0-400c-1fc2-ac57f17433f1.htm\u000079","Sprite.AddAnimation Method (Image, Int32)\u0000html/5284b83c-61a7-aefe-4087-f7137551b783.htm\u0000179","Sprite.ReturnAdjustmentRatio Method\u0000html/56d803c5-e2ad-dd16-0592-b816f726498d.htm\u000085","Sprite.SpriteAtImagePoint Method\u0000html/509560bd-f402-7e7f-a461-46845061a5fc.htm\u0000138","Sprite.ClickTransparent Event\u0000html/51c9d545-e5c3-888d-d033-17085734aa1d.htm\u000096","SpritePayload Methods\u0000html/5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm\u0000139","SpriteController.DestroySprite Method\u0000html/56b507fc-3071-20e9-63a7-b33484f3e687.htm\u0000112","SpriteAdjustmentRatio Methods\u0000html/57a9f458-c6c8-d106-aad4-b2547736909a.htm\u000093","Sprite.VisibleHeight Property\u0000html/5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm\u000077","SpritePayload Class\u0000html/4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm\u0000346","Sprite.CheckSpriteHitsSprite Method\u0000html/5d507565-cf0d-de52-2253-b55396e3886a.htm\u0000103","Sprite.PutBaseImageLocation Method (Point)\u0000html/5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm\u0000132","SpriteController.DestroyAllSprites Method\u0000html/63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm\u000060","SpriteController.SpriteToBack Method\u0000html/5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm\u000079","SpriteController.DuplicateSprite Method (String)\u0000html/60fe71db-5ea2-cf93-f216-79b15a6779db.htm\u0000215","Sprite.FrameIndex Property\u0000html/603ff402-efe2-bede-5c71-1a9583da0800.htm\u000088","SpriteController Class\u0000html/07a473e4-4716-e5b9-c7d2-c4748265fc58.htm\u00002275","SpriteController.AdjustPoint Method\u0000html/68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm\u000082","SpriteController.AllSprites Method\u0000html/662ea0d6-7a35-be51-5a25-288752509d24.htm\u000068","SpriteController.Invalidate Method (Boolean)\u0000html/451487c4-0cca-2c80-9b71-b116cbe00d6e.htm\u000091","SpriteController Methods\u0000html/2788d4d5-88bf-1154-dd17-8d4b99a79118.htm\u00001751","Sprite.PictureBoxLocation Property\u0000html/6273fa69-a784-9916-a8eb-5b16529fdf48.htm\u000077","Sprite.CannotMoveOutsideBox Field\u0000html/747bfb64-7646-38ee-09e3-65455ac597e5.htm\u000072","SpritePayload Constructor\u0000html/6acc0e43-8cb8-535c-6f39-8163bb21447a.htm\u000052","Sprite.UnPause Method\u0000html/6707f122-af81-e57d-d937-e4000242446f.htm\u000077","Sprite.SetSize Method\u0000html/7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm\u000095","Sprite Fields\u0000html/6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm\u0000316","Sprite.BaseImageLocation Property\u0000html/29f62d1a-212b-273e-582e-670c1ea2856c.htm\u000074","Sprite.SpriteOriginName Property\u0000html/7d21be0e-d534-6d93-1476-3aa585a8fea3.htm\u000081","SpriteEventArgs Methods\u0000html/4716eb02-e702-b61a-126a-362af50ca6d5.htm\u0000139","Sprite.MouseLeave Event\u0000html/7a4959c4-936a-b924-d525-7becb693a55b.htm\u000085","Sprite.Zvalue Property\u0000html/6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm\u0000120","SpriteEventArgs Fields\u0000html/817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm\u0000153","SpriteController.UnPause Method\u0000html/675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm\u000086","SpriteController.SpriteCount Property\u0000html/6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm\u000077","Sprite.GetSpriteRadans Method\u0000html/88cf999b-5b19-4cfc-adab-b0276f18431a.htm\u000073","Sprite.SpriteBeingDestroyed Event\u0000html/64d54496-389b-21a7-0387-25878b2bcc4c.htm\u000093","SpriteController.OriginalImage Property\u0000html/7d3a40d7-0ee8-6117-8d32-b236da97778f.htm\u000095","SpriteController.ReturnPictureBoxAdjustedWidth Method\u0000html/7c73b68e-f842-bfee-55d8-b36488fb35b7.htm\u0000128","Sprite.MirrorVertically Field\u0000html/679ff642-b87f-24d6-80c5-434c06c71523.htm\u0000103","Sprite.UnhideSprite Method\u0000html/6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm\u000082","Sprite.SpriteChangesAnimationFrames Event\u0000html/81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm\u0000105","SpriteController.IsKeyPressed Method (Keys)\u0000html/7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm\u0000151","Sprite.AddAnimation Method (Point, Image, Int32, Int32, Int32, Int32)\u0000html/8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm\u0000249","Sprite Constructor\u0000html/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm\u0000242","Sprite Constructor (SpriteController, Image, Int32, Int32, Int32)\u0000html/6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm\u0000158","Sprite.PutPictureBoxLocation Method\u0000html/7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm\u0000115","SpriteEventArgs.TargetSprite Field\u0000html/72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm\u000078","SpriteController.PlaceSpriteInFrontOf Method\u0000html/8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm\u000095","Sprite.ChangeFrameAnimationSpeed Method\u0000html/859526c5-9283-3edb-386b-905cbaa406fd.htm\u0000110","Sprite.GetSize Property\u0000html/8b245db5-fbb6-18bc-d219-832668d1432a.htm\u000087","SpriteController.SpriteToFront Method\u0000html/80b0403d-da14-c176-9d01-080fc170a67d.htm\u000082","Sprite Constructor (SpriteController, Image)\u0000html/98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm\u000095","Sprite.ID Property\u0000html/8e41c462-a765-51e2-4c3b-de231acba259.htm\u000065","SpriteController.SpritesAtImagePoint Method\u0000html/90511f90-497b-fc61-6984-15d76101a6f1.htm\u0000181","Sprite.ChangeAnimationSpeed Method\u0000html/93aee3f0-fb9a-e628-9224-0128a91d363a.htm\u0000113","SpriteController.BackgroundImage Property\u0000html/9d9cf5a5-3349-bfae-7d39-41082644a49e.htm\u000092","SpriteAdjustmentRatio.height_ratio Field\u0000html/a8864de9-4275-a608-f5b0-26d4b313967d.htm\u000072","Sprite.SpriteCanMoveOnPictureBox Method\u0000html/995741fd-f6ea-f11e-ee46-c88de9307e8a.htm\u000095","SpriteLibrary Namespace\u0000html/6b7227c0-7a6a-6342-3b08-917c7de429cc.htm\u0000513","Sprite.Opacity Property\u0000html/90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm\u0000171","SpriteController.ReturnPictureBoxAdjustedPoint Method\u0000html/9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm\u0000119","Sprite Constructor (Point, SpriteController, Image, Int32, Int32, Int32, Int32)\u0000html/8e88c5f2-f5d0-02df-c7cb-9701313411af.htm\u0000202","SpriteAdjustmentRatio Fields\u0000html/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm\u000074","Sprite.SpriteAtPictureBoxPoint Method\u0000html/9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm\u0000176","SpriteEventArgs.Cancel Field\u0000html/ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm\u000085","Sprite.IsPaused Method\u0000html/9474d6c2-30d9-a39b-3c10-b50286f93813.htm\u0000109","SpriteController Fields\u0000html/92b04460-74f1-c388-f3ac-ea510ffc4e06.htm\u0000138","Sprite.MouseLeaveTransparent Event\u0000html/8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm\u000090","SpriteController.DuplicateSprite Method\u0000html/ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm\u000057","Sprite.SpriteIntersectsRectangle Method\u0000html/96b717e2-d860-aa86-3760-d39620a2bb31.htm\u000091","Sprite.PutBaseImageLocation Method\u0000html/adaddf64-5e6e-447b-5d81-c38398216201.htm\u0000156","SpriteAdjustmentRatio.width_ratio Field\u0000html/92e90a8d-e5eb-daea-2804-b99254f25433.htm\u000072","Sprite.AddAnimation Method (Image, Int32, Int32, Int32)\u0000html/a50146be-5b11-1554-db6f-817ea76b9343.htm\u0000205","Sprite.GetImage Method\u0000html/b29c2176-174b-e620-0e33-9a22730ad05f.htm\u000074","Sprite.SetSpriteDirection Method\u0000html/aebe0cd6-1499-7da2-2f96-c86d84189b58.htm\u0000113","SpriteController.RandomNumberGenerator Field\u0000html/b9f05ef6-f80c-5676-1eca-d73833dca177.htm\u000067","Sprite.CancelMoveTo Method\u0000html/adc84477-1eb3-bb14-ee09-0525268c45f4.htm\u000065","Sprite.Destroy Method\u0000html/bc474319-2c51-e93f-07e2-9728d609c563.htm\u000072","SpriteController.NameSprite Method\u0000html/a5292253-7fbd-5dfa-819f-1d67d27580d6.htm\u0000102","SpriteController.RegisterKeyUpFunction Method\u0000html/b3e934e2-1ddf-35e3-0995-3b555539f33f.htm\u000093","SpriteController.RegisterKeyDownFunction Method\u0000html/af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm\u000093","Sprite.RecalcPictureBoxLocation Method\u0000html/ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm\u000075","Sprite.SpriteReachedEndPoint Property\u0000html/ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm\u000095","SpriteController.KeysPressed Method\u0000html/bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm\u0000131","Sprite.GetVisibleSize Property\u0000html/af9edc83-1d26-349b-8105-6064a540e2c7.htm\u000086","Sprite.AddAnimation Method (Image, Int32, Int32)\u0000html/9d686d62-c22c-20ec-7455-b4adc8070b8c.htm\u0000185","SpriteController.SpriteForwards Method\u0000html/b5c75d58-f132-f3ff-217f-e69b252db748.htm\u000083","SpriteController.IsKeyPressed Method\u0000html/bf10cc41-d9e2-52c5-0415-1083f0f55489.htm\u0000126","Sprite.SendToBack Method\u0000html/c0d47063-6820-3464-ed46-94ffd2329683.htm\u000054","SpriteController.Invalidate Method (Rectangle, Boolean)\u0000html/c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm\u0000109","Sprite.GetAnimationSpeed Method\u0000html/d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm\u0000104","SpriteController.ChangeTickInterval Method\u0000html/bf55ab7f-78c8-3879-b8f8-464dc203791e.htm\u0000100","SpriteController.SpritesInImageRectangle Method\u0000html/c2860c42-fc4c-78f8-7d32-195e74262434.htm\u0000107","SpriteCollisionMethod Enumeration\u0000html/b78d4878-d301-191f-9c53-4f41d3e937e6.htm\u0000185","SpriteController.DoTick Event\u0000html/ba843001-e657-41e8-7c66-c2473781ed40.htm\u0000589","SpriteController Properties\u0000html/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm\u0000126","SpriteController.SpriteBackwards Method\u0000html/d516c33b-29ef-9613-62fb-b6717264a32b.htm\u000083","Sprite.SpriteCanMoveOnImage Method\u0000html/c2f3867b-b906-a526-c836-718da1546a78.htm\u000096","SpriteController.CountSpritesBasedOff Method\u0000html/dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm\u0000123","SpriteController Constructor (PictureBox, EventHandler)\u0000html/d20e5816-faf3-723d-5f2d-ebff462012f1.htm\u0000217","Sprite Constructor (Sprite, Boolean)\u0000html/bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm\u0000164","Sprite.MirrorHorizontally Field\u0000html/c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm\u0000101","SpriteController.SpritesBasedOffAnything Method\u0000html/c7991a63-f63c-20d8-0605-fab6e9f13392.htm\u000079","Sprite.GetSpriteDegrees Method\u0000html/d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm\u0000152","Sprite.Pause Method\u0000html/db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm\u0000104","SpriteController.Pause Method\u0000html/d329fe20-e750-bf52-a75b-f2383bf1d35a.htm\u0000104","Sprite Properties\u0000html/bcdb40c8-478a-043c-5db0-393001600029.htm\u00001065","Sprite.AddAnimation Method (Image)\u0000html/e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm\u0000153","Sprite.VisibleWidth Property\u0000html/cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm\u000077","Sprite.MouseHoverTransparent Event\u0000html/d7215876-6117-ce45-75a4-77dc00c386cd.htm\u000081","SpriteAdjustmentRatio Structure\u0000html/eae9601e-6da0-b304-9836-5e4b1e743f94.htm\u0000210","Sprite.HideSprite Method\u0000html/e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm\u000074","Sprite.SetSpriteDirectionToPoint Method\u0000html/d416e051-269c-c343-aece-3682b87f3cbc.htm\u0000197","Sprite.GetSpritePictureboxCenter Method\u0000html/efb3089a-8900-83fe-ce65-f22e686d7477.htm\u000074","SpriteController Constructor (PictureBox)\u0000html/dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm\u0000174","Sprite.MouseHover Event\u0000html/d8964a64-57ec-3b0c-94b5-247707cd34e8.htm\u000076","Sprite.HasBeenDrawn Property\u0000html/f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm\u000081","Sprite Methods\u0000html/abfab841-a96c-b22d-7cd8-fec3aba92510.htm\u00002501","Sprite.AddAnimation Method (Int32, Int32)\u0000html/eb5261e9-43df-01a5-b974-25c2fd13309c.htm\u0000154","SpriteController.ReturnPointAdjustedForImage Method\u0000html/e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm\u0000161","SpritePauseType Enumeration\u0000html/efc2cb08-5c2b-c758-477e-d5739183a1ba.htm\u0000151","SpriteController.SoundIsFinished Method\u0000html/df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm\u000091","Sprite.CheckBeforeMove Event\u0000html/f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm\u000079","Sprite.SpriteHitsSprite Event\u0000html/acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm\u000073","Sprite Events\u0000html/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm\u0000661","Sprite.ConvertDegreesToRadians Method\u0000html/fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm\u000082","SpriteEventArgs.NewLocation Field\u0000html/e058b656-39e3-5a55-4437-ee869ecbf35e.htm\u000092","Sprite.SpriteName Property\u0000html/e753341a-7040-8dda-8f1e-681e926e9292.htm\u0000161","Sprite.AnimationDone Property\u0000html/f0db6147-f3aa-d599-6371-a89da047bbc5.htm\u0000231","SpriteController.Invalidate Method\u0000html/fd95464a-c61d-8ed2-a568-34b825efc047.htm\u000045","Sprite.MouseEnterTransparent Event\u0000html/acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm\u000088","Sprite.SetSpriteDirectionRadians Method\u0000html/ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm\u000091","SpriteController.SpritesBasedOff Method\u0000html/e05efb85-3736-fa59-2720-a460b898048a.htm\u0000127","SpriteController.AddSprite Method\u0000html/f28be11d-b67a-765c-441a-d7da336ccf77.htm\u000098","SpriteController.SpriteFromName Method\u0000html/e8491570-1fda-7d8e-48b8-c15f26c41d01.htm\u0000148","SpriteEventArgs Class\u0000html/f42e1d9a-273c-861f-b7db-6244c9266d2c.htm\u0000341","Sprite.AnimateOnce Method\u0000html/ff84ba57-4738-8ff0-2356-095dfe1cc159.htm\u0000169","Sprite Constructor (SpriteController, Image, Size)\u0000html/ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm\u0000136","Sprite.SpriteArrivedAtEndPoint Event\u0000html/e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm\u000097","Sprite.AnimationIndex Property\u0000html/f55ba01a-50d3-248c-5c34-ba32355db223.htm\u000079","Sprite.MovementSpeed Field\u0000html/e88e79e3-3edc-69e5-1854-23968928c073.htm\u0000120","Sprite.MoveTo Method (Point)\u0000html/eefee0d8-fb59-4546-386a-53f40c545c43.htm\u0000138","Sprite.SendToFront Method\u0000html/ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm\u000058","Sprite.GetFrameAnimationSpeed Method\u0000html/e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm\u0000117","Sprite.GetSpriteVector Method\u0000html/e9953cab-b878-4169-fda6-d5addecb267b.htm\u000065","SpriteController.SpriteComparisonDelegate Field\u0000html/f640b978-f990-84a2-015a-40bf256fc37d.htm\u0000184","SpriteController.DuplicateSprite Method (Sprite)\u0000html/ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm\u000097","Sprite.AutomaticallyMoves Property\u0000html/f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm\u000090","SpriteEventArgs Constructor\u0000html/fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm\u000052","Sprite.GetSpriteBaseImageCenter Method\u0000html/ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm\u000077","SpriteController.ReplaceOriginalImage Method (Image)\u0000html/eac30137-8237-e01a-ee3d-e599d117c03e.htm\u0000326","Sprite.GetImage Method\u0000html/fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm\u000089","Sprite Class\u0000html/66013d9b-4126-7d65-05bb-94eb9d134be6.htm\u00004798"] \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm b/SpriteLibrary/Doc/Help/html/00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm new file mode 100644 index 0000000..7785f77 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/00fa147e-bf27-6b9f-3f44-77f8e6c1a9cc.htm @@ -0,0 +1,13 @@ +Sprite.PutBaseImageLocation Method (Double, Double)
    SpritePutBaseImageLocation Method (Double, Double)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void PutBaseImageLocation(
    +	double X,
    +	double Y
    +)

    Parameters

    X
    Type: SystemDouble
    The X location on the background image
    Y
    Type: SystemDouble
    the Y location on the background image
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/01fdd72c-b202-8593-db2a-e1373358dd66.htm b/SpriteLibrary/Doc/Help/html/01fdd72c-b202-8593-db2a-e1373358dd66.htm new file mode 100644 index 0000000..744ad40 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/01fdd72c-b202-8593-db2a-e1373358dd66.htm @@ -0,0 +1,9 @@ +Sprite.Click Event
    SpriteClick Event
    + This event happens when someone clicks on the sprite (on the rectangle in which the sprite is). + If you want the event to fire off only when someone clicks on the visible part of the sprite, + use ClickTransparent instead. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler Click

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/07a473e4-4716-e5b9-c7d2-c4748265fc58.htm b/SpriteLibrary/Doc/Help/html/07a473e4-4716-e5b9-c7d2-c4748265fc58.htm new file mode 100644 index 0000000..d0b757d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/07a473e4-4716-e5b9-c7d2-c4748265fc58.htm @@ -0,0 +1,210 @@ +SpriteController Class
    SpriteController Class
    + A sprite controller is the main heart of the sprite class. Each SpriteController manages one picturebox. + If at all possible, try to keep each game in one picturebox, and try to avoid making and destroying + new forms with SpriteController/pictureboxes in them. It is hard to destroy them completely. +
    Inheritance Hierarchy
    SystemObject
      SpriteLibrarySpriteController

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public class SpriteController

    The SpriteController type exposes the following members.

    Constructors
    +   + NameDescription
    Public methodCode exampleSpriteController(PictureBox)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. You want to have the PictureBox already defined, and a background image + already set for the PictureBox. +
    Public methodCode exampleSpriteController(PictureBox, EventHandler)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. +
    Top
    Properties
    +   + NameDescription
    Public propertyBackgroundImage
    + The Background Image on which the sprites are drawn. This image ends up having + sprite parts on it. The OriginalImage is the version that is clean. Use + ReplaceOriginalImage to replace the background Image. +
    Public propertyOriginalImage
    + The Image from which the background is taken when we erase sprites. The BackgroundImage + is the image that contains images of the sprites as well as the background image. Use + ReplaceOriginalImage to replace this and the BackgroundImage. +
    Public propertySpriteCount
    + The count of all the sprites the controller knows about. This includes named + sprites, which may not be visible. +
    Top
    Methods
    +   + NameDescription
    Public methodAddSprite
    + Add the specified sprite to the list of sprites we know about. You usually do not need to do this. + Sprites add themselves to the controller when you create a new sprite. +
    Public methodAdjustPoint
    + Adjust an image point so that it conforms to the picturebox. +
    Public methodAdjustRectangle
    + Adjust a rectangle that is based on the image, according to the stretch of the picturebox +
    Public methodAllSprites
    + Return a list of all sprites +
    Public methodChangeTickInterval
    + Change the Tick Interval. By default, the spritecontroller does a tick every 10ms, which + is very fast. Some people may prefer it to happen less regularly. Must be > 5, and less than 1001 +
    Public methodCountSpritesBasedOff
    + Count the number of sprites that were duplicated from the sprite with the specified name. When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function will count those duplicated sprites. +
    Public methodDestroyAllSprites
    + Remove all sprites (even named sprites that have not yet been displayed) +
    Public methodDestroySprite
    + Tell a sprite to destroy itself. The sprite will have Destroying property set to true from + the time you destroy it until it vanishes. Whe you destroy a sprite, it will erase itself + and remove itself from the controller. After it is destroyed, it is completely gone. +
    Public methodCode exampleDuplicateSprite(String)
    + Find a sprite that has been named with the specified name. Then duplicate that sprite +
    Public methodDuplicateSprite(Sprite)
    + Make a duplicate of the specified sprite. The duplicate does not yet have a location. +
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodInvalidate(Boolean)
    + Invalidate the entire image on which the sprites are drawn +
    Public methodInvalidate(Rectangle, Boolean)
    + Invalidate a rectangle that is specified in image coordinates +
    Public methodIsKeyPressed
    + Check to see if any keys are pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Public methodIsKeyPressed(Keys)
    + Check to see if the given key is pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Public methodKeysPressed
    + Return a list of all the keys that are currently pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodNameSprite
    + Find the specified Sprite in the controller and change its name to the specified string. + You can do the same thing with Sprite.SetName(Name)
    Public methodPause
    + Pause everything. It loops through all the sprites in the SpriteController and sends the specified + SpritePauseType to each one. Look at the documentation for SpritePauseType to determine which pause + type to use. +
    Public methodPlaceSpriteBehind
    + Change the display order of the sprites such that the specified sprite appears behind the other sprite. +
    Public methodPlaceSpriteInFrontOf
    + Make the sprite go in front of the specified sprite. +
    Public methodRegisterKeyDownFunction
    + If you want to have a KeyDown function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +
    Public methodRegisterKeyUpFunction
    + If you want to have a KeyUp function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +
    Public methodReplaceOriginalImage
    + Notify the sprite controller that you have changed the background image on the + PictureBox. Whatever background is on the picturebox is now used to draw all the sprites on. +
    Public methodCode exampleReplaceOriginalImage(Image)
    + Replace the image on which the sprites are drawn. Use this when you move to a new playing field, + or want to have a different background +
    Examples
    + Replacing the background image is actually a lot more complex than you might imagine. Once you use the + below code, it can be done without any problem. But you need to do it this way, or it just goofs up in + a number of small ways. + You need to tell the sprite controller that you are replacing the background image, + and you need to change the image to that image as well.Because the Images are actually + pointers to memory where the image sets, changes to one image will affect the other image.This goofs + things up, so what we do is duplicate the image twice, and tell the sprite controller to use one of the + copies and then set the background to be the other one of the two copies.Finally, we tell the picturebox + to invalidate itself.That does everything that is needed. +
    C#
     void ReplaceBackground(Image NewBackground)
    +{
    +    if (MyController == null) return;
    +    if (NewBackground == null) return;
    +
    +    Image OneImage = new Bitmap(NewBackground);
    +    MyController.ReplaceOriginalImage(OneImage);
    +
    +    Image TwoImage = new Bitmap(NewBackground);
    +    pb_map.BackgroundImage = TwoImage;
    +    pb_map.Invalidate();
    +}
    Public methodResetKeypressState
    + Reset the keypress status. Sometimes the sprite controller misses a key being released (usually + because a window has taken priority, or something has changed). Calling this function will reset + the stored memory of whether a key has been pressed. +
    Public methodReturnAdjustmentRatio
    + Return an adjustment ratio. This is the image-size to picture-box ratio. + It is used for calculating precise pixels or picture-box locations. +
    Public methodReturnPictureBoxAdjustedHeight
    + Return the height of an object in picture-box terms. It is basically the virtual height + of the sprite or other item. +
    Public methodReturnPictureBoxAdjustedPoint
    + This does the reverse of an adjusted point. It takes a point on the image and + transforms it to one on the PictureBox +
    Public methodReturnPictureBoxAdjustedWidth
    + Return the width of an object in picture-box terms. It takes the width of a sprite or other + item that is being displayed on the screen, and calculates the width as displayed in the + picture-box (taking into consideration stretching or shrinking) +
    Public methodReturnPointAdjustedForImage
    + This takes a point, the location on a picturebox, and returns the corresponding point on the BackgroundImage. + Picturebox locations are "sloppy"; the background image locations are very precise. Since this takes a "sloppy" + number and returns a precise number, it does some rounding to figure out where the specified location is. +
    Public methodSoundIsFinished
    + Check to see if the specified sound has finished playing +
    Public methodSoundPlay
    + Play a sound that we can check to see if it has completed. +
    Public methodSpriteBackwards
    + Change the display order of the specified sprite so it is more likely to go behind all other sprites. +
    Public methodSpriteForwards
    + Change the display order of the specified sprite so it is more likely to go in front of other sprites +
    Public methodSpriteFromName
    + Find a sprite that has a specified name. This returns the actual sprite with that name. + You usually want to use DuplicateSprite(Name) to clone the sprite and get one you can + destroy. If you destroy a named sprite without duplicating it, you may end up losing + it for the remainder of the program. +
    Public methodSpritesAtImagePoint
    + This takes a point, as as specified on the image, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the background image coordinates. Use SpritesAdPoint() if you are doing something based off + a MouseUp or MouseDown function. This is used for functions based on sprite location or based off the absoloute + location (using the background image location is much more precise than the visible location in the picturebox) +
    Public methodSpritesAtPoint
    + This takes a point, as given by the mouse-click args, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the picturebox coordinates. So you can use this directly from a MouseDown or MouseUp function. +
    Public methodSpritesBasedOff
    + Return all sprites that were based off a particular sprite name. + When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function returns a list of those + duplicated sprites. +
    Public methodSpritesBasedOffAnything
    + Return a list of all sprites which are not master sprites (which are duplicates of something) +
    Public methodSpritesInImageRectangle
    + Return a list of all the sprites that intersect with the given background-image-based rectangle +
    Public methodSpritesThatHaveBeenDrawn
    + Return a list of all sprites which have been drawn on the image +
    Public methodSpriteToBack
    + Change the display order of the specified sprite so it goes behind all other sprites. +
    Public methodSpriteToFront
    + Change the display order of the specified sprite so it goes in front of all other sprites. +
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Public methodUnPause
    + un-Pause everything. This will send the specified SpritePauseType unpause command + to all sprites. +
    Top
    Events
    +   + NameDescription
    Public eventCode exampleDoTick
    + The function called by the timer every 10 millisecods This is usually where you will do the majority of the work. + You can define this manually, or when you instantiate the SpriteController
    Top
    Fields
    +   + NameDescription
    Public fieldOptimizeForLargeSpriteImages
    + If your sprite images need substantial growing or shrinking when displayed, you can try setting this to "true" + to see if it makes it run any faster. What it does is to resize the image once, and keep a cached copy of that + image at that size. If you use the same sprite, but with different sizes, setting this to "True" may actually slow + down the game instead of speeding it up. +
    Public fieldRandomNumberGenerator
    + Since everything needs a random number generator, we make one that should be accessible throughout your program. +
    Public fieldCode exampleSpriteComparisonDelegate
    + Allow the sprite sort-method to be overridden. +
    Top
    Examples
    + A sprite controller controls animations and + can help you check for key-presses. To make a sprite controller, + you need to have one defined for your main form: +
    C#
    SpriteController MySpriteController;
    + And then, when the form is created, after the InitializeComponents() function, you + need to configure the drawing area and create the sprite controller: +
    C#
    MainDrawingArea.BackgroundImage = Properties.Resources.Background;
    +MainDrawingArea.BackgroundImageLayout = ImageLayout.Stretch;
    +MySpriteController = new SpriteController(MainDrawingArea);
    + In this case, MainDrawingArea is the picturebox where all the sprites will be displayed. +
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/08442d70-3a79-fa24-4f3e-eddc5c102938.htm b/SpriteLibrary/Doc/Help/html/08442d70-3a79-fa24-4f3e-eddc5c102938.htm new file mode 100644 index 0000000..5a8d4ca --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/08442d70-3a79-fa24-4f3e-eddc5c102938.htm @@ -0,0 +1,10 @@ +SpriteController.SoundPlay Method
    SpriteControllerSoundPlay Method
    + Play a sound that we can check to see if it has completed. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SoundPlay(
    +	Stream ToPlay,
    +	string Name
    +)

    Parameters

    ToPlay
    Type: System.IOStream
    The sound to play
    Name
    Type: SystemString
    The name, which we can use to determine if it has finished.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm b/SpriteLibrary/Doc/Help/html/0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm new file mode 100644 index 0000000..1edadc6 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0b27d26e-53e1-c9bd-0b52-8fe4714c831a.htm @@ -0,0 +1,10 @@ +SpriteController.PlaceSpriteBehind Method
    SpriteControllerPlaceSpriteBehind Method
    + Change the display order of the sprites such that the specified sprite appears behind the other sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void PlaceSpriteBehind(
    +	Sprite WhatToSend,
    +	Sprite ToGoBehind
    +)

    Parameters

    WhatToSend
    Type: SpriteLibrarySprite
    The sprite we are changing the display order of
    ToGoBehind
    Type: SpriteLibrarySprite
    The sprite we want to go behind
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm b/SpriteLibrary/Doc/Help/html/0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm new file mode 100644 index 0000000..aae76fa --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0b9ae3b4-06a9-5ee6-9bc0-33377f8be55e.htm @@ -0,0 +1,11 @@ +Sprite.SpriteAdjustedPoint Method
    SpriteSpriteAdjustedPoint Method
    + Because sprites are scaled (shrunk or stretched), this function finds the point + within the sprite that is specified by the location. this function is used by + a number of internal processes, but may be useful to you. But probably not. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point SpriteAdjustedPoint(
    +	Point location
    +)

    Parameters

    location
    Type: System.DrawingPoint
    A point given in Image coordinates

    Return Value

    Type: Point
    A point within the pixel that can be used to find a particular pixel in a sprite.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm b/SpriteLibrary/Doc/Help/html/0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm new file mode 100644 index 0000000..1a2def5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0ce33e3f-7f15-3abb-69b9-6826b7d831d7.htm @@ -0,0 +1,13 @@ +Sprite.ReplaceImage Method
    SpriteReplaceImage Method
    + Replace a sprite image. It will replace the current frame unless you specify both an animation + and the frame within the animation you wish to replace. Warning: This replaces the image_frame + for every sprite that uses that is based off the same image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ReplaceImage(
    +	Image newimage,
    +	int animation = -1,
    +	int frame = -1
    +)

    Parameters

    newimage
    Type: System.DrawingImage
    The new image to use
    animation (Optional)
    Type: SystemInt32
    The animation you want to change
    frame (Optional)
    Type: SystemInt32
    The frame within the animation you want to change
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0e8b825f-f8df-9f14-41ec-f00778409dfb.htm b/SpriteLibrary/Doc/Help/html/0e8b825f-f8df-9f14-41ec-f00778409dfb.htm new file mode 100644 index 0000000..c1caada --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0e8b825f-f8df-9f14-41ec-f00778409dfb.htm @@ -0,0 +1,8 @@ +Sprite.SpriteAnimationComplete Event
    SpriteSpriteAnimationComplete Event
    + Only used when you tell an animation to animate once. At the end of the animation, + this function fires off. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteAnimationComplete

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0f4e570a-2888-8819-176b-9dd070ca7db4.htm b/SpriteLibrary/Doc/Help/html/0f4e570a-2888-8819-176b-9dd070ca7db4.htm new file mode 100644 index 0000000..0a8ec61 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0f4e570a-2888-8819-176b-9dd070ca7db4.htm @@ -0,0 +1,11 @@ +Sprite.SetSpriteDirectionDegrees Method
    SpriteSetSpriteDirectionDegrees Method
    + Given a "degree" (from 0 to 360, set the direction + that the sprite moves automatically. 0 is right, 90 is up, 180 is left + and 270 is down. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetSpriteDirectionDegrees(
    +	double AngleInDegrees
    +)

    Parameters

    AngleInDegrees
    Type: SystemDouble
    the degrees to use
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm b/SpriteLibrary/Doc/Help/html/0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm new file mode 100644 index 0000000..8b6e510 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/0f7e6cfa-e1e4-1b7a-152d-5b3281ac8bfe.htm @@ -0,0 +1,11 @@ +Sprite.Destroying Property
    SpriteDestroying Property
    + If the Sprite is in the middle of being Destroyed, this is set to true. When a Sprite is + Destroyed, it needs to erase itself and do some house-cleaning before it actually vanishes. + During this time, you may not want to use it. It is always a good thing to verify a Sprite + is not in the middle of being destroyed before you do something important with it. To Destroy + a Sprite, use the Sprite.Destroy() function. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool Destroying { get; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/139d1443-5e11-02ed-7534-eb0f857804da.htm b/SpriteLibrary/Doc/Help/html/139d1443-5e11-02ed-7534-eb0f857804da.htm new file mode 100644 index 0000000..110d3af --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/139d1443-5e11-02ed-7534-eb0f857804da.htm @@ -0,0 +1,9 @@ +Sprite.MovingToPoint Property
    SpriteMovingToPoint Property
    + Tells us if we are in the process of doing a MoveTo operation. This boolean should be the + opposite of SpriteReachedEndpoint, but that boolean is poorly named. This is usually the easier + one to use. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool MovingToPoint { get; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/154fc8b0-0d6c-003e-be50-c94da6bc4597.htm b/SpriteLibrary/Doc/Help/html/154fc8b0-0d6c-003e-be50-c94da6bc4597.htm new file mode 100644 index 0000000..aa7cfbb --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/154fc8b0-0d6c-003e-be50-c94da6bc4597.htm @@ -0,0 +1,49 @@ +Sprite.AddAnimation Method
    SpriteAddAnimation Method
    Overload List
    +   + NameDescription
    Public methodAddAnimation(Image)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Size)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Int32)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand. +
    Public methodAddAnimation(Image, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Boolean, Boolean)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand using the MirrorHorizontally or MirrorVertically booleans. +
    Public methodAddAnimation(Image, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Point, Image, Int32, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/16df05cc-8770-7cbe-f754-ba9e386674ad.htm b/SpriteLibrary/Doc/Help/html/16df05cc-8770-7cbe-f754-ba9e386674ad.htm new file mode 100644 index 0000000..cd7b53a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/16df05cc-8770-7cbe-f754-ba9e386674ad.htm @@ -0,0 +1,13 @@ +Sprite.MoveTo Method (List(Point))
    SpriteMoveTo Method (ListPoint)
    + Tell the sprite to move towards each point in turn. The sprite will move in a straight line until the first point. + From there it moves to the next point, until it has reached the last point. Every time it reaches a point, the + SpriteArrivedAtWaypoint event is triggered. When it reaches the final point in the list, the SpriteArrivedAtEndPoint + event is triggered. While the sprite is moving, the SpriteReachedEndPoint attribute is set to false. When it has + arrived, it is set to true. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void MoveTo(
    +	List<Point> DestinationList
    +)

    Parameters

    DestinationList
    Type: System.Collections.GenericListPoint
    A list of Image-Points that the sprite will follow, one after the other
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/17255a69-f623-3a42-a7ce-db1eb348581a.htm b/SpriteLibrary/Doc/Help/html/17255a69-f623-3a42-a7ce-db1eb348581a.htm new file mode 100644 index 0000000..badf0cb --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/17255a69-f623-3a42-a7ce-db1eb348581a.htm @@ -0,0 +1,8 @@ +Sprite.MouseEnter Event
    SpriteMouseEnter Event
    + When the mouse moves over the sprite. Use this for a menu, when you want the menu item to glow when the + mouse is over the menu item sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseEnter

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm b/SpriteLibrary/Doc/Help/html/1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm new file mode 100644 index 0000000..6790456 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/1730e5a3-3e48-72f7-f641-b7a70e5c2563.htm @@ -0,0 +1,14 @@ +Sprite.AddAnimation Method (Int32, Boolean, Boolean)
    SpriteAddAnimation Method (Int32, Boolean, Boolean)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand using the MirrorHorizontally or MirrorVertically booleans. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	int AnimationToCopy,
    +	bool MirrorHorizontal,
    +	bool MirrorVertical
    +)

    Parameters

    AnimationToCopy
    Type: SystemInt32
    An integer value specifying the animation to duplicate
    MirrorHorizontal
    Type: SystemBoolean
    A boolean, stating if we should mirror horizontally
    MirrorVertical
    Type: SystemBoolean
    A boolean, stating if we should mirror vertically
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/17ee5c77-8351-af30-dc43-9458d683a69e.htm b/SpriteLibrary/Doc/Help/html/17ee5c77-8351-af30-dc43-9458d683a69e.htm new file mode 100644 index 0000000..ede3fb9 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/17ee5c77-8351-af30-dc43-9458d683a69e.htm @@ -0,0 +1,8 @@ +Sprite.SpriteArrivedAtWaypoint Event
    SpriteSpriteArrivedAtWaypoint Event
    + When you tell a sprite to MoveTo(list of points), this fires off every time it gets to + one of the points. When it gets to the final point, only the SpriteAtEndPoint event fires off. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteArrivedAtWaypoint

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/18405dcf-237d-db66-cf64-0e08b0d16b41.htm b/SpriteLibrary/Doc/Help/html/18405dcf-237d-db66-cf64-0e08b0d16b41.htm new file mode 100644 index 0000000..0c2445d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/18405dcf-237d-db66-cf64-0e08b0d16b41.htm @@ -0,0 +1,7 @@ +SpriteEventArgs.CollisionMethod Field
    SpriteEventArgsCollisionMethod Field
    + The CollisionMethod used in the event. Currently, only rectangle collisions are used +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteCollisionMethod CollisionMethod

    Field Value

    Type: SpriteCollisionMethod
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/184a1964-91ec-6f0d-b7cf-95b722599d69.htm b/SpriteLibrary/Doc/Help/html/184a1964-91ec-6f0d-b7cf-95b722599d69.htm new file mode 100644 index 0000000..2c5a71e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/184a1964-91ec-6f0d-b7cf-95b722599d69.htm @@ -0,0 +1,13 @@ +Sprite Constructor (SpriteController, Image, Int32, Int32)
    Sprite Constructor (SpriteController, Image, Int32, Int32)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	SpriteController Controller,
    +	Image SpriteImage,
    +	int width,
    +	int height
    +)

    Parameters

    Controller
    Type: SpriteLibrarySpriteController
    The sprite controller that manages this sprite
    SpriteImage
    Type: System.DrawingImage
    The image we pull the animation from
    width
    Type: SystemInt32
    The width of one animation frame
    height
    Type: SystemInt32
    The height of one animation frame
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/1bab1e49-641a-5648-d034-4298d8158019.htm b/SpriteLibrary/Doc/Help/html/1bab1e49-641a-5648-d034-4298d8158019.htm new file mode 100644 index 0000000..a5c4720 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/1bab1e49-641a-5648-d034-4298d8158019.htm @@ -0,0 +1,12 @@ +Sprite.SpriteEventHandler Delegate
    SpriteSpriteEventHandler Delegate
    + A delegate that has a SpriteEventArgs instead of EventArgs. Used for most + of the Sprite events. This allows us to pass more information from sprite events than + a basic EventArgs allows for +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public delegate void SpriteEventHandler(
    +	Object sender,
    +	SpriteEventArgs e
    +)

    Parameters

    sender
    Type: SystemObject
    The Sprite that triggers the event
    e
    Type: SpriteLibrarySpriteEventArgs
    A SpriteEventArgs class which contains Sprite Event values
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/1f2c365c-e65b-3894-2e47-41f07250bbc0.htm b/SpriteLibrary/Doc/Help/html/1f2c365c-e65b-3894-2e47-41f07250bbc0.htm new file mode 100644 index 0000000..b810836 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/1f2c365c-e65b-3894-2e47-41f07250bbc0.htm @@ -0,0 +1,18 @@ +Sprite.MoveTo Method
    SpriteMoveTo Method
    Overload List
    +   + NameDescription
    Public methodMoveTo(ListPoint)
    + Tell the sprite to move towards each point in turn. The sprite will move in a straight line until the first point. + From there it moves to the next point, until it has reached the last point. Every time it reaches a point, the + SpriteArrivedAtWaypoint event is triggered. When it reaches the final point in the list, the SpriteArrivedAtEndPoint + event is triggered. While the sprite is moving, the SpriteReachedEndPoint attribute is set to false. When it has + arrived, it is set to true. +
    Public methodMoveTo(Point)
    + Tell the Sprite to move towards a destination. You need to give the sprite a MovementSpeed + and tell the sprite that it can automatically move. But the sprite will begin a journey towards + that point at the MovementSpeed you have set. When it gets to the point, the SpriteArrivedAtEndPoint event + will fire off. Also, the SpriteReachedEnd bool will be true. +
    Public methodMoveTo(Sprite)
    + Move to where the destination sprite currently is at. This is a dumb move. It does not take into + consideration the movement direction of the destination sprite. So the moving sprite does need to be + moving a bit faster than the sprite you are trying to hit for it to do so. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/20db7ecc-35df-8911-2615-1f2b8777f03b.htm b/SpriteLibrary/Doc/Help/html/20db7ecc-35df-8911-2615-1f2b8777f03b.htm new file mode 100644 index 0000000..ba7e690 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/20db7ecc-35df-8911-2615-1f2b8777f03b.htm @@ -0,0 +1,11 @@ +Sprite.Rotation Property
    SpriteRotation Property
    + Change the rotation of the sprite, using degrees. 0 degrees is to the right. 90 is up. + 180 left, 270 down. But, if your sprite was drawn facing up, then rotating it 90 degrees + will have it pointing left. The angle goes counter-clockwise. The image will be scaled + such that it continues to fit within the rectangle that it was originally in. This results + in a little bit of shrinking at times, but you should rarely notice that. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int Rotation { get; set; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm b/SpriteLibrary/Doc/Help/html/23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm new file mode 100644 index 0000000..e59286b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/23ac9f1e-8033-78a2-030b-b12d6496c3dd.htm @@ -0,0 +1,7 @@ +Sprite.AnimationCount Property \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm b/SpriteLibrary/Doc/Help/html/25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm new file mode 100644 index 0000000..c1f16e1 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/25183ea9-6a42-63b0-8051-fd4b9c8dbfe7.htm @@ -0,0 +1,10 @@ +Sprite.ChangeAnimation Method
    SpriteChangeAnimation Method
    + Start a new animation index from scratch +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ChangeAnimation(
    +	int WhichAnimation,
    +	int StartFrame = 0
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The animation index you want to use
    StartFrame (Optional)
    Type: SystemInt32
    The first frame you want to start the animation at.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/2695c170-24ea-95d2-7f85-34c3930416b5.htm b/SpriteLibrary/Doc/Help/html/2695c170-24ea-95d2-7f85-34c3930416b5.htm new file mode 100644 index 0000000..91f10a3 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/2695c170-24ea-95d2-7f85-34c3930416b5.htm @@ -0,0 +1,9 @@ +Sprite.ConvertRadiansToDegrees Method
    SpriteConvertRadiansToDegrees Method
    + Convert a number from radians to degrees. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double ConvertRadiansToDegrees(
    +	double Radians
    +)

    Parameters

    Radians
    Type: SystemDouble
    The number of radians

    Return Value

    Type: Double
    The corresponding number in degrees
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/27051af5-8ad4-0b54-231d-456499ae5b51.htm b/SpriteLibrary/Doc/Help/html/27051af5-8ad4-0b54-231d-456499ae5b51.htm new file mode 100644 index 0000000..c99e684 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/27051af5-8ad4-0b54-231d-456499ae5b51.htm @@ -0,0 +1,11 @@ +Sprite.MoveTo Method (Sprite)
    SpriteMoveTo Method (Sprite)
    + Move to where the destination sprite currently is at. This is a dumb move. It does not take into + consideration the movement direction of the destination sprite. So the moving sprite does need to be + moving a bit faster than the sprite you are trying to hit for it to do so. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void MoveTo(
    +	Sprite Destination
    +)

    Parameters

    Destination
    Type: SpriteLibrarySprite
    The sprite we are trying to hit
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/2788d4d5-88bf-1154-dd17-8d4b99a79118.htm b/SpriteLibrary/Doc/Help/html/2788d4d5-88bf-1154-dd17-8d4b99a79118.htm new file mode 100644 index 0000000..1050f6d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/2788d4d5-88bf-1154-dd17-8d4b99a79118.htm @@ -0,0 +1,154 @@ +SpriteController Methods
    SpriteController Methods

    The SpriteController type exposes the following members.

    Methods
    +   + NameDescription
    Public methodAddSprite
    + Add the specified sprite to the list of sprites we know about. You usually do not need to do this. + Sprites add themselves to the controller when you create a new sprite. +
    Public methodAdjustPoint
    + Adjust an image point so that it conforms to the picturebox. +
    Public methodAdjustRectangle
    + Adjust a rectangle that is based on the image, according to the stretch of the picturebox +
    Public methodAllSprites
    + Return a list of all sprites +
    Public methodChangeTickInterval
    + Change the Tick Interval. By default, the spritecontroller does a tick every 10ms, which + is very fast. Some people may prefer it to happen less regularly. Must be > 5, and less than 1001 +
    Public methodCountSpritesBasedOff
    + Count the number of sprites that were duplicated from the sprite with the specified name. When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function will count those duplicated sprites. +
    Public methodDestroyAllSprites
    + Remove all sprites (even named sprites that have not yet been displayed) +
    Public methodDestroySprite
    + Tell a sprite to destroy itself. The sprite will have Destroying property set to true from + the time you destroy it until it vanishes. Whe you destroy a sprite, it will erase itself + and remove itself from the controller. After it is destroyed, it is completely gone. +
    Public methodCode exampleDuplicateSprite(String)
    + Find a sprite that has been named with the specified name. Then duplicate that sprite +
    Public methodDuplicateSprite(Sprite)
    + Make a duplicate of the specified sprite. The duplicate does not yet have a location. +
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodInvalidate(Boolean)
    + Invalidate the entire image on which the sprites are drawn +
    Public methodInvalidate(Rectangle, Boolean)
    + Invalidate a rectangle that is specified in image coordinates +
    Public methodIsKeyPressed
    + Check to see if any keys are pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Public methodIsKeyPressed(Keys)
    + Check to see if the given key is pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Public methodKeysPressed
    + Return a list of all the keys that are currently pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodNameSprite
    + Find the specified Sprite in the controller and change its name to the specified string. + You can do the same thing with Sprite.SetName(Name)
    Public methodPause
    + Pause everything. It loops through all the sprites in the SpriteController and sends the specified + SpritePauseType to each one. Look at the documentation for SpritePauseType to determine which pause + type to use. +
    Public methodPlaceSpriteBehind
    + Change the display order of the sprites such that the specified sprite appears behind the other sprite. +
    Public methodPlaceSpriteInFrontOf
    + Make the sprite go in front of the specified sprite. +
    Public methodRegisterKeyDownFunction
    + If you want to have a KeyDown function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +
    Public methodRegisterKeyUpFunction
    + If you want to have a KeyUp function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +
    Public methodReplaceOriginalImage
    + Notify the sprite controller that you have changed the background image on the + PictureBox. Whatever background is on the picturebox is now used to draw all the sprites on. +
    Public methodCode exampleReplaceOriginalImage(Image)
    + Replace the image on which the sprites are drawn. Use this when you move to a new playing field, + or want to have a different background +
    Examples
    + Replacing the background image is actually a lot more complex than you might imagine. Once you use the + below code, it can be done without any problem. But you need to do it this way, or it just goofs up in + a number of small ways. + You need to tell the sprite controller that you are replacing the background image, + and you need to change the image to that image as well.Because the Images are actually + pointers to memory where the image sets, changes to one image will affect the other image.This goofs + things up, so what we do is duplicate the image twice, and tell the sprite controller to use one of the + copies and then set the background to be the other one of the two copies.Finally, we tell the picturebox + to invalidate itself.That does everything that is needed. +
    C#
     void ReplaceBackground(Image NewBackground)
    +{
    +    if (MyController == null) return;
    +    if (NewBackground == null) return;
    +
    +    Image OneImage = new Bitmap(NewBackground);
    +    MyController.ReplaceOriginalImage(OneImage);
    +
    +    Image TwoImage = new Bitmap(NewBackground);
    +    pb_map.BackgroundImage = TwoImage;
    +    pb_map.Invalidate();
    +}
    Public methodResetKeypressState
    + Reset the keypress status. Sometimes the sprite controller misses a key being released (usually + because a window has taken priority, or something has changed). Calling this function will reset + the stored memory of whether a key has been pressed. +
    Public methodReturnAdjustmentRatio
    + Return an adjustment ratio. This is the image-size to picture-box ratio. + It is used for calculating precise pixels or picture-box locations. +
    Public methodReturnPictureBoxAdjustedHeight
    + Return the height of an object in picture-box terms. It is basically the virtual height + of the sprite or other item. +
    Public methodReturnPictureBoxAdjustedPoint
    + This does the reverse of an adjusted point. It takes a point on the image and + transforms it to one on the PictureBox +
    Public methodReturnPictureBoxAdjustedWidth
    + Return the width of an object in picture-box terms. It takes the width of a sprite or other + item that is being displayed on the screen, and calculates the width as displayed in the + picture-box (taking into consideration stretching or shrinking) +
    Public methodReturnPointAdjustedForImage
    + This takes a point, the location on a picturebox, and returns the corresponding point on the BackgroundImage. + Picturebox locations are "sloppy"; the background image locations are very precise. Since this takes a "sloppy" + number and returns a precise number, it does some rounding to figure out where the specified location is. +
    Public methodSoundIsFinished
    + Check to see if the specified sound has finished playing +
    Public methodSoundPlay
    + Play a sound that we can check to see if it has completed. +
    Public methodSpriteBackwards
    + Change the display order of the specified sprite so it is more likely to go behind all other sprites. +
    Public methodSpriteForwards
    + Change the display order of the specified sprite so it is more likely to go in front of other sprites +
    Public methodSpriteFromName
    + Find a sprite that has a specified name. This returns the actual sprite with that name. + You usually want to use DuplicateSprite(Name) to clone the sprite and get one you can + destroy. If you destroy a named sprite without duplicating it, you may end up losing + it for the remainder of the program. +
    Public methodSpritesAtImagePoint
    + This takes a point, as as specified on the image, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the background image coordinates. Use SpritesAdPoint() if you are doing something based off + a MouseUp or MouseDown function. This is used for functions based on sprite location or based off the absoloute + location (using the background image location is much more precise than the visible location in the picturebox) +
    Public methodSpritesAtPoint
    + This takes a point, as given by the mouse-click args, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the picturebox coordinates. So you can use this directly from a MouseDown or MouseUp function. +
    Public methodSpritesBasedOff
    + Return all sprites that were based off a particular sprite name. + When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function returns a list of those + duplicated sprites. +
    Public methodSpritesBasedOffAnything
    + Return a list of all sprites which are not master sprites (which are duplicates of something) +
    Public methodSpritesInImageRectangle
    + Return a list of all the sprites that intersect with the given background-image-based rectangle +
    Public methodSpritesThatHaveBeenDrawn
    + Return a list of all sprites which have been drawn on the image +
    Public methodSpriteToBack
    + Change the display order of the specified sprite so it goes behind all other sprites. +
    Public methodSpriteToFront
    + Change the display order of the specified sprite so it goes in front of all other sprites. +
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Public methodUnPause
    + un-Pause everything. This will send the specified SpritePauseType unpause command + to all sprites. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/29f62d1a-212b-273e-582e-670c1ea2856c.htm b/SpriteLibrary/Doc/Help/html/29f62d1a-212b-273e-582e-670c1ea2856c.htm new file mode 100644 index 0000000..1a228a5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/29f62d1a-212b-273e-582e-670c1ea2856c.htm @@ -0,0 +1,7 @@ +Sprite.BaseImageLocation Property
    SpriteBaseImageLocation Property
    + The sprite location as found on the base image. This is usually the easiest location to use. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point BaseImageLocation { get; }

    Property Value

    Type: Point
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm b/SpriteLibrary/Doc/Help/html/2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm new file mode 100644 index 0000000..e18ba14 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/2b1a75c9-0eb6-fb22-eeea-595ec3cc1bf8.htm @@ -0,0 +1,8 @@ +Sprite.SpriteInitializes Event
    SpriteSpriteInitializes Event
    + This event happens right after the sprite is created. Use this to immediately set a + sprite to animate once or something like that. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteInitializes

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm b/SpriteLibrary/Doc/Help/html/2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm new file mode 100644 index 0000000..18de29c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/2c4eb5db-5c4c-6fcd-716c-532c0e2c4f35.htm @@ -0,0 +1,7 @@ +SpriteController.SpritesThatHaveBeenDrawn Method
    SpriteControllerSpritesThatHaveBeenDrawn Method
    + Return a list of all sprites which have been drawn on the image +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesThatHaveBeenDrawn()

    Return Value

    Type: ListSprite
    A list of sprites that have been drawn
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/2c9b874d-5097-98bf-908c-f6bac5d647d3.htm b/SpriteLibrary/Doc/Help/html/2c9b874d-5097-98bf-908c-f6bac5d647d3.htm new file mode 100644 index 0000000..a48fc92 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/2c9b874d-5097-98bf-908c-f6bac5d647d3.htm @@ -0,0 +1,30 @@ +SpriteController.ReplaceOriginalImage Method
    SpriteControllerReplaceOriginalImage Method
    Overload List
    +   + NameDescription
    Public methodReplaceOriginalImage
    + Notify the sprite controller that you have changed the background image on the + PictureBox. Whatever background is on the picturebox is now used to draw all the sprites on. +
    Public methodCode exampleReplaceOriginalImage(Image)
    + Replace the image on which the sprites are drawn. Use this when you move to a new playing field, + or want to have a different background +
    Examples
    + Replacing the background image is actually a lot more complex than you might imagine. Once you use the + below code, it can be done without any problem. But you need to do it this way, or it just goofs up in + a number of small ways. + You need to tell the sprite controller that you are replacing the background image, + and you need to change the image to that image as well.Because the Images are actually + pointers to memory where the image sets, changes to one image will affect the other image.This goofs + things up, so what we do is duplicate the image twice, and tell the sprite controller to use one of the + copies and then set the background to be the other one of the two copies.Finally, we tell the picturebox + to invalidate itself.That does everything that is needed. +
    C#
     void ReplaceBackground(Image NewBackground)
    +{
    +    if (MyController == null) return;
    +    if (NewBackground == null) return;
    +
    +    Image OneImage = new Bitmap(NewBackground);
    +    MyController.ReplaceOriginalImage(OneImage);
    +
    +    Image TwoImage = new Bitmap(NewBackground);
    +    pb_map.BackgroundImage = TwoImage;
    +    pb_map.Invalidate();
    +}
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/323c4f03-703d-0898-c73e-40eb5784c05f.htm b/SpriteLibrary/Doc/Help/html/323c4f03-703d-0898-c73e-40eb5784c05f.htm new file mode 100644 index 0000000..85576f2 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/323c4f03-703d-0898-c73e-40eb5784c05f.htm @@ -0,0 +1,10 @@ +SpriteController Constructor
    SpriteController Constructor
    Overload List
    +   + NameDescription
    Public methodCode exampleSpriteController(PictureBox)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. You want to have the PictureBox already defined, and a background image + already set for the PictureBox. +
    Public methodCode exampleSpriteController(PictureBox, EventHandler)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm b/SpriteLibrary/Doc/Help/html/34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm new file mode 100644 index 0000000..1182115 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/34a7b0e2-8fce-a07e-fff0-5460ba02a4cf.htm @@ -0,0 +1,10 @@ +SpriteController.OptimizeForLargeSpriteImages Field
    SpriteControllerOptimizeForLargeSpriteImages Field
    + If your sprite images need substantial growing or shrinking when displayed, you can try setting this to "true" + to see if it makes it run any faster. What it does is to resize the image once, and keep a cached copy of that + image at that size. If you use the same sprite, but with different sizes, setting this to "True" may actually slow + down the game instead of speeding it up. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool OptimizeForLargeSpriteImages

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/36d40ecf-484f-3b53-43e4-87ed9108cb76.htm b/SpriteLibrary/Doc/Help/html/36d40ecf-484f-3b53-43e4-87ed9108cb76.htm new file mode 100644 index 0000000..2cc7416 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/36d40ecf-484f-3b53-43e4-87ed9108cb76.htm @@ -0,0 +1,9 @@ +Sprite.SetName Method
    SpriteSetName Method
    + Give this sprite a name. This way we can make a duplicate of it by specifying the name +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetName(
    +	string Name
    +)

    Parameters

    Name
    Type: SystemString
    A string that represents the new name of the sprite
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm b/SpriteLibrary/Doc/Help/html/37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm new file mode 100644 index 0000000..b7a5b33 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/37ae1b7e-72db-69cb-f1c6-26242c07e2b5.htm @@ -0,0 +1,8 @@ +Sprite.SpriteExitsPictureBox Event
    SpriteSpriteExitsPictureBox Event
    + This happens when the sprite has exited the picture box. Useful when you want to + keep sprites from traveling on forever after exiting. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteExitsPictureBox

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm b/SpriteLibrary/Doc/Help/html/38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm new file mode 100644 index 0000000..5643f32 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/38678a79-da77-9ef7-e3e1-78ff96f5bd7b.htm @@ -0,0 +1,10 @@ +SpriteKeyEventHandler Delegate
    SpriteKeyEventHandler Delegate
    + This is a delegate for a keypress event. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public delegate void SpriteKeyEventHandler(
    +	Object sender,
    +	KeyEventArgs e
    +)

    Parameters

    sender
    Type: SystemObject
    e
    Type: System.Windows.FormsKeyEventArgs
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/3a7614d3-cfe9-ce52-55be-ca5324839e92.htm b/SpriteLibrary/Doc/Help/html/3a7614d3-cfe9-ce52-55be-ca5324839e92.htm new file mode 100644 index 0000000..b1d6039 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/3a7614d3-cfe9-ce52-55be-ca5324839e92.htm @@ -0,0 +1,11 @@ +Sprite.payload Field
    Spritepayload Field
    + A Sprite can hold a payload. Use this to store extra information about the various Sprites. Health, Armor, + Shoot time, etc. But, to store information in the payload, you need to make a new class of SpritePayload. The syntax + for doing so is: +
    public class TankPayload : SpritePayload {  public int Armor; public int Speed; }
    + You can access the payload and retrieve the various values. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpritePayload payload

    Field Value

    Type: SpritePayload
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/3aabe50b-5222-99aa-4654-356baa30033a.htm b/SpriteLibrary/Doc/Help/html/3aabe50b-5222-99aa-4654-356baa30033a.htm new file mode 100644 index 0000000..6b68ebb --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/3aabe50b-5222-99aa-4654-356baa30033a.htm @@ -0,0 +1,8 @@ +Sprite.SpriteHitsPictureBox Event
    SpriteSpriteHitsPictureBox Event
    + This happens when the sprite hits the border of the picture-box. + Useful for when you want to have shots explode when they hit the side. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteHitsPictureBox

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm b/SpriteLibrary/Doc/Help/html/3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm new file mode 100644 index 0000000..9d21e5b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/3bbc779a-f8e9-8c18-c3c3-89018dd77daf.htm @@ -0,0 +1,16 @@ +Sprite.AnimateJustAFewTimes Method
    SpriteAnimateJustAFewTimes Method
    + Start a new animation. It will complete the animation the number of times you specify. + For example, if your sprite is walking, and one animation is one step, specifying 4 here + will result in your sprite taking 4 steps and then the animation stops. You will want + to make sure you are checking for when the animation stops, using the SpriteAnimationComplete event, + checking the Sprite.AnimationDone flag. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AnimateJustAFewTimes(
    +	int WhichAnimation,
    +	int HowManyAnimations,
    +	int AnimationFrameToEndOn = -1
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The animation index you want to use
    HowManyAnimations
    Type: SystemInt32
    The number of animations to do before it stops
    AnimationFrameToEndOn (Optional)
    Type: SystemInt32
    Once the animation has finished, display this animation frame. + -1, or any number that is not an actual frame, will show the last frame of the animation.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm b/SpriteLibrary/Doc/Help/html/3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm new file mode 100644 index 0000000..828ac8c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/3c18bbb7-e10c-1b96-754d-7dfc878e7cf4.htm @@ -0,0 +1,11 @@ +SpriteController.SpritesAtPoint Method
    SpriteControllerSpritesAtPoint Method
    + This takes a point, as given by the mouse-click args, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the picturebox coordinates. So you can use this directly from a MouseDown or MouseUp function. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesAtPoint(
    +	Point Location
    +)

    Parameters

    Location
    Type: System.DrawingPoint
    The picture-box point being clicked on

    Return Value

    Type: ListSprite
    A list of sprites that are all at the specified point.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4067393e-d724-b01d-dc77-947440c6c444.htm b/SpriteLibrary/Doc/Help/html/4067393e-d724-b01d-dc77-947440c6c444.htm new file mode 100644 index 0000000..c5cc909 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4067393e-d724-b01d-dc77-947440c6c444.htm @@ -0,0 +1,11 @@ +Sprite.GetImage Method (Int32, Int32)
    SpriteGetImage Method (Int32, Int32)
    + return the frame for the given index. Warning: If you write to this image, it will + affect all sprites using this frame. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Image GetImage(
    +	int Animation_Index,
    +	int Frame_Index
    +)

    Parameters

    Animation_Index
    Type: SystemInt32
    The Animation index we are trying to find
    Frame_Index
    Type: SystemInt32
    The Frame index we are trying to find

    Return Value

    Type: Image
    An image that is the current sprite frame for the current animation
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm b/SpriteLibrary/Doc/Help/html/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm new file mode 100644 index 0000000..0f3245d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4141394a-0d7d-5cf8-6b01-0a4fb43159ab.htm @@ -0,0 +1,5 @@ +SpriteController Events
    SpriteController Events

    The SpriteController type exposes the following members.

    Events
    +   + NameDescription
    Public eventCode exampleDoTick
    + The function called by the timer every 10 millisecods This is usually where you will do the majority of the work. + You can define this manually, or when you instantiate the SpriteController
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/41ac663a-2019-6a14-5ffd-16dfc7472578.htm b/SpriteLibrary/Doc/Help/html/41ac663a-2019-6a14-5ffd-16dfc7472578.htm new file mode 100644 index 0000000..16a5807 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/41ac663a-2019-6a14-5ffd-16dfc7472578.htm @@ -0,0 +1,8 @@ +SpriteController.ReturnAdjustmentRatio Method
    SpriteControllerReturnAdjustmentRatio Method
    + Return an adjustment ratio. This is the image-size to picture-box ratio. + It is used for calculating precise pixels or picture-box locations. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteAdjustmentRatio ReturnAdjustmentRatio()

    Return Value

    Type: SpriteAdjustmentRatio
    A SpriteAdjustmentRatio containing the current ratio of picture-box pixels to image-box pixels
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/447d1a9a-0e17-9827-2a01-438434c1b879.htm b/SpriteLibrary/Doc/Help/html/447d1a9a-0e17-9827-2a01-438434c1b879.htm new file mode 100644 index 0000000..75d2068 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/447d1a9a-0e17-9827-2a01-438434c1b879.htm @@ -0,0 +1,10 @@ +SpriteController.ReturnPictureBoxAdjustedHeight Method
    SpriteControllerReturnPictureBoxAdjustedHeight Method
    + Return the height of an object in picture-box terms. It is basically the virtual height + of the sprite or other item. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int ReturnPictureBoxAdjustedHeight(
    +	int Height
    +)

    Parameters

    Height
    Type: SystemInt32
    The image-box heigh (or sprite height)

    Return Value

    Type: Int32
    An integer that corresponds to the hight as displayed in the picturebox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/451487c4-0cca-2c80-9b71-b116cbe00d6e.htm b/SpriteLibrary/Doc/Help/html/451487c4-0cca-2c80-9b71-b116cbe00d6e.htm new file mode 100644 index 0000000..7d5ba66 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/451487c4-0cca-2c80-9b71-b116cbe00d6e.htm @@ -0,0 +1,9 @@ +SpriteController.Invalidate Method (Boolean)
    SpriteControllerInvalidate Method (Boolean)
    + Invalidate the entire image on which the sprites are drawn +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void Invalidate(
    +	bool QueueUpInvalidation = true
    +)

    Parameters

    QueueUpInvalidation (Optional)
    Type: SystemBoolean
    Whether to do it now, or to queue it up for another time.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4716eb02-e702-b61a-126a-362af50ca6d5.htm b/SpriteLibrary/Doc/Help/html/4716eb02-e702-b61a-126a-362af50ca6d5.htm new file mode 100644 index 0000000..b97cd0d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4716eb02-e702-b61a-126a-362af50ca6d5.htm @@ -0,0 +1,3 @@ +SpriteEventArgs Methods
    SpriteEventArgs Methods

    The SpriteEventArgs type exposes the following members.

    Methods
    +   + NameDescription
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/48ff9be7-1395-25af-3585-3d32eba07309.htm b/SpriteLibrary/Doc/Help/html/48ff9be7-1395-25af-3585-3d32eba07309.htm new file mode 100644 index 0000000..c3cff7c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/48ff9be7-1395-25af-3585-3d32eba07309.htm @@ -0,0 +1,9 @@ +SpriteController.ResetKeypressState Method
    SpriteControllerResetKeypressState Method
    + Reset the keypress status. Sometimes the sprite controller misses a key being released (usually + because a window has taken priority, or something has changed). Calling this function will reset + the stored memory of whether a key has been pressed. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ResetKeypressState()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/49befa66-d9d0-400c-1fc2-ac57f17433f1.htm b/SpriteLibrary/Doc/Help/html/49befa66-d9d0-400c-1fc2-ac57f17433f1.htm new file mode 100644 index 0000000..4a9fa10 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/49befa66-d9d0-400c-1fc2-ac57f17433f1.htm @@ -0,0 +1,8 @@ +SpriteController.ReplaceOriginalImage Method
    SpriteControllerReplaceOriginalImage Method
    + Notify the sprite controller that you have changed the background image on the + PictureBox. Whatever background is on the picturebox is now used to draw all the sprites on. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ReplaceOriginalImage()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4a6fe677-5369-6c0a-1e61-81355aa238b1.htm b/SpriteLibrary/Doc/Help/html/4a6fe677-5369-6c0a-1e61-81355aa238b1.htm new file mode 100644 index 0000000..d408ef5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4a6fe677-5369-6c0a-1e61-81355aa238b1.htm @@ -0,0 +1,14 @@ +Sprite.AddAnimation Method (Image, Size)
    SpriteAddAnimation Method (Image, Size)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Image SpriteImage,
    +	Size SpriteSize
    +)

    Parameters

    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    SpriteSize
    Type: System.DrawingSize
    The size of each frame
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm b/SpriteLibrary/Doc/Help/html/4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm new file mode 100644 index 0000000..a75e2ae --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4e310248-8e1a-76aa-edbc-a83f4ba9b425.htm @@ -0,0 +1,26 @@ +SpritePayload Class
    SpritePayload Class
    + The SpritePayload is a stub of a class, for storing user-defined data and functions along with a sprite. +
    Inheritance Hierarchy
    SystemObject
      SpriteLibrarySpritePayload

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public class SpritePayload

    The SpritePayload type exposes the following members.

    Constructors
    +   + NameDescription
    Public methodSpritePayload
    Initializes a new instance of the SpritePayload class
    Top
    Methods
    +   + NameDescription
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Top
    Examples
    + Basically, you want to "override" this class. You do this by making your + own class that looks something like: +
    C#
    public class TankPayload : SpritePayload 
    +{ 
    +    public int Armor = 20; 
    +    public int FireTime = 100; 
    +}
    + And then you add that to your sprite: +
    C#
    TankSprite.Payload = new TankPayload();
    + If there is no payload, then the payload + property is null. If you have multiple types of SpritePayloads, you may need to do something like: +
    C#
    if(TankSprite.payload != null and TankSprite.payload is TankPayload) 
    +{ 
    +    TankPayload tPayload = (TankPayload)TankSprite.payload; tPayload.Armor--; 
    +}
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm b/SpriteLibrary/Doc/Help/html/4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm new file mode 100644 index 0000000..4bbc34c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/4f100dc3-39b4-fea4-6d73-8ef39eea489c.htm @@ -0,0 +1,9 @@ +SpriteController.AdjustRectangle Method
    SpriteControllerAdjustRectangle Method
    + Adjust a rectangle that is based on the image, according to the stretch of the picturebox +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Rectangle AdjustRectangle(
    +	Rectangle ImageRectangle
    +)

    Parameters

    ImageRectangle
    Type: System.DrawingRectangle
    A rectangle using coordinates from the image

    Return Value

    Type: Rectangle
    a rectangle that is adjusted for the PictureBox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/509560bd-f402-7e7f-a461-46845061a5fc.htm b/SpriteLibrary/Doc/Help/html/509560bd-f402-7e7f-a461-46845061a5fc.htm new file mode 100644 index 0000000..1381110 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/509560bd-f402-7e7f-a461-46845061a5fc.htm @@ -0,0 +1,11 @@ +Sprite.SpriteAtImagePoint Method
    SpriteSpriteAtImagePoint Method
    + Check to see if the sprite exists at the point specified. The point given is + in coordinates used by the image (not the PictureBox, use SpriteAtPictureBox for that) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteAtImagePoint(
    +	Point location,
    +	SpriteCollisionMethod method = SpriteCollisionMethod.rectangle
    +)

    Parameters

    location
    Type: System.DrawingPoint
    An imagebox location
    method (Optional)
    Type: SpriteLibrarySpriteCollisionMethod
    the method to use to determine if the image is there

    Return Value

    Type: Boolean
    true if the sprite is at that position, false if it is not
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm b/SpriteLibrary/Doc/Help/html/50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm new file mode 100644 index 0000000..9b699c0 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/50eae5e0-c59c-9d9c-d551-21dba8696ac9.htm @@ -0,0 +1,13 @@ +SpriteController.IsKeyPressed Method
    SpriteControllerIsKeyPressed Method
    Overload List
    +   + NameDescription
    Public methodIsKeyPressed
    + Check to see if any keys are pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Public methodIsKeyPressed(Keys)
    + Check to see if the given key is pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/51c9d545-e5c3-888d-d033-17085734aa1d.htm b/SpriteLibrary/Doc/Help/html/51c9d545-e5c3-888d-d033-17085734aa1d.htm new file mode 100644 index 0000000..f5bfdcc --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/51c9d545-e5c3-888d-d033-17085734aa1d.htm @@ -0,0 +1,9 @@ +Sprite.ClickTransparent Event
    SpriteClickTransparent Event
    + This event happens when someone clicks on the sprite (on the sprite image itself). + If the sprite is sometimes hidden, but you want the click to work even if it is not + visible at that instant, use Click instead. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler ClickTransparent

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5284b83c-61a7-aefe-4087-f7137551b783.htm b/SpriteLibrary/Doc/Help/html/5284b83c-61a7-aefe-4087-f7137551b783.htm new file mode 100644 index 0000000..9cdde69 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5284b83c-61a7-aefe-4087-f7137551b783.htm @@ -0,0 +1,14 @@ +Sprite.AddAnimation Method (Image, Int32)
    SpriteAddAnimation Method (Image, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Image SpriteImage,
    +	int duration
    +)

    Parameters

    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    duration
    Type: SystemInt32
    The duration the single frame uses before refreshing. 1000 is a good number.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/56b507fc-3071-20e9-63a7-b33484f3e687.htm b/SpriteLibrary/Doc/Help/html/56b507fc-3071-20e9-63a7-b33484f3e687.htm new file mode 100644 index 0000000..1879a3c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/56b507fc-3071-20e9-63a7-b33484f3e687.htm @@ -0,0 +1,11 @@ +SpriteController.DestroySprite Method
    SpriteControllerDestroySprite Method
    + Tell a sprite to destroy itself. The sprite will have Destroying property set to true from + the time you destroy it until it vanishes. Whe you destroy a sprite, it will erase itself + and remove itself from the controller. After it is destroyed, it is completely gone. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void DestroySprite(
    +	Sprite what
    +)

    Parameters

    what
    Type: SpriteLibrarySprite
    The Sprite to destroy
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/56d803c5-e2ad-dd16-0592-b816f726498d.htm b/SpriteLibrary/Doc/Help/html/56d803c5-e2ad-dd16-0592-b816f726498d.htm new file mode 100644 index 0000000..57e7b10 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/56d803c5-e2ad-dd16-0592-b816f726498d.htm @@ -0,0 +1,9 @@ +Sprite.ReturnAdjustmentRatio Method
    SpriteReturnAdjustmentRatio Method
    + Taking into consideration how the sprite is stretched or shrunk, it + returns a SpriteAdjustmentRatio that can be used to work with the sprite + itself. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteAdjustmentRatio ReturnAdjustmentRatio()

    Return Value

    Type: SpriteAdjustmentRatio
    The current SpriteAdjustmentRatio used to display this sprite
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/57a9f458-c6c8-d106-aad4-b2547736909a.htm b/SpriteLibrary/Doc/Help/html/57a9f458-c6c8-d106-aad4-b2547736909a.htm new file mode 100644 index 0000000..888cb55 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/57a9f458-c6c8-d106-aad4-b2547736909a.htm @@ -0,0 +1,3 @@ +SpriteAdjustmentRatio Methods
    SpriteAdjustmentRatio Methods

    The SpriteAdjustmentRatio type exposes the following members.

    Methods
    +   + NameDescription
    Public methodEquals
    Indicates whether this instance and a specified object are equal.
    (Inherited from ValueType.)
    Public methodGetHashCode
    Returns the hash code for this instance.
    (Inherited from ValueType.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodToString
    Returns the fully qualified type name of this instance.
    (Inherited from ValueType.)
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm b/SpriteLibrary/Doc/Help/html/5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm new file mode 100644 index 0000000..4e78b99 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5a5c3a2b-a675-c626-ced3-c958acc9f93e.htm @@ -0,0 +1,3 @@ +SpritePayload Methods
    SpritePayload Methods

    The SpritePayload type exposes the following members.

    Methods
    +   + NameDescription
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm b/SpriteLibrary/Doc/Help/html/5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm new file mode 100644 index 0000000..227d601 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5b2d8b05-360b-44bc-2e7b-f1d4753cb0df.htm @@ -0,0 +1,12 @@ +Sprite.PutBaseImageLocation Method (Point)
    SpritePutBaseImageLocation Method (Point)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void PutBaseImageLocation(
    +	Point NewLocationOnImage
    +)

    Parameters

    NewLocationOnImage
    Type: System.DrawingPoint
    The new point on the Image
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm b/SpriteLibrary/Doc/Help/html/5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm new file mode 100644 index 0000000..a6154b8 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5b5ccc3b-4e41-862f-7bba-7d55a45c6747.htm @@ -0,0 +1,8 @@ +Sprite.VisibleHeight Property
    SpriteVisibleHeight Property
    + The visible Height as seen in the PictureBox. It may be stretched, or shrunk from the actual + image size. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int VisibleHeight { get; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm b/SpriteLibrary/Doc/Help/html/5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm new file mode 100644 index 0000000..7e993c0 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5d32e0da-bbf2-10b5-ba20-fe5bdfec1963.htm @@ -0,0 +1,9 @@ +SpriteController.SpriteToBack Method
    SpriteControllerSpriteToBack Method
    + Change the display order of the specified sprite so it goes behind all other sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SpriteToBack(
    +	Sprite What
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The sprite to send behind all other sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/5d507565-cf0d-de52-2253-b55396e3886a.htm b/SpriteLibrary/Doc/Help/html/5d507565-cf0d-de52-2253-b55396e3886a.htm new file mode 100644 index 0000000..861599b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/5d507565-cf0d-de52-2253-b55396e3886a.htm @@ -0,0 +1,11 @@ +Sprite.CheckSpriteHitsSprite Method
    SpriteCheckSpriteHitsSprite Method
    + Check to see if two sprites hit each-other. The sprite collision methods are + not all programmed in. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void CheckSpriteHitsSprite(
    +	Sprite target,
    +	SpriteCollisionMethod how
    +)

    Parameters

    target
    Type: SpriteLibrarySprite
    The Sprite we are checking to see if we hit
    how
    Type: SpriteLibrarySpriteCollisionMethod
    The method we use to determine if they hit
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/603ff402-efe2-bede-5c71-1a9583da0800.htm b/SpriteLibrary/Doc/Help/html/603ff402-efe2-bede-5c71-1a9583da0800.htm new file mode 100644 index 0000000..c76390b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/603ff402-efe2-bede-5c71-1a9583da0800.htm @@ -0,0 +1,8 @@ +Sprite.FrameIndex Property
    SpriteFrameIndex Property
    + This is the frame of the current animation sequence. You can use this if you need to figure out what frame index + to resume something at, or something like that. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int FrameIndex { get; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/60fe71db-5ea2-cf93-f216-79b15a6779db.htm b/SpriteLibrary/Doc/Help/html/60fe71db-5ea2-cf93-f216-79b15a6779db.htm new file mode 100644 index 0000000..952672f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/60fe71db-5ea2-cf93-f216-79b15a6779db.htm @@ -0,0 +1,22 @@ +SpriteController.DuplicateSprite Method (String)
    SpriteControllerDuplicateSprite Method (String)
    + Find a sprite that has been named with the specified name. Then duplicate that sprite +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite DuplicateSprite(
    +	string Name
    +)

    Parameters

    Name
    Type: SystemString
    The name of a sprite

    Return Value

    Type: Sprite
    A duplicate of the specified sprite. It has no location, and does not retain the sprite name.
    Examples
    + Below is a function that creates a sprite based off a name, and puts it at the designated coordinates. +
    C#
    public void AddSprite(string name, int startx, int starty)
    +{
    +     Sprite NewSprite = MySpriteController.DuplicateSprite(What.ToString());
    +     if(NewSprite != null)
    +     {
    +         NewSprite.AutomaticallyMoves = true;
    +         NewSprite.CannotMoveOutsideBox = true;
    +         NewSprite.SetSpriteDirectionDegrees(180); //left
    +         NewSprite.PutBaseImageLocation(new Point(startx, starty));
    +         NewSprite.MovementSpeed = 5;
    +     }
    +}
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6273fa69-a784-9916-a8eb-5b16529fdf48.htm b/SpriteLibrary/Doc/Help/html/6273fa69-a784-9916-a8eb-5b16529fdf48.htm new file mode 100644 index 0000000..884a71a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6273fa69-a784-9916-a8eb-5b16529fdf48.htm @@ -0,0 +1,7 @@ +Sprite.PictureBoxLocation Property
    SpritePictureBoxLocation Property
    + The sprite location as found on the picture-box that this sprite is associated with. Used when dealing with mouse-clicks +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point PictureBoxLocation { get; }

    Property Value

    Type: Point
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm b/SpriteLibrary/Doc/Help/html/63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm new file mode 100644 index 0000000..8d498b5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/63fd5f6f-f592-0dbd-6fd2-ff4b999f012d.htm @@ -0,0 +1,7 @@ +SpriteController.DestroyAllSprites Method \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/64d54496-389b-21a7-0387-25878b2bcc4c.htm b/SpriteLibrary/Doc/Help/html/64d54496-389b-21a7-0387-25878b2bcc4c.htm new file mode 100644 index 0000000..2b3c8bc --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/64d54496-389b-21a7-0387-25878b2bcc4c.htm @@ -0,0 +1,9 @@ +Sprite.SpriteBeingDestroyed Event
    SpriteSpriteBeingDestroyed Event
    + The Sprite has just been told to be destroyed. You might want to do some cleanup. + If you need to destroy some payload data, or tell something to cleanup after the sprite + this is where to do that. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteBeingDestroyed

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm b/SpriteLibrary/Doc/Help/html/6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm new file mode 100644 index 0000000..1327b2d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6541bf2d-e608-1bad-2e7f-1b0f2deb0c34.htm @@ -0,0 +1,13 @@ +Sprite Constructor (SpriteController, Image, Int32, Int32, Int32)
    Sprite Constructor (SpriteController, Image, Int32, Int32, Int32)
    + Generate a new sprite. It takes a width, height, and the duration in Milliseconds for each frame +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	SpriteController Controller,
    +	Image SpriteImage,
    +	int width,
    +	int height,
    +	int durationInMilliseconds
    +)

    Parameters

    Controller
    Type: SpriteLibrarySpriteController
    The sprite controller
    SpriteImage
    Type: System.DrawingImage
    The image we pull the animations from
    width
    Type: SystemInt32
    The width of one animation frame
    height
    Type: SystemInt32
    the height of one animation frame
    durationInMilliseconds
    Type: SystemInt32
    The number of milliseconds each frame is shown for as it animates.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/66013d9b-4126-7d65-05bb-94eb9d134be6.htm b/SpriteLibrary/Doc/Help/html/66013d9b-4126-7d65-05bb-94eb9d134be6.htm new file mode 100644 index 0000000..05dcbd3 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/66013d9b-4126-7d65-05bb-94eb9d134be6.htm @@ -0,0 +1,404 @@ +Sprite Class
    Sprite Class
    + A Sprite is an animated image that has a size, position, rotation, and possible vector + It tracks where in the animation sequence it is, can report colisions, etc. This SpriteController + draws, moves, and deals with most graphical aspects of the sprites for you. +
    Inheritance Hierarchy
    SystemObject
      SpriteLibrarySprite

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public class Sprite

    The Sprite type exposes the following members.

    Constructors
    +   + NameDescription
    Public methodSprite(Sprite, Boolean)
    + Create a Sprite that is based off of the specified sprite. Clone the Sprite except that + we set SpriteName = "" and OrigSpriteName = the OldSprite.SpriteName. That way we know that + the sprite was duplicated from the original, and we can still distinguish the original from + the duplicate. +
    Public methodSprite(SpriteController, Image)
    + Generate a new single-frame sprite from the specified image. +
    Public methodSprite(SpriteController, Image, Size)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +
    Public methodSprite(SpriteController, Image, Int32, Int32)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +
    Public methodSprite(SpriteController, Image, Int32, Int32, Int32)
    + Generate a new sprite. It takes a width, height, and the duration in Milliseconds for each frame +
    Public methodSprite(Point, SpriteController, Image, Int32, Int32, Int32, Int32)
    + Create a Sprite from an animation image, specifying the number of consecutive + frames to grab. +
    Top
    Properties
    +   + NameDescription
    Public propertyAnimationCount
    + The number of animations this sprite has +
    Public propertyAnimationDone
    + Report whether or not the animation has been completed. When you tell a Sprite to AnimateOnce, + this will report "false" until the animation sequence has been finished. At that time, the value + will be "True." The tricky bit is that this is a boolean. If you have not told a sprite to + animate once, it will always return "false." If a sprite is paused, this returns "false." The only + time this returns "true" is when you tell a sprite to animate once, or animate a few times, and those + times have completed. At that time, this will report "True". If you have a sprite with only one frame, + it may not look like it is "animating", but it is. It is simply animating that one frame over and over. + So, AnimationDone reports false, unless you have told it to animate_once. +
    Public propertyAnimationIndex
    + Get or set the animation nimber. It is best to change the animation using ChangeAnimation. + It is safer. +
    Public propertyAutomaticallyMoves
    + Determine if the sprite automatically moves (you need to give it a direction [using one of the + SetSpriteDirection functions] and speed [MovementSpeed = X] also) +
    Public propertyBaseImageLocation
    + The sprite location as found on the base image. This is usually the easiest location to use. +
    Public propertyDestroying
    + If the Sprite is in the middle of being Destroyed, this is set to true. When a Sprite is + Destroyed, it needs to erase itself and do some house-cleaning before it actually vanishes. + During this time, you may not want to use it. It is always a good thing to verify a Sprite + is not in the middle of being destroyed before you do something important with it. To Destroy + a Sprite, use the Sprite.Destroy() function. +
    Public propertyFrameIndex
    + This is the frame of the current animation sequence. You can use this if you need to figure out what frame index + to resume something at, or something like that. +
    Public propertyGetSize
    + Return the size of the sprite in reference to the image on which it is drawn. To get the + size of the Sprite in relation to the PictureBox, use GetVisibleSize +
    Public propertyGetVisibleSize
    + Return the relative size of the Sprite in relation to the PictureBox. If the box has been + stretched or shrunk, that affects the visible size of the sprite. +
    Public propertyHasBeenDrawn
    + Report whether or not this Sprite has been drawn. If it has, then it needs to be erased at + some point in time. +
    Public propertyID
    + The Sprite ID as specified by the sprite controller. +
    Public propertyMovingToPoint
    + Tells us if we are in the process of doing a MoveTo operation. This boolean should be the + opposite of SpriteReachedEndpoint, but that boolean is poorly named. This is usually the easier + one to use. +
    Public propertyOpacity
    + Set the opacity of the sprite. The value should be between 0 and 1. 1 is solid, 0 is transparent. + Sometimes you want to drag a sprite around the map, or show a sprite that "could be there." Setting + the sprite opacity is usually how you do that. One warning, however. The opacity value takes effect the + next time it is drawn. If the sprite is animating rapidly, it will take effect nearly emmediately. If + it is not animating, not moving, or just sitting there, then it may not take effect for quite some time. +
    Public propertyPictureBoxLocation
    + The sprite location as found on the picture-box that this sprite is associated with. Used when dealing with mouse-clicks +
    Public propertyRotation
    + Change the rotation of the sprite, using degrees. 0 degrees is to the right. 90 is up. + 180 left, 270 down. But, if your sprite was drawn facing up, then rotating it 90 degrees + will have it pointing left. The angle goes counter-clockwise. The image will be scaled + such that it continues to fit within the rectangle that it was originally in. This results + in a little bit of shrinking at times, but you should rarely notice that. +
    Public propertySpriteName
    + The name of the sprite. Use SetSpriteName(Name) to change this name. Most Named sprites + are used to define what a sprite is. Once you have created a named sprite, you usually use + DuplicateSprite(String) to clone the sprite for use. The basic rule of thumb is + to load your sprites from images once, and name the initial sprites. Then, when you go to use + those sprites, get duplicates of them. The reason for this is because it takes more processing time to initially + create the sprites than it takes to duplicate them. +
    Public propertySpriteOriginName
    + Return the name of the sprite that this was duplicated from. A duplicated sprite will have + no name, but will have a SpriteOriginName. +
    Public propertySpriteReachedEndPoint
    + This is true unless we are using MoveTo(point) or MoveTo(list of points) to tell the sprite to move + from one place to the next. This boolean tells us if it has finished or not. +
    Public propertyVisibleHeight
    + The visible Height as seen in the PictureBox. It may be stretched, or shrunk from the actual + image size. +
    Public propertyVisibleWidth
    + The visible width as seen in the PictureBox. The Sprite may be stretched or shrunk from the + actual image size. +
    Public propertyZvalue
    + A number from 0 to 100. Default = 50. Higher numbers print on top of lower numbers. If you want a sprite to + always be drawn on top of other sprites, give it a number higher than 50. If you want a sprite to go under + other sprites, make its number lower than 50. +
    Top
    Methods
    +   + NameDescription
    Public methodAddAnimation(Image)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Size)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Int32)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand. +
    Public methodAddAnimation(Image, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Boolean, Boolean)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand using the MirrorHorizontally or MirrorVertically booleans. +
    Public methodAddAnimation(Image, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Point, Image, Int32, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAnimateJustAFewTimes
    + Start a new animation. It will complete the animation the number of times you specify. + For example, if your sprite is walking, and one animation is one step, specifying 4 here + will result in your sprite taking 4 steps and then the animation stops. You will want + to make sure you are checking for when the animation stops, using the SpriteAnimationComplete event, + checking the Sprite.AnimationDone flag. +
    Public methodAnimateOnce
    + Start a new animation, but do it just once. You can use AnimateJustAFewTimes(1) to the same effect. + Or, you can use AnimateJustAFewTimes with a different number. The SpriteAnimationComplete event will + fire off when the animation completes. The variable, Sprite.AnimationDone will be true once the + animation finishes animating. +
    Public methodCancelMoveTo
    + Cancel a MoveTo command. The sprite will stop moving, and all the waypoints will be removed. +
    Public methodChangeAnimation
    + Start a new animation index from scratch +
    Public methodChangeAnimationSpeed
    + Change the animation speed of a particular animation. This looks at the first frame + and compares that frame to the speed specified. It adjusts all the animations by the + same percentage. +
    Public methodChangeFrameAnimationSpeed
    + Change the animation speed of a specific frame. Beware. This affects every sprite using this frame +
    Public methodCheckSpriteHitsSprite
    + Check to see if two sprites hit each-other. The sprite collision methods are + not all programmed in. +
    Public methodConvertDegreesToRadians
    + Convert a number from degrees to radians. +
    Public methodConvertRadiansToDegrees
    + Convert a number from radians to degrees. +
    Public methodDestroy
    + Tell the sprite to kill itself. It will erase itself and then + be removed from the spritelist. Then it will be gone forever. +
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetAnimationSpeed
    + Return the animation speed of this particualar animation of the sprite. +
    Public methodGetFrameAnimationSpeed
    + Get the animation speed of a single frame. +
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetImage
    + return the current image frame. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Public methodGetImage(Int32, Int32)
    + return the frame for the given index. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Public methodGetSpriteBaseImageCenter
    + Return the centerpoint of the sprite, as found on the background image +
    Public methodGetSpriteDegrees
    + Get the direction that the sprite is traveling in in degrees. You may want to + use Math.Round on the results. The value returned is usually just a tiny bit off + from what you set it with. For example, if you set the sprite movement direction + to be 270 degrees (down), this function may return it as 269.999992. Rounding the + number will give it back to you at probably the same direction you set it as. +
    Public methodGetSpritePictureboxCenter
    + Return the centerpoint of the sprite, as found on the picturebox +
    Public methodGetSpriteRadans
    + Returns the direction the sprite is currently traveling, using Radians. +
    Public methodGetSpriteVector
    + Return the current vector that the sprite is moving along +
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodHideSprite
    + Remove the sprite from the field. This does not destroy the sprite. It simply removes it from action. + Use UnhideSprite to show it again. +
    Public methodIsPaused
    + Ask if the sprite is paused using the specified sprite type (default is PauseAll) +
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodMoveTo(ListPoint)
    + Tell the sprite to move towards each point in turn. The sprite will move in a straight line until the first point. + From there it moves to the next point, until it has reached the last point. Every time it reaches a point, the + SpriteArrivedAtWaypoint event is triggered. When it reaches the final point in the list, the SpriteArrivedAtEndPoint + event is triggered. While the sprite is moving, the SpriteReachedEndPoint attribute is set to false. When it has + arrived, it is set to true. +
    Public methodMoveTo(Point)
    + Tell the Sprite to move towards a destination. You need to give the sprite a MovementSpeed + and tell the sprite that it can automatically move. But the sprite will begin a journey towards + that point at the MovementSpeed you have set. When it gets to the point, the SpriteArrivedAtEndPoint event + will fire off. Also, the SpriteReachedEnd bool will be true. +
    Public methodMoveTo(Sprite)
    + Move to where the destination sprite currently is at. This is a dumb move. It does not take into + consideration the movement direction of the destination sprite. So the moving sprite does need to be + moving a bit faster than the sprite you are trying to hit for it to do so. +
    Public methodPause
    + Pause the sprite. We can pause just the animation (and still let it move), pause movement (and let it animate), or pause everything. +
    Public methodPutBaseImageLocation(Point)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Public methodPutBaseImageLocation(Double, Double)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Public methodPutPictureBoxLocation
    + Put the Sprite at a specified location, using the dimentions of the PictureBox. + You want to use this if you got your X/Y position from a mouse-click. Otherwise, + this is the harder way to track things, particularly if your window can resize. Use + PutBaseImageLocation instead. +
    Public methodRecalcPictureBoxLocation
    + Done when the box resizes. We need to recompute the picturebox location. The resize function + automatically calls this. You should never need to do so. +
    Public methodReplaceImage
    + Replace a sprite image. It will replace the current frame unless you specify both an animation + and the frame within the animation you wish to replace. Warning: This replaces the image_frame + for every sprite that uses that is based off the same image. +
    Public methodReturnAdjustmentRatio
    + Taking into consideration how the sprite is stretched or shrunk, it + returns a SpriteAdjustmentRatio that can be used to work with the sprite + itself. +
    Public methodSendToBack
    + Make the sprite go behind all other sprites +
    Public methodSendToFront
    + Make the sprite show up in front of all other sprites. +
    Public methodSetName
    + Give this sprite a name. This way we can make a duplicate of it by specifying the name +
    Public methodSetSize
    + Resize the sprite using the base image coordinates. The width and height specified + are relative to the size of the background image, not the picturebox. +
    Public methodSetSpriteDirection
    + Set the sprite direction using a vector. The vector may contain + a speed as well as the movement delta (amount of x shift, and amount + of y shift.) If so, this function may also affect the movement speed + Most people prefer to use SetSpriteDirectionDegrees instead of using + vectors. +
    Public methodSetSpriteDirectionDegrees
    + Given a "degree" (from 0 to 360, set the direction + that the sprite moves automatically. 0 is right, 90 is up, 180 is left + and 270 is down. +
    Public methodSetSpriteDirectionRadians
    + Set the sprite direction using Radians. Most people do not want to use this. + Use SetSpriteDirectionDegrees instead unless you like math and know what you + are doing with Radians. +
    Public methodSetSpriteDirectionToPoint
    + Sets the Sprite Moving towards a given point. You are responsible to do something with it once it gets there. + If you want it to automatically stop upon reaching it, use MoveTo instead. Actually, the MoveTo function works + a lot better than this one. Because of integer rounding and a few other things, this function is a little + bit imprecise. If you send it towards a point, it will go in that general direction. The MoveTo function + will perpetually recalculate its way to the destination point and actually reach that point. SetSpriteDirectionToPoint + will sort-of head in the direction of the point. But MoveTo will go to that point. +
    Public methodSpriteAdjustedPoint
    + Because sprites are scaled (shrunk or stretched), this function finds the point + within the sprite that is specified by the location. this function is used by + a number of internal processes, but may be useful to you. But probably not. +
    Public methodSpriteAtImagePoint
    + Check to see if the sprite exists at the point specified. The point given is + in coordinates used by the image (not the PictureBox, use SpriteAtPictureBox for that) +
    Public methodSpriteAtPictureBoxPoint
    + Return true or false, asking if the specifiec sprite is at the point on the picturebox. + You can use this with a mouse-click to see if you are clicking on a sprite. Use the + SpriteCollisionMethod "transparent" to see if you have clicked on an actual pixel of the + sprite instead of just within the sprite rectangle. +
    Public methodSpriteCanMoveOnImage
    + Return true if the sprite can go to this point and still be on the drawing-board. +
    Public methodSpriteCanMoveOnPictureBox
    + Return true if the sprite can go to this point and still be on the drawing-board. +
    Public methodSpriteIntersectsRectangle
    + Check to see if the specified rectangle overlaps with the sprite. +
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Public methodUnhideSprite
    + Make the sprite reappear. If you have not positioned it yet, it will show up at the top corner. It is best to only + use this when you have hidden it using HideSprite +
    Public methodUnPause
    + unpause the sprite. +
    Top
    Events
    +   + NameDescription
    Public eventCheckBeforeMove
    + This event fires off before a sprite is drawn. Use it if you have constraints. You + can change the location or cancel the move entirely. +
    Public eventClick
    + This event happens when someone clicks on the sprite (on the rectangle in which the sprite is). + If you want the event to fire off only when someone clicks on the visible part of the sprite, + use ClickTransparent instead. +
    Public eventClickTransparent
    + This event happens when someone clicks on the sprite (on the sprite image itself). + If the sprite is sometimes hidden, but you want the click to work even if it is not + visible at that instant, use Click instead. +
    Public eventMouseEnter
    + When the mouse moves over the sprite. Use this for a menu, when you want the menu item to glow when the + mouse is over the menu item sprite. +
    Public eventMouseEnterTransparent
    + When the mouse moves over a non-transparent portoin of the sprite. Use this for a menu, when you want the + menu item to glow when the mouse is over the menu item sprite. +
    Public eventMouseHover
    + This event happens when the mouse moves over the sprite, and then pauses. We use the hover timing from the + parent form. +
    Public eventMouseHoverTransparent
    + This event happens when the mouse moves over a non-transparent portion of the sprite, and then pauses. + We use the hover timing from the parent form. +
    Public eventMouseLeave
    + When the mouse moves off the sprite. Use this for a menu, when you want the menu item to stop glowing when + the mouse moves away from the menu item sprite. +
    Public eventMouseLeaveTransparent
    + When the mouse moves off the non-transparent portion of the sprite. Use this for a menu, when you want the + menu item to stop glowing when + the mouse moves away from the menu item sprite. +
    Public eventSpriteAnimationComplete
    + Only used when you tell an animation to animate once. At the end of the animation, + this function fires off. +
    Public eventSpriteArrivedAtEndPoint
    + An event for when you tell a Sprite to MoveTo(Point) a specific point, or, when you + tell the Sprite to MoveTo(list of points). When the Sprite has reached the final destination, + the Sprite fires off this event. +
    Public eventSpriteArrivedAtWaypoint
    + When you tell a sprite to MoveTo(list of points), this fires off every time it gets to + one of the points. When it gets to the final point, only the SpriteAtEndPoint event fires off. +
    Public eventSpriteBeingDestroyed
    + The Sprite has just been told to be destroyed. You might want to do some cleanup. + If you need to destroy some payload data, or tell something to cleanup after the sprite + this is where to do that. +
    Public eventSpriteChangesAnimationFrames
    + When the frame of an animation changes. If you want to have something happen every time + the foot of your monster comes down, when the swing of your sword is at certain points, etc. + Check to see that the Animaton and FrameIndex are what you expect them to be. +
    Public eventSpriteExitsPictureBox
    + This happens when the sprite has exited the picture box. Useful when you want to + keep sprites from traveling on forever after exiting. +
    Public eventSpriteHitsPictureBox
    + This happens when the sprite hits the border of the picture-box. + Useful for when you want to have shots explode when they hit the side. +
    Public eventSpriteHitsSprite
    + This happens when two sprites hit each-other. The SpriteEventArgs that is returned + contains the sprite that this sprite hits. +
    Public eventSpriteInitializes
    + This event happens right after the sprite is created. Use this to immediately set a + sprite to animate once or something like that. +
    Top
    Fields
    +   + NameDescription
    Public fieldCannotMoveOutsideBox
    + Determine if the sprite will automatically move outside the box. If not, it will hit the side of the box and stick +
    Public fieldMirrorHorizontally
    + Flip the image when it gets printed. If your sprite is walking left, flipping it will + make it look like it is going right. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation
    Public fieldMirrorVertically
    + Flip the image when it gets printed. If your sprite looks like it is facing up, doing + this will make it look like it faces down. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation
    Public fieldMovementSpeed
    + The movement speed of the sprite. To make a Sprite move, you need to set the MovementSpeed, + the direction (using + SetSpriteDirection(Vector), + SetSpriteDirectionToPoint(Point), + SetSpriteDirectionRadians(Double), + or SetSpriteDirectionDegrees(Double)), and the + AutomaticallyMoves property. + The speed is calculated in pixels per amount of time. A higher number is faster than a lower number. +
    Public fieldpayload
    + A Sprite can hold a payload. Use this to store extra information about the various Sprites. Health, Armor, + Shoot time, etc. But, to store information in the payload, you need to make a new class of SpritePayload. The syntax + for doing so is: +
    public class TankPayload : SpritePayload {  public int Armor; public int Speed; }
    + You can access the payload and retrieve the various values. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/662ea0d6-7a35-be51-5a25-288752509d24.htm b/SpriteLibrary/Doc/Help/html/662ea0d6-7a35-be51-5a25-288752509d24.htm new file mode 100644 index 0000000..dffbf8e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/662ea0d6-7a35-be51-5a25-288752509d24.htm @@ -0,0 +1,7 @@ +SpriteController.AllSprites Method
    SpriteControllerAllSprites Method
    + Return a list of all sprites +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> AllSprites()

    Return Value

    Type: ListSprite
    A list of all sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6707f122-af81-e57d-d937-e4000242446f.htm b/SpriteLibrary/Doc/Help/html/6707f122-af81-e57d-d937-e4000242446f.htm new file mode 100644 index 0000000..d9c9619 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6707f122-af81-e57d-d937-e4000242446f.htm @@ -0,0 +1,9 @@ +Sprite.UnPause Method
    SpriteUnPause Method
    + unpause the sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void UnPause(
    +	SpritePauseType What = SpritePauseType.PauseAll
    +)

    Parameters

    What (Optional)
    Type: SpriteLibrarySpritePauseType
    Which aspects of the sprite you want to unpause.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm b/SpriteLibrary/Doc/Help/html/675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm new file mode 100644 index 0000000..1211b81 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/675951bb-e09a-e9ec-95d2-c0efaf187d6d.htm @@ -0,0 +1,10 @@ +SpriteController.UnPause Method
    SpriteControllerUnPause Method
    + un-Pause everything. This will send the specified SpritePauseType unpause command + to all sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void UnPause(
    +	SpritePauseType What = SpritePauseType.PauseAll
    +)

    Parameters

    What (Optional)
    Type: SpriteLibrarySpritePauseType
    The SpritePauseType to unpause for all sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/679ff642-b87f-24d6-80c5-434c06c71523.htm b/SpriteLibrary/Doc/Help/html/679ff642-b87f-24d6-80c5-434c06c71523.htm new file mode 100644 index 0000000..c5cfc86 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/679ff642-b87f-24d6-80c5-434c06c71523.htm @@ -0,0 +1,9 @@ +Sprite.MirrorVertically Field
    SpriteMirrorVertically Field
    + Flip the image when it gets printed. If your sprite looks like it is facing up, doing + this will make it look like it faces down. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool MirrorVertically

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm b/SpriteLibrary/Doc/Help/html/68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm new file mode 100644 index 0000000..c632568 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/68ba53c6-5c0d-3dd4-b9bd-56852a3b98cd.htm @@ -0,0 +1,9 @@ +SpriteController.AdjustPoint Method
    SpriteControllerAdjustPoint Method
    + Adjust an image point so that it conforms to the picturebox. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point AdjustPoint(
    +	Point LocationOnImage
    +)

    Parameters

    LocationOnImage
    Type: System.DrawingPoint
    The image location

    Return Value

    Type: Point
    the corresponding point on the PictuerBox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6acc0e43-8cb8-535c-6f39-8163bb21447a.htm b/SpriteLibrary/Doc/Help/html/6acc0e43-8cb8-535c-6f39-8163bb21447a.htm new file mode 100644 index 0000000..93092d2 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6acc0e43-8cb8-535c-6f39-8163bb21447a.htm @@ -0,0 +1,5 @@ +SpritePayload Constructor
    SpritePayload Constructor
    Initializes a new instance of the SpritePayload class

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpritePayload()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm b/SpriteLibrary/Doc/Help/html/6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm new file mode 100644 index 0000000..68e3484 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6adf23fc-b0f8-5abf-bd39-7dc44f060e7c.htm @@ -0,0 +1,9 @@ +Sprite.Zvalue Property
    SpriteZvalue Property
    + A number from 0 to 100. Default = 50. Higher numbers print on top of lower numbers. If you want a sprite to + always be drawn on top of other sprites, give it a number higher than 50. If you want a sprite to go under + other sprites, make its number lower than 50. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int Zvalue { get; set; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6b7227c0-7a6a-6342-3b08-917c7de429cc.htm b/SpriteLibrary/Doc/Help/html/6b7227c0-7a6a-6342-3b08-917c7de429cc.htm new file mode 100644 index 0000000..82bfa4a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6b7227c0-7a6a-6342-3b08-917c7de429cc.htm @@ -0,0 +1,60 @@ +SpriteLibrary Namespace
    SpriteLibrary Namespace
    + SpriteLibrary is a .net graphical library for creating and controlling sprites on a PictureBox. + + A sprite is an animated image that can be moved around on a + picturebox. You can give the sprite an initial location, and either move it around manually or give it + specific movement controls. + + To use this library, you will need to add a reference to it in your project. You will also need a reference to + "Windows Base." + In the solution explorer, if you right-click your project and go to "add", and then "reference" and click + "WindowsBase" towards the bottom. + On that same window, on the left, click "browse." Then, click the "Browse..." button and find the sprite-library dll. + The main places to find the SpriteLibrary and sample programs using this SpriteLibrary are here: + http://www.codeproject.com/Articles/1085446/Using-Sprites-Inside-Windows-Forms + and + http://tyounglightsys.ddns.info/SpriteLibrary
    Classes
    +   + ClassDescription
    Public classSprite
    + A Sprite is an animated image that has a size, position, rotation, and possible vector + It tracks where in the animation sequence it is, can report colisions, etc. This SpriteController + draws, moves, and deals with most graphical aspects of the sprites for you. +
    Public classCode exampleSpriteController
    + A sprite controller is the main heart of the sprite class. Each SpriteController manages one picturebox. + If at all possible, try to keep each game in one picturebox, and try to avoid making and destroying + new forms with SpriteController/pictureboxes in them. It is hard to destroy them completely. +
    Public classSpriteEventArgs
    + An EventArgs that contains information about Sprites. Most of the Sprite events use + this SpriteEventArgs. +
    Public classCode exampleSpritePayload
    + The SpritePayload is a stub of a class, for storing user-defined data and functions along with a sprite. +
    Structures
    +   + StructureDescription
    Public structureSpriteAdjustmentRatio
    + A structure that contains the width and height adjustment ratio. Use this if you need to manually calculate positions + between the PictureBox that the sprite is in, and the Background Image itself. +
    Delegates
    +   + DelegateDescription
    Public delegateSpriteSpriteEventHandler
    + A delegate that has a SpriteEventArgs instead of EventArgs. Used for most + of the Sprite events. This allows us to pass more information from sprite events than + a basic EventArgs allows for +
    Public delegateSpriteKeyEventHandler
    + This is a delegate for a keypress event. +
    Enumerations
    +   + EnumerationDescription
    Public enumerationSpriteCollisionMethod
    + The various types of collisions a sprite can have. Currently only rectangle works. The other types were added when I + thought the different types of collision types were needed. Someday we may add these if we find they are useful, or if + someone else decides they want to help program the SpriteLibrary. These values are primarily used in Sprite Events +
    Public enumerationSpritePauseType
    + The type of pause signals you can give a sprite or the sprite controller +
    + \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm b/SpriteLibrary/Doc/Help/html/6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm new file mode 100644 index 0000000..ec4ba6f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6d383ed6-ff9b-f1b0-a53d-54ea41795870.htm @@ -0,0 +1,28 @@ +Sprite Fields
    Sprite Fields

    The Sprite type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldCannotMoveOutsideBox
    + Determine if the sprite will automatically move outside the box. If not, it will hit the side of the box and stick +
    Public fieldMirrorHorizontally
    + Flip the image when it gets printed. If your sprite is walking left, flipping it will + make it look like it is going right. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation
    Public fieldMirrorVertically
    + Flip the image when it gets printed. If your sprite looks like it is facing up, doing + this will make it look like it faces down. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation
    Public fieldMovementSpeed
    + The movement speed of the sprite. To make a Sprite move, you need to set the MovementSpeed, + the direction (using + SetSpriteDirection(Vector), + SetSpriteDirectionToPoint(Point), + SetSpriteDirectionRadians(Double), + or SetSpriteDirectionDegrees(Double)), and the + AutomaticallyMoves property. + The speed is calculated in pixels per amount of time. A higher number is faster than a lower number. +
    Public fieldpayload
    + A Sprite can hold a payload. Use this to store extra information about the various Sprites. Health, Armor, + Shoot time, etc. But, to store information in the payload, you need to make a new class of SpritePayload. The syntax + for doing so is: +
    public class TankPayload : SpritePayload {  public int Armor; public int Speed; }
    + You can access the payload and retrieve the various values. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm b/SpriteLibrary/Doc/Help/html/6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm new file mode 100644 index 0000000..3dd19c4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6e7ddbc9-4f71-533f-b99c-55a53ba4a843.htm @@ -0,0 +1,8 @@ +SpriteController.SpriteCount Property
    SpriteControllerSpriteCount Property
    + The count of all the sprites the controller knows about. This includes named + sprites, which may not be visible. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int SpriteCount { get; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm b/SpriteLibrary/Doc/Help/html/6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm new file mode 100644 index 0000000..226d29c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/6e92bfaf-2e6c-a3bc-e208-3f486f6b42fc.htm @@ -0,0 +1,8 @@ +Sprite.UnhideSprite Method
    SpriteUnhideSprite Method
    + Make the sprite reappear. If you have not positioned it yet, it will show up at the top corner. It is best to only + use this when you have hidden it using HideSprite +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void UnhideSprite()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm b/SpriteLibrary/Doc/Help/html/72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm new file mode 100644 index 0000000..77bdc4f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/72a79555-fc4d-8b5b-1a9c-408fd55972e9.htm @@ -0,0 +1,8 @@ +SpriteEventArgs.TargetSprite Field
    SpriteEventArgsTargetSprite Field
    + If another Sprite is involved in the event (Collision), than that Sprite is included here. + It will be null if no other Sprite is involved. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite TargetSprite

    Field Value

    Type: Sprite
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/747bfb64-7646-38ee-09e3-65455ac597e5.htm b/SpriteLibrary/Doc/Help/html/747bfb64-7646-38ee-09e3-65455ac597e5.htm new file mode 100644 index 0000000..5840c08 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/747bfb64-7646-38ee-09e3-65455ac597e5.htm @@ -0,0 +1,7 @@ +Sprite.CannotMoveOutsideBox Field
    SpriteCannotMoveOutsideBox Field
    + Determine if the sprite will automatically move outside the box. If not, it will hit the side of the box and stick +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool CannotMoveOutsideBox

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7a4959c4-936a-b924-d525-7becb693a55b.htm b/SpriteLibrary/Doc/Help/html/7a4959c4-936a-b924-d525-7becb693a55b.htm new file mode 100644 index 0000000..5951a81 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7a4959c4-936a-b924-d525-7becb693a55b.htm @@ -0,0 +1,8 @@ +Sprite.MouseLeave Event
    SpriteMouseLeave Event
    + When the mouse moves off the sprite. Use this for a menu, when you want the menu item to stop glowing when + the mouse moves away from the menu item sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseLeave

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7c73b68e-f842-bfee-55d8-b36488fb35b7.htm b/SpriteLibrary/Doc/Help/html/7c73b68e-f842-bfee-55d8-b36488fb35b7.htm new file mode 100644 index 0000000..3cc576c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7c73b68e-f842-bfee-55d8-b36488fb35b7.htm @@ -0,0 +1,11 @@ +SpriteController.ReturnPictureBoxAdjustedWidth Method
    SpriteControllerReturnPictureBoxAdjustedWidth Method
    + Return the width of an object in picture-box terms. It takes the width of a sprite or other + item that is being displayed on the screen, and calculates the width as displayed in the + picture-box (taking into consideration stretching or shrinking) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int ReturnPictureBoxAdjustedWidth(
    +	int Width
    +)

    Parameters

    Width
    Type: SystemInt32
    An integer width of the drawn item

    Return Value

    Type: Int32
    An integer that contains the number of pixels wide it is on the picturebox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm b/SpriteLibrary/Doc/Help/html/7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm new file mode 100644 index 0000000..41cbc42 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7cf36b8e-42dc-cc56-1e14-6f248286d92b.htm @@ -0,0 +1,12 @@ +Sprite.PutPictureBoxLocation Method
    SpritePutPictureBoxLocation Method
    + Put the Sprite at a specified location, using the dimentions of the PictureBox. + You want to use this if you got your X/Y position from a mouse-click. Otherwise, + this is the harder way to track things, particularly if your window can resize. Use + PutBaseImageLocation instead. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void PutPictureBoxLocation(
    +	Point NewLocationOnPictureBox
    +)

    Parameters

    NewLocationOnPictureBox
    Type: System.DrawingPoint
    A point on the PictureBox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm b/SpriteLibrary/Doc/Help/html/7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm new file mode 100644 index 0000000..d0f4fbf --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7cf8acaf-92f1-652e-4c2a-bfd920bc0479.htm @@ -0,0 +1,10 @@ +Sprite.SetSize Method
    SpriteSetSize Method
    + Resize the sprite using the base image coordinates. The width and height specified + are relative to the size of the background image, not the picturebox. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetSize(
    +	Size NewSize
    +)

    Parameters

    NewSize
    Type: System.DrawingSize
    The size (width, height) to make the sprite
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7d21be0e-d534-6d93-1476-3aa585a8fea3.htm b/SpriteLibrary/Doc/Help/html/7d21be0e-d534-6d93-1476-3aa585a8fea3.htm new file mode 100644 index 0000000..dc5e73a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7d21be0e-d534-6d93-1476-3aa585a8fea3.htm @@ -0,0 +1,8 @@ +Sprite.SpriteOriginName Property
    SpriteSpriteOriginName Property
    + Return the name of the sprite that this was duplicated from. A duplicated sprite will have + no name, but will have a SpriteOriginName. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public string SpriteOriginName { get; }

    Property Value

    Type: String
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7d3a40d7-0ee8-6117-8d32-b236da97778f.htm b/SpriteLibrary/Doc/Help/html/7d3a40d7-0ee8-6117-8d32-b236da97778f.htm new file mode 100644 index 0000000..481f1e4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7d3a40d7-0ee8-6117-8d32-b236da97778f.htm @@ -0,0 +1,9 @@ +SpriteController.OriginalImage Property
    SpriteControllerOriginalImage Property
    + The Image from which the background is taken when we erase sprites. The BackgroundImage + is the image that contains images of the sprites as well as the background image. Use + ReplaceOriginalImage to replace this and the BackgroundImage. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Image OriginalImage { get; }

    Property Value

    Type: Image
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm b/SpriteLibrary/Doc/Help/html/7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm new file mode 100644 index 0000000..0c32aaa --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/7fc92c27-7895-2b2c-d4f1-ac682eec7af5.htm @@ -0,0 +1,12 @@ +SpriteController.IsKeyPressed Method (Keys)
    SpriteControllerIsKeyPressed Method (Keys)
    + Check to see if the given key is pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool IsKeyPressed(
    +	Keys k
    +)

    Parameters

    k
    Type: System.Windows.FormsKeys
    The key to check to see if it is pressed

    Return Value

    Type: Boolean
    True if the key is pressed, false if that key is not pressed
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/80b0403d-da14-c176-9d01-080fc170a67d.htm b/SpriteLibrary/Doc/Help/html/80b0403d-da14-c176-9d01-080fc170a67d.htm new file mode 100644 index 0000000..69249a7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/80b0403d-da14-c176-9d01-080fc170a67d.htm @@ -0,0 +1,9 @@ +SpriteController.SpriteToFront Method
    SpriteControllerSpriteToFront Method
    + Change the display order of the specified sprite so it goes in front of all other sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SpriteToFront(
    +	Sprite What
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The sprite we want to show up in front
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm b/SpriteLibrary/Doc/Help/html/817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm new file mode 100644 index 0000000..b59fdfe --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/817b64cb-8c4b-af50-69ba-6762e8ae51c5.htm @@ -0,0 +1,15 @@ +SpriteEventArgs Fields
    SpriteEventArgs Fields

    The SpriteEventArgs type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldCancel
    + Used primarily in the CheckBeforeMove event. If you set cancel to true, then the move fails. + You can use this to keep a Sprite from going places where it ought not to go. +
    Public fieldCollisionMethod
    + The CollisionMethod used in the event. Currently, only rectangle collisions are used +
    Public fieldNewLocation
    + For the CheckBeforeMove event, newlocation will be the location the sprite is trying + to move to. You can adjust the point (move it left, right, up, down) and it will affect + the placement of the sprite. +
    Public fieldTargetSprite
    + If another Sprite is involved in the event (Collision), than that Sprite is included here. + It will be null if no other Sprite is involved. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm b/SpriteLibrary/Doc/Help/html/81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm new file mode 100644 index 0000000..b5545e5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/81ec308a-e52d-7e07-f9e0-50d0bf531a30.htm @@ -0,0 +1,9 @@ +Sprite.SpriteChangesAnimationFrames Event
    SpriteSpriteChangesAnimationFrames Event
    + When the frame of an animation changes. If you want to have something happen every time + the foot of your monster comes down, when the swing of your sword is at certain points, etc. + Check to see that the Animaton and FrameIndex are what you expect them to be. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteChangesAnimationFrames

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/859526c5-9283-3edb-386b-905cbaa406fd.htm b/SpriteLibrary/Doc/Help/html/859526c5-9283-3edb-386b-905cbaa406fd.htm new file mode 100644 index 0000000..e7cd632 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/859526c5-9283-3edb-386b-905cbaa406fd.htm @@ -0,0 +1,11 @@ +Sprite.ChangeFrameAnimationSpeed Method
    SpriteChangeFrameAnimationSpeed Method
    + Change the animation speed of a specific frame. Beware. This affects every sprite using this frame +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ChangeFrameAnimationSpeed(
    +	int WhichAnimation,
    +	int WhichFrame,
    +	int newSpeed
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The index of the animation
    WhichFrame
    Type: SystemInt32
    The index of the frame within the animation
    newSpeed
    Type: SystemInt32
    The new frame duration in milliseconds
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/88cf999b-5b19-4cfc-adab-b0276f18431a.htm b/SpriteLibrary/Doc/Help/html/88cf999b-5b19-4cfc-adab-b0276f18431a.htm new file mode 100644 index 0000000..85defce --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/88cf999b-5b19-4cfc-adab-b0276f18431a.htm @@ -0,0 +1,7 @@ +Sprite.GetSpriteRadans Method
    SpriteGetSpriteRadans Method
    + Returns the direction the sprite is currently traveling, using Radians. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double GetSpriteRadans()

    Return Value

    Type: Double
    The direction in radians that the sprite is traveling in
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm b/SpriteLibrary/Doc/Help/html/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm new file mode 100644 index 0000000..566615a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8a70b6b2-3e2d-3c6f-0d8c-18e6dea4368e.htm @@ -0,0 +1,21 @@ +Sprite Constructor
    Sprite Constructor
    Overload List
    +   + NameDescription
    Public methodSprite(Sprite, Boolean)
    + Create a Sprite that is based off of the specified sprite. Clone the Sprite except that + we set SpriteName = "" and OrigSpriteName = the OldSprite.SpriteName. That way we know that + the sprite was duplicated from the original, and we can still distinguish the original from + the duplicate. +
    Public methodSprite(SpriteController, Image)
    + Generate a new single-frame sprite from the specified image. +
    Public methodSprite(SpriteController, Image, Size)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +
    Public methodSprite(SpriteController, Image, Int32, Int32)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +
    Public methodSprite(SpriteController, Image, Int32, Int32, Int32)
    + Generate a new sprite. It takes a width, height, and the duration in Milliseconds for each frame +
    Public methodSprite(Point, SpriteController, Image, Int32, Int32, Int32, Int32)
    + Create a Sprite from an animation image, specifying the number of consecutive + frames to grab. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm b/SpriteLibrary/Doc/Help/html/8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm new file mode 100644 index 0000000..c9fceef --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8ae70e13-ebdf-d78f-d7a4-69825f6b8c26.htm @@ -0,0 +1,18 @@ +Sprite.AddAnimation Method (Point, Image, Int32, Int32, Int32, Int32)
    SpriteAddAnimation Method (Point, Image, Int32, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Point Start,
    +	Image SpriteImage,
    +	int width,
    +	int height,
    +	int duration,
    +	int Count
    +)

    Parameters

    Start
    Type: System.DrawingPoint
    The starting position on the Image where we grab the first frame
    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    width
    Type: SystemInt32
    The width of each frame
    height
    Type: SystemInt32
    The height of each frame
    duration
    Type: SystemInt32
    The time in milliseconds we use for each frame
    Count
    Type: SystemInt32
    The number of frames we grab from the image
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8b245db5-fbb6-18bc-d219-832668d1432a.htm b/SpriteLibrary/Doc/Help/html/8b245db5-fbb6-18bc-d219-832668d1432a.htm new file mode 100644 index 0000000..bd85cae --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8b245db5-fbb6-18bc-d219-832668d1432a.htm @@ -0,0 +1,8 @@ +Sprite.GetSize Property
    SpriteGetSize Property
    + Return the size of the sprite in reference to the image on which it is drawn. To get the + size of the Sprite in relation to the PictureBox, use GetVisibleSize +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Size GetSize { get; }

    Property Value

    Type: Size
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm b/SpriteLibrary/Doc/Help/html/8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm new file mode 100644 index 0000000..3cbe0a3 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8d47a519-d5f7-c7f6-4ccb-0d310cab2435.htm @@ -0,0 +1,10 @@ +SpriteController.PlaceSpriteInFrontOf Method
    SpriteControllerPlaceSpriteInFrontOf Method
    + Make the sprite go in front of the specified sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void PlaceSpriteInFrontOf(
    +	Sprite WhatToSend,
    +	Sprite ToGoInFrontOf
    +)

    Parameters

    WhatToSend
    Type: SpriteLibrarySprite
    The sprite to change the display order of
    ToGoInFrontOf
    Type: SpriteLibrarySprite
    The sprite we want to make sure we display in front of
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8e41c462-a765-51e2-4c3b-de231acba259.htm b/SpriteLibrary/Doc/Help/html/8e41c462-a765-51e2-4c3b-de231acba259.htm new file mode 100644 index 0000000..26139d5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8e41c462-a765-51e2-4c3b-de231acba259.htm @@ -0,0 +1,7 @@ +Sprite.ID Property \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8e88c5f2-f5d0-02df-c7cb-9701313411af.htm b/SpriteLibrary/Doc/Help/html/8e88c5f2-f5d0-02df-c7cb-9701313411af.htm new file mode 100644 index 0000000..2fa77e2 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8e88c5f2-f5d0-02df-c7cb-9701313411af.htm @@ -0,0 +1,16 @@ +Sprite Constructor (Point, SpriteController, Image, Int32, Int32, Int32, Int32)
    Sprite Constructor (Point, SpriteController, Image, Int32, Int32, Int32, Int32)
    + Create a Sprite from an animation image, specifying the number of consecutive + frames to grab. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	Point Start,
    +	SpriteController Controller,
    +	Image SpriteImage,
    +	int width,
    +	int height,
    +	int duration,
    +	int Count
    +)

    Parameters

    Start
    Type: System.DrawingPoint
    A point on the specified image where we begin grabbing frames
    Controller
    Type: SpriteLibrarySpriteController
    The Sprite controller we are associating the sprite with
    SpriteImage
    Type: System.DrawingImage
    An image that we grab the frames from
    width
    Type: SystemInt32
    The width of one frame
    height
    Type: SystemInt32
    The height of one frame
    duration
    Type: SystemInt32
    The number of milliseconds each frame is displayed for
    Count
    Type: SystemInt32
    The number of frames to grab as a part of this animation
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm b/SpriteLibrary/Doc/Help/html/8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm new file mode 100644 index 0000000..8d5d665 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/8ff96e56-6289-4c11-f351-4dbfe58a44cf.htm @@ -0,0 +1,9 @@ +Sprite.MouseLeaveTransparent Event
    SpriteMouseLeaveTransparent Event
    + When the mouse moves off the non-transparent portion of the sprite. Use this for a menu, when you want the + menu item to stop glowing when + the mouse moves away from the menu item sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseLeaveTransparent

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/90511f90-497b-fc61-6984-15d76101a6f1.htm b/SpriteLibrary/Doc/Help/html/90511f90-497b-fc61-6984-15d76101a6f1.htm new file mode 100644 index 0000000..9ae63e7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/90511f90-497b-fc61-6984-15d76101a6f1.htm @@ -0,0 +1,13 @@ +SpriteController.SpritesAtImagePoint Method
    SpriteControllerSpritesAtImagePoint Method
    + This takes a point, as as specified on the image, and returns the sprites at that point. Different + functions use different coordinates, whether based off the background image, or based off the picturebox. + This one uses the background image coordinates. Use SpritesAdPoint() if you are doing something based off + a MouseUp or MouseDown function. This is used for functions based on sprite location or based off the absoloute + location (using the background image location is much more precise than the visible location in the picturebox) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesAtImagePoint(
    +	Point Location
    +)

    Parameters

    Location
    Type: System.DrawingPoint
    The point being looked at

    Return Value

    Type: ListSprite
    A list of sprites that are all at the specified image point
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm b/SpriteLibrary/Doc/Help/html/90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm new file mode 100644 index 0000000..36b48ce --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/90a2e7f3-348b-d10b-ee6b-9397ef5daa18.htm @@ -0,0 +1,11 @@ +Sprite.Opacity Property
    SpriteOpacity Property
    + Set the opacity of the sprite. The value should be between 0 and 1. 1 is solid, 0 is transparent. + Sometimes you want to drag a sprite around the map, or show a sprite that "could be there." Setting + the sprite opacity is usually how you do that. One warning, however. The opacity value takes effect the + next time it is drawn. If the sprite is animating rapidly, it will take effect nearly emmediately. If + it is not animating, not moving, or just sitting there, then it may not take effect for quite some time. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public float Opacity { get; set; }

    Property Value

    Type: Single
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/92b04460-74f1-c388-f3ac-ea510ffc4e06.htm b/SpriteLibrary/Doc/Help/html/92b04460-74f1-c388-f3ac-ea510ffc4e06.htm new file mode 100644 index 0000000..6c1a29d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/92b04460-74f1-c388-f3ac-ea510ffc4e06.htm @@ -0,0 +1,12 @@ +SpriteController Fields
    SpriteController Fields

    The SpriteController type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldOptimizeForLargeSpriteImages
    + If your sprite images need substantial growing or shrinking when displayed, you can try setting this to "true" + to see if it makes it run any faster. What it does is to resize the image once, and keep a cached copy of that + image at that size. If you use the same sprite, but with different sizes, setting this to "True" may actually slow + down the game instead of speeding it up. +
    Public fieldRandomNumberGenerator
    + Since everything needs a random number generator, we make one that should be accessible throughout your program. +
    Public fieldCode exampleSpriteComparisonDelegate
    + Allow the sprite sort-method to be overridden. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/92e90a8d-e5eb-daea-2804-b99254f25433.htm b/SpriteLibrary/Doc/Help/html/92e90a8d-e5eb-daea-2804-b99254f25433.htm new file mode 100644 index 0000000..e3bd99c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/92e90a8d-e5eb-daea-2804-b99254f25433.htm @@ -0,0 +1,7 @@ +SpriteAdjustmentRatio.width_ratio Field
    SpriteAdjustmentRatiowidth_ratio Field
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double width_ratio

    Field Value

    Type: Double
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/93aee3f0-fb9a-e628-9224-0128a91d363a.htm b/SpriteLibrary/Doc/Help/html/93aee3f0-fb9a-e628-9224-0128a91d363a.htm new file mode 100644 index 0000000..268365b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/93aee3f0-fb9a-e628-9224-0128a91d363a.htm @@ -0,0 +1,12 @@ +Sprite.ChangeAnimationSpeed Method
    SpriteChangeAnimationSpeed Method
    + Change the animation speed of a particular animation. This looks at the first frame + and compares that frame to the speed specified. It adjusts all the animations by the + same percentage. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ChangeAnimationSpeed(
    +	int WhichAnimation,
    +	int newSpeed
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The integer representing the animation to change
    newSpeed
    Type: SystemInt32
    The speed in milliseconds for the new animation
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm b/SpriteLibrary/Doc/Help/html/9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm new file mode 100644 index 0000000..3b2ab3e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9469b7cf-55ee-5c2e-feb7-01c7e23a6350.htm @@ -0,0 +1,10 @@ +SpriteController.ReturnPictureBoxAdjustedPoint Method
    SpriteControllerReturnPictureBoxAdjustedPoint Method
    + This does the reverse of an adjusted point. It takes a point on the image and + transforms it to one on the PictureBox +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point ReturnPictureBoxAdjustedPoint(
    +	Point LocationOnImage
    +)

    Parameters

    LocationOnImage
    Type: System.DrawingPoint
    A point on the image, using the x and y pixels on the image

    Return Value

    Type: Point
    A location that can be used on the picture-box, taking into consideration the image being stretched.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9474d6c2-30d9-a39b-3c10-b50286f93813.htm b/SpriteLibrary/Doc/Help/html/9474d6c2-30d9-a39b-3c10-b50286f93813.htm new file mode 100644 index 0000000..9415da8 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9474d6c2-30d9-a39b-3c10-b50286f93813.htm @@ -0,0 +1,9 @@ +Sprite.IsPaused Method
    SpriteIsPaused Method
    + Ask if the sprite is paused using the specified sprite type (default is PauseAll) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool IsPaused(
    +	SpritePauseType What = SpritePauseType.PauseAll
    +)

    Parameters

    What (Optional)
    Type: SpriteLibrarySpritePauseType
    The spritePauseType to see if the sprite is paused with

    Return Value

    Type: Boolean
    True if the sprite is set to pause the specified item, false if not
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/96b717e2-d860-aa86-3760-d39620a2bb31.htm b/SpriteLibrary/Doc/Help/html/96b717e2-d860-aa86-3760-d39620a2bb31.htm new file mode 100644 index 0000000..c85b791 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/96b717e2-d860-aa86-3760-d39620a2bb31.htm @@ -0,0 +1,9 @@ +Sprite.SpriteIntersectsRectangle Method
    SpriteSpriteIntersectsRectangle Method
    + Check to see if the specified rectangle overlaps with the sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteIntersectsRectangle(
    +	Rectangle target
    +)

    Parameters

    target
    Type: System.DrawingRectangle
    The rectangle we are looking to see if we hit

    Return Value

    Type: Boolean
    True if the rectangle overlaps the sprite rectabgle
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm b/SpriteLibrary/Doc/Help/html/98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm new file mode 100644 index 0000000..ca7fc7f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/98f8bf30-d3ab-5f86-9fbf-9f76df20f2e6.htm @@ -0,0 +1,10 @@ +Sprite Constructor (SpriteController, Image)
    Sprite Constructor (SpriteController, Image)
    + Generate a new single-frame sprite from the specified image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	SpriteController Controller,
    +	Image SpriteImage
    +)

    Parameters

    Controller
    Type: SpriteLibrarySpriteController
    The sprite controller that manages this sprite
    SpriteImage
    Type: System.DrawingImage
    The image we pull the animation from
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/995741fd-f6ea-f11e-ee46-c88de9307e8a.htm b/SpriteLibrary/Doc/Help/html/995741fd-f6ea-f11e-ee46-c88de9307e8a.htm new file mode 100644 index 0000000..bf89061 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/995741fd-f6ea-f11e-ee46-c88de9307e8a.htm @@ -0,0 +1,9 @@ +Sprite.SpriteCanMoveOnPictureBox Method
    SpriteSpriteCanMoveOnPictureBox Method
    + Return true if the sprite can go to this point and still be on the drawing-board. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteCanMoveOnPictureBox(
    +	Point newpoint
    +)

    Parameters

    newpoint
    Type: System.DrawingPoint
    The point, given in pixels and corresponding to pixels on the picturebox

    Return Value

    Type: Boolean
    true or false
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm b/SpriteLibrary/Doc/Help/html/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm new file mode 100644 index 0000000..cd2798e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9c6cb5e5-0054-eab6-66d9-e6e0c1e8c444.htm @@ -0,0 +1,7 @@ +SpriteAdjustmentRatio Fields
    SpriteAdjustmentRatio Fields

    The SpriteAdjustmentRatio type exposes the following members.

    Fields
    +   + NameDescription
    Public fieldheight_ratio
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +
    Public fieldwidth_ratio
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9d686d62-c22c-20ec-7455-b4adc8070b8c.htm b/SpriteLibrary/Doc/Help/html/9d686d62-c22c-20ec-7455-b4adc8070b8c.htm new file mode 100644 index 0000000..8074a30 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9d686d62-c22c-20ec-7455-b4adc8070b8c.htm @@ -0,0 +1,15 @@ +Sprite.AddAnimation Method (Image, Int32, Int32)
    SpriteAddAnimation Method (Image, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Image SpriteImage,
    +	int width,
    +	int height
    +)

    Parameters

    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    width
    Type: SystemInt32
    The width of each frame
    height
    Type: SystemInt32
    The height of each frame
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9d9cf5a5-3349-bfae-7d39-41082644a49e.htm b/SpriteLibrary/Doc/Help/html/9d9cf5a5-3349-bfae-7d39-41082644a49e.htm new file mode 100644 index 0000000..d8829ca --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9d9cf5a5-3349-bfae-7d39-41082644a49e.htm @@ -0,0 +1,9 @@ +SpriteController.BackgroundImage Property
    SpriteControllerBackgroundImage Property
    + The Background Image on which the sprites are drawn. This image ends up having + sprite parts on it. The OriginalImage is the version that is clean. Use + ReplaceOriginalImage to replace the background Image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Image BackgroundImage { get; }

    Property Value

    Type: Image
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm b/SpriteLibrary/Doc/Help/html/9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm new file mode 100644 index 0000000..6b809f1 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/9e0d8841-7f6a-63b2-c5fb-5ba6ffa85436.htm @@ -0,0 +1,13 @@ +Sprite.SpriteAtPictureBoxPoint Method
    SpriteSpriteAtPictureBoxPoint Method
    + Return true or false, asking if the specifiec sprite is at the point on the picturebox. + You can use this with a mouse-click to see if you are clicking on a sprite. Use the + SpriteCollisionMethod "transparent" to see if you have clicked on an actual pixel of the + sprite instead of just within the sprite rectangle. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteAtPictureBoxPoint(
    +	Point location,
    +	SpriteCollisionMethod method = SpriteCollisionMethod.rectangle
    +)

    Parameters

    location
    Type: System.DrawingPoint
    The x and y location in ImageBox coordinates.
    method (Optional)
    Type: SpriteLibrarySpriteCollisionMethod
    The method of determining if the sprite is at that position

    Return Value

    Type: Boolean
    True if the sprite is at the specified location, false if it is not
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/a50146be-5b11-1554-db6f-817ea76b9343.htm b/SpriteLibrary/Doc/Help/html/a50146be-5b11-1554-db6f-817ea76b9343.htm new file mode 100644 index 0000000..65578ee --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/a50146be-5b11-1554-db6f-817ea76b9343.htm @@ -0,0 +1,16 @@ +Sprite.AddAnimation Method (Image, Int32, Int32, Int32)
    SpriteAddAnimation Method (Image, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Image SpriteImage,
    +	int width,
    +	int height,
    +	int duration
    +)

    Parameters

    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    width
    Type: SystemInt32
    The width of each frame
    height
    Type: SystemInt32
    The height of each frame
    duration
    Type: SystemInt32
    The time in milliseconds we use for each frame
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/a5292253-7fbd-5dfa-819f-1d67d27580d6.htm b/SpriteLibrary/Doc/Help/html/a5292253-7fbd-5dfa-819f-1d67d27580d6.htm new file mode 100644 index 0000000..6355d22 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/a5292253-7fbd-5dfa-819f-1d67d27580d6.htm @@ -0,0 +1,10 @@ +SpriteController.NameSprite Method
    SpriteControllerNameSprite Method
    + Find the specified Sprite in the controller and change its name to the specified string. + You can do the same thing with Sprite.SetName(Name)

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void NameSprite(
    +	Sprite What,
    +	string Name
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The Sprite to find
    Name
    Type: SystemString
    The string to change the name to
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/a8864de9-4275-a608-f5b0-26d4b313967d.htm b/SpriteLibrary/Doc/Help/html/a8864de9-4275-a608-f5b0-26d4b313967d.htm new file mode 100644 index 0000000..89f046b --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/a8864de9-4275-a608-f5b0-26d4b313967d.htm @@ -0,0 +1,7 @@ +SpriteAdjustmentRatio.height_ratio Field
    SpriteAdjustmentRatioheight_ratio Field
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double height_ratio

    Field Value

    Type: Double
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/abfab841-a96c-b22d-7cd8-fec3aba92510.htm b/SpriteLibrary/Doc/Help/html/abfab841-a96c-b22d-7cd8-fec3aba92510.htm new file mode 100644 index 0000000..b6b1b3c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/abfab841-a96c-b22d-7cd8-fec3aba92510.htm @@ -0,0 +1,205 @@ +Sprite Methods
    Sprite Methods

    The Sprite type exposes the following members.

    Methods
    +   + NameDescription
    Public methodAddAnimation(Image)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Size)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Image, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Int32)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand. +
    Public methodAddAnimation(Image, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Int32, Boolean, Boolean)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand using the MirrorHorizontally or MirrorVertically booleans. +
    Public methodAddAnimation(Image, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAddAnimation(Point, Image, Int32, Int32, Int32, Int32)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +
    Public methodAnimateJustAFewTimes
    + Start a new animation. It will complete the animation the number of times you specify. + For example, if your sprite is walking, and one animation is one step, specifying 4 here + will result in your sprite taking 4 steps and then the animation stops. You will want + to make sure you are checking for when the animation stops, using the SpriteAnimationComplete event, + checking the Sprite.AnimationDone flag. +
    Public methodAnimateOnce
    + Start a new animation, but do it just once. You can use AnimateJustAFewTimes(1) to the same effect. + Or, you can use AnimateJustAFewTimes with a different number. The SpriteAnimationComplete event will + fire off when the animation completes. The variable, Sprite.AnimationDone will be true once the + animation finishes animating. +
    Public methodCancelMoveTo
    + Cancel a MoveTo command. The sprite will stop moving, and all the waypoints will be removed. +
    Public methodChangeAnimation
    + Start a new animation index from scratch +
    Public methodChangeAnimationSpeed
    + Change the animation speed of a particular animation. This looks at the first frame + and compares that frame to the speed specified. It adjusts all the animations by the + same percentage. +
    Public methodChangeFrameAnimationSpeed
    + Change the animation speed of a specific frame. Beware. This affects every sprite using this frame +
    Public methodCheckSpriteHitsSprite
    + Check to see if two sprites hit each-other. The sprite collision methods are + not all programmed in. +
    Public methodConvertDegreesToRadians
    + Convert a number from degrees to radians. +
    Public methodConvertRadiansToDegrees
    + Convert a number from radians to degrees. +
    Public methodDestroy
    + Tell the sprite to kill itself. It will erase itself and then + be removed from the spritelist. Then it will be gone forever. +
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetAnimationSpeed
    + Return the animation speed of this particualar animation of the sprite. +
    Public methodGetFrameAnimationSpeed
    + Get the animation speed of a single frame. +
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetImage
    + return the current image frame. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Public methodGetImage(Int32, Int32)
    + return the frame for the given index. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Public methodGetSpriteBaseImageCenter
    + Return the centerpoint of the sprite, as found on the background image +
    Public methodGetSpriteDegrees
    + Get the direction that the sprite is traveling in in degrees. You may want to + use Math.Round on the results. The value returned is usually just a tiny bit off + from what you set it with. For example, if you set the sprite movement direction + to be 270 degrees (down), this function may return it as 269.999992. Rounding the + number will give it back to you at probably the same direction you set it as. +
    Public methodGetSpritePictureboxCenter
    + Return the centerpoint of the sprite, as found on the picturebox +
    Public methodGetSpriteRadans
    + Returns the direction the sprite is currently traveling, using Radians. +
    Public methodGetSpriteVector
    + Return the current vector that the sprite is moving along +
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodHideSprite
    + Remove the sprite from the field. This does not destroy the sprite. It simply removes it from action. + Use UnhideSprite to show it again. +
    Public methodIsPaused
    + Ask if the sprite is paused using the specified sprite type (default is PauseAll) +
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodMoveTo(ListPoint)
    + Tell the sprite to move towards each point in turn. The sprite will move in a straight line until the first point. + From there it moves to the next point, until it has reached the last point. Every time it reaches a point, the + SpriteArrivedAtWaypoint event is triggered. When it reaches the final point in the list, the SpriteArrivedAtEndPoint + event is triggered. While the sprite is moving, the SpriteReachedEndPoint attribute is set to false. When it has + arrived, it is set to true. +
    Public methodMoveTo(Point)
    + Tell the Sprite to move towards a destination. You need to give the sprite a MovementSpeed + and tell the sprite that it can automatically move. But the sprite will begin a journey towards + that point at the MovementSpeed you have set. When it gets to the point, the SpriteArrivedAtEndPoint event + will fire off. Also, the SpriteReachedEnd bool will be true. +
    Public methodMoveTo(Sprite)
    + Move to where the destination sprite currently is at. This is a dumb move. It does not take into + consideration the movement direction of the destination sprite. So the moving sprite does need to be + moving a bit faster than the sprite you are trying to hit for it to do so. +
    Public methodPause
    + Pause the sprite. We can pause just the animation (and still let it move), pause movement (and let it animate), or pause everything. +
    Public methodPutBaseImageLocation(Point)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Public methodPutBaseImageLocation(Double, Double)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Public methodPutPictureBoxLocation
    + Put the Sprite at a specified location, using the dimentions of the PictureBox. + You want to use this if you got your X/Y position from a mouse-click. Otherwise, + this is the harder way to track things, particularly if your window can resize. Use + PutBaseImageLocation instead. +
    Public methodRecalcPictureBoxLocation
    + Done when the box resizes. We need to recompute the picturebox location. The resize function + automatically calls this. You should never need to do so. +
    Public methodReplaceImage
    + Replace a sprite image. It will replace the current frame unless you specify both an animation + and the frame within the animation you wish to replace. Warning: This replaces the image_frame + for every sprite that uses that is based off the same image. +
    Public methodReturnAdjustmentRatio
    + Taking into consideration how the sprite is stretched or shrunk, it + returns a SpriteAdjustmentRatio that can be used to work with the sprite + itself. +
    Public methodSendToBack
    + Make the sprite go behind all other sprites +
    Public methodSendToFront
    + Make the sprite show up in front of all other sprites. +
    Public methodSetName
    + Give this sprite a name. This way we can make a duplicate of it by specifying the name +
    Public methodSetSize
    + Resize the sprite using the base image coordinates. The width and height specified + are relative to the size of the background image, not the picturebox. +
    Public methodSetSpriteDirection
    + Set the sprite direction using a vector. The vector may contain + a speed as well as the movement delta (amount of x shift, and amount + of y shift.) If so, this function may also affect the movement speed + Most people prefer to use SetSpriteDirectionDegrees instead of using + vectors. +
    Public methodSetSpriteDirectionDegrees
    + Given a "degree" (from 0 to 360, set the direction + that the sprite moves automatically. 0 is right, 90 is up, 180 is left + and 270 is down. +
    Public methodSetSpriteDirectionRadians
    + Set the sprite direction using Radians. Most people do not want to use this. + Use SetSpriteDirectionDegrees instead unless you like math and know what you + are doing with Radians. +
    Public methodSetSpriteDirectionToPoint
    + Sets the Sprite Moving towards a given point. You are responsible to do something with it once it gets there. + If you want it to automatically stop upon reaching it, use MoveTo instead. Actually, the MoveTo function works + a lot better than this one. Because of integer rounding and a few other things, this function is a little + bit imprecise. If you send it towards a point, it will go in that general direction. The MoveTo function + will perpetually recalculate its way to the destination point and actually reach that point. SetSpriteDirectionToPoint + will sort-of head in the direction of the point. But MoveTo will go to that point. +
    Public methodSpriteAdjustedPoint
    + Because sprites are scaled (shrunk or stretched), this function finds the point + within the sprite that is specified by the location. this function is used by + a number of internal processes, but may be useful to you. But probably not. +
    Public methodSpriteAtImagePoint
    + Check to see if the sprite exists at the point specified. The point given is + in coordinates used by the image (not the PictureBox, use SpriteAtPictureBox for that) +
    Public methodSpriteAtPictureBoxPoint
    + Return true or false, asking if the specifiec sprite is at the point on the picturebox. + You can use this with a mouse-click to see if you are clicking on a sprite. Use the + SpriteCollisionMethod "transparent" to see if you have clicked on an actual pixel of the + sprite instead of just within the sprite rectangle. +
    Public methodSpriteCanMoveOnImage
    + Return true if the sprite can go to this point and still be on the drawing-board. +
    Public methodSpriteCanMoveOnPictureBox
    + Return true if the sprite can go to this point and still be on the drawing-board. +
    Public methodSpriteIntersectsRectangle
    + Check to see if the specified rectangle overlaps with the sprite. +
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Public methodUnhideSprite
    + Make the sprite reappear. If you have not positioned it yet, it will show up at the top corner. It is best to only + use this when you have hidden it using HideSprite +
    Public methodUnPause
    + unpause the sprite. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm b/SpriteLibrary/Doc/Help/html/acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm new file mode 100644 index 0000000..a05ce55 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/acb35a6f-c89a-3a7d-146d-b85ccf68d8aa.htm @@ -0,0 +1,8 @@ +Sprite.SpriteHitsSprite Event
    SpriteSpriteHitsSprite Event
    + This happens when two sprites hit each-other. The SpriteEventArgs that is returned + contains the sprite that this sprite hits. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteHitsSprite

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm b/SpriteLibrary/Doc/Help/html/acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm new file mode 100644 index 0000000..e5d0ccd --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/acf8f1b8-170d-0fa9-1ac9-41a086d97046.htm @@ -0,0 +1,8 @@ +Sprite.MouseEnterTransparent Event
    SpriteMouseEnterTransparent Event
    + When the mouse moves over a non-transparent portoin of the sprite. Use this for a menu, when you want the + menu item to glow when the mouse is over the menu item sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseEnterTransparent

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm b/SpriteLibrary/Doc/Help/html/ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm new file mode 100644 index 0000000..65d120f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ad1a395a-bbd4-d507-aa4d-1419f9b7df08.htm @@ -0,0 +1,8 @@ +SpriteEventArgs.Cancel Field
    SpriteEventArgsCancel Field
    + Used primarily in the CheckBeforeMove event. If you set cancel to true, then the move fails. + You can use this to keep a Sprite from going places where it ought not to go. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool Cancel

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/adaddf64-5e6e-447b-5d81-c38398216201.htm b/SpriteLibrary/Doc/Help/html/adaddf64-5e6e-447b-5d81-c38398216201.htm new file mode 100644 index 0000000..ee1e86d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/adaddf64-5e6e-447b-5d81-c38398216201.htm @@ -0,0 +1,13 @@ +Sprite.PutBaseImageLocation Method
    SpritePutBaseImageLocation Method
    Overload List
    +   + NameDescription
    Public methodPutBaseImageLocation(Point)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Public methodPutBaseImageLocation(Double, Double)
    + Put the Sprite at a specified location, using the dimentions of the BackgroundImage. + Unless you are using coordinates you have gotten from a mouse-click, this is how you want + to place a Sprite somewhere. It is the easiest way to track things. But, if you are + doing something using mouse-click coordinates, you want to use PutPictureBoxLocation +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/adc84477-1eb3-bb14-ee09-0525268c45f4.htm b/SpriteLibrary/Doc/Help/html/adc84477-1eb3-bb14-ee09-0525268c45f4.htm new file mode 100644 index 0000000..71af82a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/adc84477-1eb3-bb14-ee09-0525268c45f4.htm @@ -0,0 +1,7 @@ +Sprite.CancelMoveTo Method
    SpriteCancelMoveTo Method
    + Cancel a MoveTo command. The sprite will stop moving, and all the waypoints will be removed. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void CancelMoveTo()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm b/SpriteLibrary/Doc/Help/html/ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm new file mode 100644 index 0000000..e4a9259 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ae4a57de-4763-c9cb-c9e3-c6e186296fd8.htm @@ -0,0 +1,8 @@ +Sprite.SpriteReachedEndPoint Property
    SpriteSpriteReachedEndPoint Property
    + This is true unless we are using MoveTo(point) or MoveTo(list of points) to tell the sprite to move + from one place to the next. This boolean tells us if it has finished or not. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteReachedEndPoint { get; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm b/SpriteLibrary/Doc/Help/html/ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm new file mode 100644 index 0000000..efee2f5 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ae6c1c82-0519-4751-0b6d-f264c484e4cb.htm @@ -0,0 +1,7 @@ +SpriteController.DuplicateSprite Method
    SpriteControllerDuplicateSprite Method
    Overload List
    +   + NameDescription
    Public methodCode exampleDuplicateSprite(String)
    + Find a sprite that has been named with the specified name. Then duplicate that sprite +
    Public methodDuplicateSprite(Sprite)
    + Make a duplicate of the specified sprite. The duplicate does not yet have a location. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/aebe0cd6-1499-7da2-2f96-c86d84189b58.htm b/SpriteLibrary/Doc/Help/html/aebe0cd6-1499-7da2-2f96-c86d84189b58.htm new file mode 100644 index 0000000..0444a39 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/aebe0cd6-1499-7da2-2f96-c86d84189b58.htm @@ -0,0 +1,13 @@ +Sprite.SetSpriteDirection Method
    SpriteSetSpriteDirection Method
    + Set the sprite direction using a vector. The vector may contain + a speed as well as the movement delta (amount of x shift, and amount + of y shift.) If so, this function may also affect the movement speed + Most people prefer to use SetSpriteDirectionDegrees instead of using + vectors. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetSpriteDirection(
    +	Vector newVector
    +)

    Parameters

    newVector
    Type: System.WindowsVector
    A vector
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm b/SpriteLibrary/Doc/Help/html/af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm new file mode 100644 index 0000000..6815c26 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/af7fceb3-a35e-b016-3955-696b3a3c7a7e.htm @@ -0,0 +1,10 @@ +SpriteController.RegisterKeyDownFunction Method
    SpriteControllerRegisterKeyDownFunction Method
    + If you want to have a KeyDown function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void RegisterKeyDownFunction(
    +	SpriteKeyEventHandler Func
    +)

    Parameters

    Func
    Type: SpriteLibrarySpriteKeyEventHandler
    The function to set
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/af9edc83-1d26-349b-8105-6064a540e2c7.htm b/SpriteLibrary/Doc/Help/html/af9edc83-1d26-349b-8105-6064a540e2c7.htm new file mode 100644 index 0000000..3e09b35 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/af9edc83-1d26-349b-8105-6064a540e2c7.htm @@ -0,0 +1,8 @@ +Sprite.GetVisibleSize Property
    SpriteGetVisibleSize Property
    + Return the relative size of the Sprite in relation to the PictureBox. If the box has been + stretched or shrunk, that affects the visible size of the sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Size GetVisibleSize { get; }

    Property Value

    Type: Size
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/b29c2176-174b-e620-0e33-9a22730ad05f.htm b/SpriteLibrary/Doc/Help/html/b29c2176-174b-e620-0e33-9a22730ad05f.htm new file mode 100644 index 0000000..9d4991e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/b29c2176-174b-e620-0e33-9a22730ad05f.htm @@ -0,0 +1,9 @@ +Sprite.GetImage Method
    SpriteGetImage Method
    Overload List
    +   + NameDescription
    Public methodGetImage
    + return the current image frame. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Public methodGetImage(Int32, Int32)
    + return the frame for the given index. Warning: If you write to this image, it will + affect all sprites using this frame. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/b3e934e2-1ddf-35e3-0995-3b555539f33f.htm b/SpriteLibrary/Doc/Help/html/b3e934e2-1ddf-35e3-0995-3b555539f33f.htm new file mode 100644 index 0000000..b57014d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/b3e934e2-1ddf-35e3-0995-3b555539f33f.htm @@ -0,0 +1,10 @@ +SpriteController.RegisterKeyUpFunction Method
    SpriteControllerRegisterKeyUpFunction Method
    + If you want to have a KeyUp function that is triggered by a keypress function, add the event here. + The event should have the parameters (object sender, KeyEventArgs e) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void RegisterKeyUpFunction(
    +	SpriteKeyEventHandler Func
    +)

    Parameters

    Func
    Type: SpriteLibrarySpriteKeyEventHandler
    The function to set
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/b5c75d58-f132-f3ff-217f-e69b252db748.htm b/SpriteLibrary/Doc/Help/html/b5c75d58-f132-f3ff-217f-e69b252db748.htm new file mode 100644 index 0000000..23faae0 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/b5c75d58-f132-f3ff-217f-e69b252db748.htm @@ -0,0 +1,9 @@ +SpriteController.SpriteForwards Method
    SpriteControllerSpriteForwards Method
    + Change the display order of the specified sprite so it is more likely to go in front of other sprites +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SpriteForwards(
    +	Sprite What
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The sprite to send behind all other sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/b78d4878-d301-191f-9c53-4f41d3e937e6.htm b/SpriteLibrary/Doc/Help/html/b78d4878-d301-191f-9c53-4f41d3e937e6.htm new file mode 100644 index 0000000..3366f63 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/b78d4878-d301-191f-9c53-4f41d3e937e6.htm @@ -0,0 +1,18 @@ +SpriteCollisionMethod Enumeration
    SpriteCollisionMethod Enumeration
    + The various types of collisions a sprite can have. Currently only rectangle works. The other types were added when I + thought the different types of collision types were needed. Someday we may add these if we find they are useful, or if + someone else decides they want to help program the SpriteLibrary. These values are primarily used in Sprite Events +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public enum SpriteCollisionMethod
    Members
    +   + Member nameValueDescription
    rectangle0 + Checks if the two rectangles that contain the sprites overlap. Each rectangle is the starting location of the sprite + (top left) with the sprite width, and height marking the other sides of the rectangle. +
    circle1 + Draws a circle (ellipse) inside the sprite rectangles and see if those ellipses overlap +
    transparency2 + Check to see if nontransparent portions of a sprite collide. Not working. +
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/b9f05ef6-f80c-5676-1eca-d73833dca177.htm b/SpriteLibrary/Doc/Help/html/b9f05ef6-f80c-5676-1eca-d73833dca177.htm new file mode 100644 index 0000000..4fbc213 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/b9f05ef6-f80c-5676-1eca-d73833dca177.htm @@ -0,0 +1,7 @@ +SpriteController.RandomNumberGenerator Field
    SpriteControllerRandomNumberGenerator Field
    + Since everything needs a random number generator, we make one that should be accessible throughout your program. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Random RandomNumberGenerator

    Field Value

    Type: Random
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm b/SpriteLibrary/Doc/Help/html/ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm new file mode 100644 index 0000000..652e5a9 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ba26c365-f8d2-0a86-b3b6-1cfab946b3da.htm @@ -0,0 +1,8 @@ +Sprite.RecalcPictureBoxLocation Method
    SpriteRecalcPictureBoxLocation Method
    + Done when the box resizes. We need to recompute the picturebox location. The resize function + automatically calls this. You should never need to do so. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void RecalcPictureBoxLocation()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ba843001-e657-41e8-7c66-c2473781ed40.htm b/SpriteLibrary/Doc/Help/html/ba843001-e657-41e8-7c66-c2473781ed40.htm new file mode 100644 index 0000000..c8801f7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ba843001-e657-41e8-7c66-c2473781ed40.htm @@ -0,0 +1,76 @@ +SpriteController.DoTick Event
    SpriteControllerDoTick Event
    + The function called by the timer every 10 millisecods This is usually where you will do the majority of the work. + You can define this manually, or when you instantiate the SpriteController

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event EventHandler DoTick

    Value

    Type: SystemEventHandler
    Examples
    + The Sprite controller uses a System.Windows.Forms.Timer. This timer is notoriously un-precise, but it is very + easy to set up initially. It tries to fire off every 10 milliseconds, but it can fire off incredibly + slowly if you have long pieces of code; the DoTick function needs to finish before it can start again. You want all your + functions to run as quickly as possible to avoid things looking jerky. + Most programs you will make using the sprite library will begin by tapping into the DoTick Event. + Every time the sprite controller is ready to pass control back to your program, it will call + the DoTick event. You want to see if you should be doing anything, and then exiting the do-tick function. +
    C#
    public partial class ShootingFieldForm : Form
    +{
    +    public ShootingFieldForm()
    +    {
    +        InitializeComponent();
    +        MainDrawingArea.BackgroundImage = Properties.Resources.Background;
    +        MainDrawingArea.BackgroundImageLayout = ImageLayout.Stretch;
    +        MySpriteController = new SpriteController(MainDrawingArea, CheckForKeyPress);
    +    }
    +
    +    private void CheckForKeyPress(object sender, EventArgs e)
    +    {
    +       bool left = false;
    +       bool right = false;
    +       bool space = false;
    +       bool didsomething = false;
    +       TimeSpan duration = DateTime.Now - LastMovement;
    +       if (duration.TotalMilliseconds < 100)
    +           return;
    +       LastMovement = DateTime.Now;
    +       if (MySpriteController.IsKeyPressed(Keys.A) || MySpriteController.IsKeyPressed(Keys.Left))
    +       {
    +           left = true;
    +       }
    +       if (MySpriteController.IsKeyPressed(Keys.D)||MySpriteController.IsKeyPressed(Keys.Right))
    +       {
    +           right = true;
    +       }
    +       if (left && right) return; //do nothing if we conflict
    +       if (left)
    +       {               
    +           if (LastDirection != MyDir.left)
    +           {
    +               Spaceship.SetSpriteDirectionDegrees(180);
    +               //We want to only change animation once.  Every time we change
    +               //the animation, it starts at the first frame again.
    +               Spaceship.ChangeAnimation(0);
    +               LastDirection = MyDir.left;
    +           }
    +           didsomething = true;
    +           Spaceship.MovementSpeed = 15;
    +           Spaceship.AutomaticallyMoves = true;
    +       }
    +       if (right)
    +       {                
    +           if (LastDirection != MyDir.right)
    +           {
    +               Spaceship.SetSpriteDirectionDegrees(0);
    +               Spaceship.ChangeAnimation(0);
    +               LastDirection = MyDir.right;
    +           }
    +           didsomething = true;
    +           Spaceship.AutomaticallyMoves = true;
    +           Spaceship.MovementSpeed = 15;
    +       }
    +       if(!didsomething)
    +       {
    +           LastDirection = MyDir.stopped;
    +           //No keys pressed.  Stop moving
    +           Spaceship.MovementSpeed = 0;
    +       }
    +   }
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm b/SpriteLibrary/Doc/Help/html/bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm new file mode 100644 index 0000000..59d93fc --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bacd1b59-34a9-eb30-29b3-4fdc704a7b60.htm @@ -0,0 +1,13 @@ +Sprite Constructor (Sprite, Boolean)
    Sprite Constructor (Sprite, Boolean)
    + Create a Sprite that is based off of the specified sprite. Clone the Sprite except that + we set SpriteName = "" and OrigSpriteName = the OldSprite.SpriteName. That way we know that + the sprite was duplicated from the original, and we can still distinguish the original from + the duplicate. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	Sprite OldSprite,
    +	bool RetainName = false
    +)

    Parameters

    OldSprite
    Type: SpriteLibrarySprite
    The Sprite to make a copy of
    RetainName (Optional)
    Type: SystemBoolean
    If we want to set this sprite name to be that of the original. This is a terrible idea. Never do it.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bc474319-2c51-e93f-07e2-9728d609c563.htm b/SpriteLibrary/Doc/Help/html/bc474319-2c51-e93f-07e2-9728d609c563.htm new file mode 100644 index 0000000..47b1974 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bc474319-2c51-e93f-07e2-9728d609c563.htm @@ -0,0 +1,8 @@ +Sprite.Destroy Method
    SpriteDestroy Method
    + Tell the sprite to kill itself. It will erase itself and then + be removed from the spritelist. Then it will be gone forever. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void Destroy()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm b/SpriteLibrary/Doc/Help/html/bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm new file mode 100644 index 0000000..83027a2 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bcb29da5-8d8d-fa11-90ea-3a0cc73a0df0.htm @@ -0,0 +1,10 @@ +SpriteController.KeysPressed Method
    SpriteControllerKeysPressed Method
    + Return a list of all the keys that are currently pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Keys> KeysPressed()

    Return Value

    Type: ListKeys
    A List of Keys which are currently considered to be pressed.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bcdb40c8-478a-043c-5db0-393001600029.htm b/SpriteLibrary/Doc/Help/html/bcdb40c8-478a-043c-5db0-393001600029.htm new file mode 100644 index 0000000..5127d0a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bcdb40c8-478a-043c-5db0-393001600029.htm @@ -0,0 +1,83 @@ +Sprite Properties
    Sprite Properties

    The Sprite type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyAnimationCount
    + The number of animations this sprite has +
    Public propertyAnimationDone
    + Report whether or not the animation has been completed. When you tell a Sprite to AnimateOnce, + this will report "false" until the animation sequence has been finished. At that time, the value + will be "True." The tricky bit is that this is a boolean. If you have not told a sprite to + animate once, it will always return "false." If a sprite is paused, this returns "false." The only + time this returns "true" is when you tell a sprite to animate once, or animate a few times, and those + times have completed. At that time, this will report "True". If you have a sprite with only one frame, + it may not look like it is "animating", but it is. It is simply animating that one frame over and over. + So, AnimationDone reports false, unless you have told it to animate_once. +
    Public propertyAnimationIndex
    + Get or set the animation nimber. It is best to change the animation using ChangeAnimation. + It is safer. +
    Public propertyAutomaticallyMoves
    + Determine if the sprite automatically moves (you need to give it a direction [using one of the + SetSpriteDirection functions] and speed [MovementSpeed = X] also) +
    Public propertyBaseImageLocation
    + The sprite location as found on the base image. This is usually the easiest location to use. +
    Public propertyDestroying
    + If the Sprite is in the middle of being Destroyed, this is set to true. When a Sprite is + Destroyed, it needs to erase itself and do some house-cleaning before it actually vanishes. + During this time, you may not want to use it. It is always a good thing to verify a Sprite + is not in the middle of being destroyed before you do something important with it. To Destroy + a Sprite, use the Sprite.Destroy() function. +
    Public propertyFrameIndex
    + This is the frame of the current animation sequence. You can use this if you need to figure out what frame index + to resume something at, or something like that. +
    Public propertyGetSize
    + Return the size of the sprite in reference to the image on which it is drawn. To get the + size of the Sprite in relation to the PictureBox, use GetVisibleSize +
    Public propertyGetVisibleSize
    + Return the relative size of the Sprite in relation to the PictureBox. If the box has been + stretched or shrunk, that affects the visible size of the sprite. +
    Public propertyHasBeenDrawn
    + Report whether or not this Sprite has been drawn. If it has, then it needs to be erased at + some point in time. +
    Public propertyID
    + The Sprite ID as specified by the sprite controller. +
    Public propertyMovingToPoint
    + Tells us if we are in the process of doing a MoveTo operation. This boolean should be the + opposite of SpriteReachedEndpoint, but that boolean is poorly named. This is usually the easier + one to use. +
    Public propertyOpacity
    + Set the opacity of the sprite. The value should be between 0 and 1. 1 is solid, 0 is transparent. + Sometimes you want to drag a sprite around the map, or show a sprite that "could be there." Setting + the sprite opacity is usually how you do that. One warning, however. The opacity value takes effect the + next time it is drawn. If the sprite is animating rapidly, it will take effect nearly emmediately. If + it is not animating, not moving, or just sitting there, then it may not take effect for quite some time. +
    Public propertyPictureBoxLocation
    + The sprite location as found on the picture-box that this sprite is associated with. Used when dealing with mouse-clicks +
    Public propertyRotation
    + Change the rotation of the sprite, using degrees. 0 degrees is to the right. 90 is up. + 180 left, 270 down. But, if your sprite was drawn facing up, then rotating it 90 degrees + will have it pointing left. The angle goes counter-clockwise. The image will be scaled + such that it continues to fit within the rectangle that it was originally in. This results + in a little bit of shrinking at times, but you should rarely notice that. +
    Public propertySpriteName
    + The name of the sprite. Use SetSpriteName(Name) to change this name. Most Named sprites + are used to define what a sprite is. Once you have created a named sprite, you usually use + DuplicateSprite(String) to clone the sprite for use. The basic rule of thumb is + to load your sprites from images once, and name the initial sprites. Then, when you go to use + those sprites, get duplicates of them. The reason for this is because it takes more processing time to initially + create the sprites than it takes to duplicate them. +
    Public propertySpriteOriginName
    + Return the name of the sprite that this was duplicated from. A duplicated sprite will have + no name, but will have a SpriteOriginName. +
    Public propertySpriteReachedEndPoint
    + This is true unless we are using MoveTo(point) or MoveTo(list of points) to tell the sprite to move + from one place to the next. This boolean tells us if it has finished or not. +
    Public propertyVisibleHeight
    + The visible Height as seen in the PictureBox. It may be stretched, or shrunk from the actual + image size. +
    Public propertyVisibleWidth
    + The visible width as seen in the PictureBox. The Sprite may be stretched or shrunk from the + actual image size. +
    Public propertyZvalue
    + A number from 0 to 100. Default = 50. Higher numbers print on top of lower numbers. If you want a sprite to + always be drawn on top of other sprites, give it a number higher than 50. If you want a sprite to go under + other sprites, make its number lower than 50. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm b/SpriteLibrary/Doc/Help/html/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm new file mode 100644 index 0000000..e874733 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bdcfa83c-c4a7-49f3-4d49-2f865014aee6.htm @@ -0,0 +1,63 @@ +Sprite Events
    Sprite Events

    The Sprite type exposes the following members.

    Events
    +   + NameDescription
    Public eventCheckBeforeMove
    + This event fires off before a sprite is drawn. Use it if you have constraints. You + can change the location or cancel the move entirely. +
    Public eventClick
    + This event happens when someone clicks on the sprite (on the rectangle in which the sprite is). + If you want the event to fire off only when someone clicks on the visible part of the sprite, + use ClickTransparent instead. +
    Public eventClickTransparent
    + This event happens when someone clicks on the sprite (on the sprite image itself). + If the sprite is sometimes hidden, but you want the click to work even if it is not + visible at that instant, use Click instead. +
    Public eventMouseEnter
    + When the mouse moves over the sprite. Use this for a menu, when you want the menu item to glow when the + mouse is over the menu item sprite. +
    Public eventMouseEnterTransparent
    + When the mouse moves over a non-transparent portoin of the sprite. Use this for a menu, when you want the + menu item to glow when the mouse is over the menu item sprite. +
    Public eventMouseHover
    + This event happens when the mouse moves over the sprite, and then pauses. We use the hover timing from the + parent form. +
    Public eventMouseHoverTransparent
    + This event happens when the mouse moves over a non-transparent portion of the sprite, and then pauses. + We use the hover timing from the parent form. +
    Public eventMouseLeave
    + When the mouse moves off the sprite. Use this for a menu, when you want the menu item to stop glowing when + the mouse moves away from the menu item sprite. +
    Public eventMouseLeaveTransparent
    + When the mouse moves off the non-transparent portion of the sprite. Use this for a menu, when you want the + menu item to stop glowing when + the mouse moves away from the menu item sprite. +
    Public eventSpriteAnimationComplete
    + Only used when you tell an animation to animate once. At the end of the animation, + this function fires off. +
    Public eventSpriteArrivedAtEndPoint
    + An event for when you tell a Sprite to MoveTo(Point) a specific point, or, when you + tell the Sprite to MoveTo(list of points). When the Sprite has reached the final destination, + the Sprite fires off this event. +
    Public eventSpriteArrivedAtWaypoint
    + When you tell a sprite to MoveTo(list of points), this fires off every time it gets to + one of the points. When it gets to the final point, only the SpriteAtEndPoint event fires off. +
    Public eventSpriteBeingDestroyed
    + The Sprite has just been told to be destroyed. You might want to do some cleanup. + If you need to destroy some payload data, or tell something to cleanup after the sprite + this is where to do that. +
    Public eventSpriteChangesAnimationFrames
    + When the frame of an animation changes. If you want to have something happen every time + the foot of your monster comes down, when the swing of your sword is at certain points, etc. + Check to see that the Animaton and FrameIndex are what you expect them to be. +
    Public eventSpriteExitsPictureBox
    + This happens when the sprite has exited the picture box. Useful when you want to + keep sprites from traveling on forever after exiting. +
    Public eventSpriteHitsPictureBox
    + This happens when the sprite hits the border of the picture-box. + Useful for when you want to have shots explode when they hit the side. +
    Public eventSpriteHitsSprite
    + This happens when two sprites hit each-other. The SpriteEventArgs that is returned + contains the sprite that this sprite hits. +
    Public eventSpriteInitializes
    + This event happens right after the sprite is created. Use this to immediately set a + sprite to animate once or something like that. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bf10cc41-d9e2-52c5-0415-1083f0f55489.htm b/SpriteLibrary/Doc/Help/html/bf10cc41-d9e2-52c5-0415-1083f0f55489.htm new file mode 100644 index 0000000..98f8883 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bf10cc41-d9e2-52c5-0415-1083f0f55489.htm @@ -0,0 +1,10 @@ +SpriteController.IsKeyPressed Method
    SpriteControllerIsKeyPressed Method
    + Check to see if any keys are pressed. There is a small glitch with the + key-pressed system. If the form loses focus, and someone releases a key, the key-up is never + triggered. It is a good thing to ResetKeypressState() occasionally if you think your form may have + lost focus. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool IsKeyPressed()

    Return Value

    Type: Boolean
    True if a key is pressed, false if no keys are pressed.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/bf55ab7f-78c8-3879-b8f8-464dc203791e.htm b/SpriteLibrary/Doc/Help/html/bf55ab7f-78c8-3879-b8f8-464dc203791e.htm new file mode 100644 index 0000000..b54c4c7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/bf55ab7f-78c8-3879-b8f8-464dc203791e.htm @@ -0,0 +1,10 @@ +SpriteController.ChangeTickInterval Method
    SpriteControllerChangeTickInterval Method
    + Change the Tick Interval. By default, the spritecontroller does a tick every 10ms, which + is very fast. Some people may prefer it to happen less regularly. Must be > 5, and less than 1001 +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ChangeTickInterval(
    +	int newTickMilliseconds
    +)

    Parameters

    newTickMilliseconds
    Type: SystemInt32
    The new tick interval
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c0d47063-6820-3464-ed46-94ffd2329683.htm b/SpriteLibrary/Doc/Help/html/c0d47063-6820-3464-ed46-94ffd2329683.htm new file mode 100644 index 0000000..a9baaa4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c0d47063-6820-3464-ed46-94ffd2329683.htm @@ -0,0 +1,7 @@ +Sprite.SendToBack Method \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c2860c42-fc4c-78f8-7d32-195e74262434.htm b/SpriteLibrary/Doc/Help/html/c2860c42-fc4c-78f8-7d32-195e74262434.htm new file mode 100644 index 0000000..803cc06 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c2860c42-fc4c-78f8-7d32-195e74262434.htm @@ -0,0 +1,9 @@ +SpriteController.SpritesInImageRectangle Method
    SpriteControllerSpritesInImageRectangle Method
    + Return a list of all the sprites that intersect with the given background-image-based rectangle +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesInImageRectangle(
    +	Rectangle Location
    +)

    Parameters

    Location
    Type: System.DrawingRectangle
    The rectangle on the image we are trying to find

    Return Value

    Type: ListSprite
    A list of the sprites that have any portion of it inside the rectangle
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c2f3867b-b906-a526-c836-718da1546a78.htm b/SpriteLibrary/Doc/Help/html/c2f3867b-b906-a526-c836-718da1546a78.htm new file mode 100644 index 0000000..7904ee6 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c2f3867b-b906-a526-c836-718da1546a78.htm @@ -0,0 +1,9 @@ +Sprite.SpriteCanMoveOnImage Method
    SpriteSpriteCanMoveOnImage Method
    + Return true if the sprite can go to this point and still be on the drawing-board. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SpriteCanMoveOnImage(
    +	Point newpoint
    +)

    Parameters

    newpoint
    Type: System.DrawingPoint
    The point, given in pixels and corresponding to pixels on the background image

    Return Value

    Type: Boolean
    true or false
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm b/SpriteLibrary/Doc/Help/html/c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm new file mode 100644 index 0000000..235e041 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c39b03eb-911a-b0dc-fd7b-276ee464f6c7.htm @@ -0,0 +1,9 @@ +Sprite.MirrorHorizontally Field
    SpriteMirrorHorizontally Field
    + Flip the image when it gets printed. If your sprite is walking left, flipping it will + make it look like it is going right. + This works great for many things. But, if your program is gobbling memory or CPU, you may need to + consider using Sprite.AddAnimation

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool MirrorHorizontally

    Field Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm b/SpriteLibrary/Doc/Help/html/c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm new file mode 100644 index 0000000..781dc1a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c57680f5-fd0e-a4a6-05a0-3a42de94edb8.htm @@ -0,0 +1,10 @@ +SpriteController.Invalidate Method (Rectangle, Boolean)
    SpriteControllerInvalidate Method (Rectangle, Boolean)
    + Invalidate a rectangle that is specified in image coordinates +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void Invalidate(
    +	Rectangle ImageRectangle,
    +	bool QueueUpInvalidation = true
    +)

    Parameters

    ImageRectangle
    Type: System.DrawingRectangle
    A rectangle based on the image coordinates
    QueueUpInvalidation (Optional)
    Type: SystemBoolean
    Whether to do it now, or to queue it up for another time.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm b/SpriteLibrary/Doc/Help/html/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm new file mode 100644 index 0000000..90fe782 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c6c542de-2b1f-1086-b5b2-56b7e9a9525f.htm @@ -0,0 +1,14 @@ +SpriteController Properties
    SpriteController Properties

    The SpriteController type exposes the following members.

    Properties
    +   + NameDescription
    Public propertyBackgroundImage
    + The Background Image on which the sprites are drawn. This image ends up having + sprite parts on it. The OriginalImage is the version that is clean. Use + ReplaceOriginalImage to replace the background Image. +
    Public propertyOriginalImage
    + The Image from which the background is taken when we erase sprites. The BackgroundImage + is the image that contains images of the sprites as well as the background image. Use + ReplaceOriginalImage to replace this and the BackgroundImage. +
    Public propertySpriteCount
    + The count of all the sprites the controller knows about. This includes named + sprites, which may not be visible. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/c7991a63-f63c-20d8-0605-fab6e9f13392.htm b/SpriteLibrary/Doc/Help/html/c7991a63-f63c-20d8-0605-fab6e9f13392.htm new file mode 100644 index 0000000..615a71d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/c7991a63-f63c-20d8-0605-fab6e9f13392.htm @@ -0,0 +1,7 @@ +SpriteController.SpritesBasedOffAnything Method
    SpriteControllerSpritesBasedOffAnything Method
    + Return a list of all sprites which are not master sprites (which are duplicates of something) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesBasedOffAnything()

    Return Value

    Type: ListSprite
    A list of sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm b/SpriteLibrary/Doc/Help/html/cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm new file mode 100644 index 0000000..0dc2eaf --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/cd53c0db-02b1-e505-0dce-a7d4d7710d5c.htm @@ -0,0 +1,8 @@ +Sprite.VisibleWidth Property
    SpriteVisibleWidth Property
    + The visible width as seen in the PictureBox. The Sprite may be stretched or shrunk from the + actual image size. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int VisibleWidth { get; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm b/SpriteLibrary/Doc/Help/html/d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm new file mode 100644 index 0000000..9accf30 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d0e10a16-4614-56b2-3e21-ce841f26b3d8.htm @@ -0,0 +1,9 @@ +Sprite.GetAnimationSpeed Method
    SpriteGetAnimationSpeed Method
    + Return the animation speed of this particualar animation of the sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int GetAnimationSpeed(
    +	int WhichAnimation
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The animation we are looking at

    Return Value

    Type: Int32
    The speed which was set. The speed is calculated in pixels per amount of time. A higher number is faster than a lower number
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d20e5816-faf3-723d-5f2d-ebff462012f1.htm b/SpriteLibrary/Doc/Help/html/d20e5816-faf3-723d-5f2d-ebff462012f1.htm new file mode 100644 index 0000000..7e752d4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d20e5816-faf3-723d-5f2d-ebff462012f1.htm @@ -0,0 +1,29 @@ +SpriteController Constructor (PictureBox, EventHandler)
    SpriteController Constructor (PictureBox, EventHandler)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteController(
    +	PictureBox Area,
    +	EventHandler TimerTickMethod
    +)

    Parameters

    Area
    Type: System.Windows.FormsPictureBox
    The picturebox that the sprites will be drawn in
    TimerTickMethod
    Type: SystemEventHandler
    A function on the form that you want to have run every tick
    Examples
    + This is an example of a Form class that defines a SpriteController. The MainDrawingArea is a + PictureBox. While defining the SpriteController, we + are also setting a function used for the DoTick. event. +
    C#
    public partial class ShootingFieldForm : Form
    +{
    +    public ShootingFieldForm()
    +    {
    +        InitializeComponent();
    +        MainDrawingArea.BackgroundImage = Properties.Resources.Background;
    +        MainDrawingArea.BackgroundImageLayout = ImageLayout.Stretch;
    +        MySpriteController = new SpriteController(MainDrawingArea, CheckForKeyPress);
    +    }
    +
    +    private void CheckForKeyPress(object sender, EventArgs e)
    +    {
    +        //Do stuff here
    +    }
    +}
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d329fe20-e750-bf52-a75b-f2383bf1d35a.htm b/SpriteLibrary/Doc/Help/html/d329fe20-e750-bf52-a75b-f2383bf1d35a.htm new file mode 100644 index 0000000..c2679fe --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d329fe20-e750-bf52-a75b-f2383bf1d35a.htm @@ -0,0 +1,11 @@ +SpriteController.Pause Method
    SpriteControllerPause Method
    + Pause everything. It loops through all the sprites in the SpriteController and sends the specified + SpritePauseType to each one. Look at the documentation for SpritePauseType to determine which pause + type to use. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void Pause(
    +	SpritePauseType What = SpritePauseType.PauseAll
    +)

    Parameters

    What (Optional)
    Type: SpriteLibrarySpritePauseType
    The SpritePauseType to send all sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d416e051-269c-c343-aece-3682b87f3cbc.htm b/SpriteLibrary/Doc/Help/html/d416e051-269c-c343-aece-3682b87f3cbc.htm new file mode 100644 index 0000000..a20c341 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d416e051-269c-c343-aece-3682b87f3cbc.htm @@ -0,0 +1,14 @@ +Sprite.SetSpriteDirectionToPoint Method
    SpriteSetSpriteDirectionToPoint Method
    + Sets the Sprite Moving towards a given point. You are responsible to do something with it once it gets there. + If you want it to automatically stop upon reaching it, use MoveTo instead. Actually, the MoveTo function works + a lot better than this one. Because of integer rounding and a few other things, this function is a little + bit imprecise. If you send it towards a point, it will go in that general direction. The MoveTo function + will perpetually recalculate its way to the destination point and actually reach that point. SetSpriteDirectionToPoint + will sort-of head in the direction of the point. But MoveTo will go to that point. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetSpriteDirectionToPoint(
    +	Point ImagePointDestination
    +)

    Parameters

    ImagePointDestination
    Type: System.DrawingPoint
    The destination, based off a point on the background image, that we send the sprite towards.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d516c33b-29ef-9613-62fb-b6717264a32b.htm b/SpriteLibrary/Doc/Help/html/d516c33b-29ef-9613-62fb-b6717264a32b.htm new file mode 100644 index 0000000..aa062b4 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d516c33b-29ef-9613-62fb-b6717264a32b.htm @@ -0,0 +1,9 @@ +SpriteController.SpriteBackwards Method
    SpriteControllerSpriteBackwards Method
    + Change the display order of the specified sprite so it is more likely to go behind all other sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SpriteBackwards(
    +	Sprite What
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The sprite to send behind all other sprites
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm b/SpriteLibrary/Doc/Help/html/d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm new file mode 100644 index 0000000..8a14b22 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d5da80cc-4be3-3550-8bf9-5c460fbf2e15.htm @@ -0,0 +1,11 @@ +Sprite.GetSpriteDegrees Method
    SpriteGetSpriteDegrees Method
    + Get the direction that the sprite is traveling in in degrees. You may want to + use Math.Round on the results. The value returned is usually just a tiny bit off + from what you set it with. For example, if you set the sprite movement direction + to be 270 degrees (down), this function may return it as 269.999992. Rounding the + number will give it back to you at probably the same direction you set it as. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double GetSpriteDegrees()

    Return Value

    Type: Double
    A double (it has a decimal place) that represents the direction in degrees
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d7215876-6117-ce45-75a4-77dc00c386cd.htm b/SpriteLibrary/Doc/Help/html/d7215876-6117-ce45-75a4-77dc00c386cd.htm new file mode 100644 index 0000000..8339256 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d7215876-6117-ce45-75a4-77dc00c386cd.htm @@ -0,0 +1,8 @@ +Sprite.MouseHoverTransparent Event
    SpriteMouseHoverTransparent Event
    + This event happens when the mouse moves over a non-transparent portion of the sprite, and then pauses. + We use the hover timing from the parent form. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseHoverTransparent

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/d8964a64-57ec-3b0c-94b5-247707cd34e8.htm b/SpriteLibrary/Doc/Help/html/d8964a64-57ec-3b0c-94b5-247707cd34e8.htm new file mode 100644 index 0000000..cab31e9 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/d8964a64-57ec-3b0c-94b5-247707cd34e8.htm @@ -0,0 +1,8 @@ +Sprite.MouseHover Event
    SpriteMouseHover Event
    + This event happens when the mouse moves over the sprite, and then pauses. We use the hover timing from the + parent form. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler MouseHover

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm b/SpriteLibrary/Doc/Help/html/dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm new file mode 100644 index 0000000..99685e8 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/dace8c3a-8d35-4ae7-ddf8-26e59dc161ae.htm @@ -0,0 +1,11 @@ +SpriteController.CountSpritesBasedOff Method
    SpriteControllerCountSpritesBasedOff Method
    + Count the number of sprites that were duplicated from the sprite with the specified name. When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function will count those duplicated sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int CountSpritesBasedOff(
    +	string Name
    +)

    Parameters

    Name
    Type: SystemString
    The name to look for

    Return Value

    Type: Int32
    The count of sprites that are duplicates of the specified name
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm b/SpriteLibrary/Doc/Help/html/db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm new file mode 100644 index 0000000..ff02c8a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/db9f18b5-9947-5dfc-3174-39f4b1341b1c.htm @@ -0,0 +1,9 @@ +Sprite.Pause Method
    SpritePause Method
    + Pause the sprite. We can pause just the animation (and still let it move), pause movement (and let it animate), or pause everything. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void Pause(
    +	SpritePauseType What = SpritePauseType.PauseAll
    +)

    Parameters

    What (Optional)
    Type: SpriteLibrarySpritePauseType
    Which aspects of the sprite you want to pause.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm b/SpriteLibrary/Doc/Help/html/dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm new file mode 100644 index 0000000..dd24499 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/dd581cb5-2630-cc79-5fcb-24bfcb817e03.htm @@ -0,0 +1,23 @@ +SpriteController Constructor (PictureBox)
    SpriteController Constructor (PictureBox)
    + Create a sprite controller, specifying the picturebox on which the sprites + will be displayed. You want to have the PictureBox already defined, and a background image + already set for the PictureBox. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteController(
    +	PictureBox Area
    +)

    Parameters

    Area
    Type: System.Windows.FormsPictureBox
    The PictureBox. + that the sprites will be drawn in
    Examples
    + This is an example of a Form class that defines a SpriteController. The MainDrawingArea is a + PictureBox.
    C#
    public partial class ShootingFieldForm : Form
    +{
    +    public ShootingFieldForm()
    +    {
    +        InitializeComponent();
    +        MainDrawingArea.BackgroundImage = Properties.Resources.Background;
    +        MainDrawingArea.BackgroundImageLayout = ImageLayout.Stretch;
    +        MySpriteController = new SpriteController(MainDrawingArea);
    +    }
    +}
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm b/SpriteLibrary/Doc/Help/html/df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm new file mode 100644 index 0000000..7b0a7fd --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/df0fd1e8-eac8-4f10-7f09-baa6127f3752.htm @@ -0,0 +1,9 @@ +SpriteController.SoundIsFinished Method
    SpriteControllerSoundIsFinished Method
    + Check to see if the specified sound has finished playing +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool SoundIsFinished(
    +	string Name
    +)

    Parameters

    Name
    Type: SystemString
    The name of the sound

    Return Value

    Type: Boolean
    True if the sound is not currently playing. False if it is currently playing.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e058b656-39e3-5a55-4437-ee869ecbf35e.htm b/SpriteLibrary/Doc/Help/html/e058b656-39e3-5a55-4437-ee869ecbf35e.htm new file mode 100644 index 0000000..01a21e1 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e058b656-39e3-5a55-4437-ee869ecbf35e.htm @@ -0,0 +1,9 @@ +SpriteEventArgs.NewLocation Field
    SpriteEventArgsNewLocation Field
    + For the CheckBeforeMove event, newlocation will be the location the sprite is trying + to move to. You can adjust the point (move it left, right, up, down) and it will affect + the placement of the sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point NewLocation

    Field Value

    Type: Point
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e05efb85-3736-fa59-2720-a460b898048a.htm b/SpriteLibrary/Doc/Help/html/e05efb85-3736-fa59-2720-a460b898048a.htm new file mode 100644 index 0000000..3ba2e45 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e05efb85-3736-fa59-2720-a460b898048a.htm @@ -0,0 +1,13 @@ +SpriteController.SpritesBasedOff Method
    SpriteControllerSpritesBasedOff Method
    + Return all sprites that were based off a particular sprite name. + When you use a + SpriteController.DuplicateSprite(string) + command, it creates a new sprite that is based off the named sprite. This function returns a list of those + duplicated sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public List<Sprite> SpritesBasedOff(
    +	string SpriteName
    +)

    Parameters

    SpriteName
    Type: SystemString
    The sprite name to find

    Return Value

    Type: ListSprite
    A list of sprites that were based off the named sprite
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm b/SpriteLibrary/Doc/Help/html/e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm new file mode 100644 index 0000000..301dd0e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e37ba69c-1cb3-693c-f4b1-8e37b12cbd23.htm @@ -0,0 +1,9 @@ +Sprite.SpriteArrivedAtEndPoint Event
    SpriteSpriteArrivedAtEndPoint Event
    + An event for when you tell a Sprite to MoveTo(Point) a specific point, or, when you + tell the Sprite to MoveTo(list of points). When the Sprite has reached the final destination, + the Sprite fires off this event. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler SpriteArrivedAtEndPoint

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm b/SpriteLibrary/Doc/Help/html/e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm new file mode 100644 index 0000000..af87dad --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e38f911d-9d99-eac6-b9ea-bffd3d04678a.htm @@ -0,0 +1,10 @@ +Sprite.GetFrameAnimationSpeed Method
    SpriteGetFrameAnimationSpeed Method
    + Get the animation speed of a single frame. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int GetFrameAnimationSpeed(
    +	int WhichAnimation,
    +	int WhichFrame
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The animation we are looking at
    WhichFrame
    Type: SystemInt32
    The index of the frame we wish to get the speed of

    Return Value

    Type: Int32
    -1 if either index is out of range. Otherwise, return the total milliseconds of the specified frame.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm b/SpriteLibrary/Doc/Help/html/e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm new file mode 100644 index 0000000..c92a510 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e45036ef-15fa-9fbc-ef24-5e48c8c8ad8d.htm @@ -0,0 +1,13 @@ +Sprite.AddAnimation Method (Image)
    SpriteAddAnimation Method (Image)
    + Add another animation to an existing Sprite. After you add animations, you can use + ChangeAnimation to select which animation you want the specified sprite to show. + For example, you may want to have Animation 0 be a guy walking left, and animation 1 is + that same guy walking right. Because we do not specify the number of frames, it starts + at the top-left corner and grabs as many frames as it can from the image. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	Image SpriteImage
    +)

    Parameters

    SpriteImage
    Type: System.DrawingImage
    The animation image to grab the frames from
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm b/SpriteLibrary/Doc/Help/html/e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm new file mode 100644 index 0000000..21ac7b7 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e57f527d-aee3-7c4e-fc43-7219b7961fe0.htm @@ -0,0 +1,8 @@ +Sprite.HideSprite Method
    SpriteHideSprite Method
    + Remove the sprite from the field. This does not destroy the sprite. It simply removes it from action. + Use UnhideSprite to show it again. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void HideSprite()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm b/SpriteLibrary/Doc/Help/html/e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm new file mode 100644 index 0000000..ec01e26 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e58bfa3c-4722-7f3a-9610-0a0ce62bfe99.htm @@ -0,0 +1,11 @@ +SpriteController.ReturnPointAdjustedForImage Method
    SpriteControllerReturnPointAdjustedForImage Method
    + This takes a point, the location on a picturebox, and returns the corresponding point on the BackgroundImage. + Picturebox locations are "sloppy"; the background image locations are very precise. Since this takes a "sloppy" + number and returns a precise number, it does some rounding to figure out where the specified location is. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point ReturnPointAdjustedForImage(
    +	Point LocationOnPicturebox
    +)

    Parameters

    LocationOnPicturebox
    Type: System.DrawingPoint
    A point on the picturebox that you want the corresponding image pixel location for.

    Return Value

    Type: Point
    A point (x,y) on the background image which corresponds to the picture-box coordinates you sent into the function.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e753341a-7040-8dda-8f1e-681e926e9292.htm b/SpriteLibrary/Doc/Help/html/e753341a-7040-8dda-8f1e-681e926e9292.htm new file mode 100644 index 0000000..4fc0e9e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e753341a-7040-8dda-8f1e-681e926e9292.htm @@ -0,0 +1,12 @@ +Sprite.SpriteName Property
    SpriteSpriteName Property
    + The name of the sprite. Use SetSpriteName(Name) to change this name. Most Named sprites + are used to define what a sprite is. Once you have created a named sprite, you usually use + DuplicateSprite(String) to clone the sprite for use. The basic rule of thumb is + to load your sprites from images once, and name the initial sprites. Then, when you go to use + those sprites, get duplicates of them. The reason for this is because it takes more processing time to initially + create the sprites than it takes to duplicate them. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public string SpriteName { get; }

    Property Value

    Type: String
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e8491570-1fda-7d8e-48b8-c15f26c41d01.htm b/SpriteLibrary/Doc/Help/html/e8491570-1fda-7d8e-48b8-c15f26c41d01.htm new file mode 100644 index 0000000..d139892 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e8491570-1fda-7d8e-48b8-c15f26c41d01.htm @@ -0,0 +1,12 @@ +SpriteController.SpriteFromName Method
    SpriteControllerSpriteFromName Method
    + Find a sprite that has a specified name. This returns the actual sprite with that name. + You usually want to use DuplicateSprite(Name) to clone the sprite and get one you can + destroy. If you destroy a named sprite without duplicating it, you may end up losing + it for the remainder of the program. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite SpriteFromName(
    +	string Name
    +)

    Parameters

    Name
    Type: SystemString
    A string that matches something added to a sprite with Sprite.SetName

    Return Value

    Type: Sprite
    A sprite that has the specified name, or null if no such sprite exists.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e88e79e3-3edc-69e5-1854-23968928c073.htm b/SpriteLibrary/Doc/Help/html/e88e79e3-3edc-69e5-1854-23968928c073.htm new file mode 100644 index 0000000..916532a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e88e79e3-3edc-69e5-1854-23968928c073.htm @@ -0,0 +1,14 @@ +Sprite.MovementSpeed Field
    SpriteMovementSpeed Field
    + The movement speed of the sprite. To make a Sprite move, you need to set the MovementSpeed, + the direction (using + SetSpriteDirection(Vector), + SetSpriteDirectionToPoint(Point), + SetSpriteDirectionRadians(Double), + or SetSpriteDirectionDegrees(Double)), and the + AutomaticallyMoves property. + The speed is calculated in pixels per amount of time. A higher number is faster than a lower number. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int MovementSpeed

    Field Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/e9953cab-b878-4169-fda6-d5addecb267b.htm b/SpriteLibrary/Doc/Help/html/e9953cab-b878-4169-fda6-d5addecb267b.htm new file mode 100644 index 0000000..24bee92 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/e9953cab-b878-4169-fda6-d5addecb267b.htm @@ -0,0 +1,7 @@ +Sprite.GetSpriteVector Method
    SpriteGetSpriteVector Method
    + Return the current vector that the sprite is moving along +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Vector GetSpriteVector()

    Return Value

    Type: Vector
    The current sprite vector
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/eac30137-8237-e01a-ee3d-e599d117c03e.htm b/SpriteLibrary/Doc/Help/html/eac30137-8237-e01a-ee3d-e599d117c03e.htm new file mode 100644 index 0000000..4672127 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/eac30137-8237-e01a-ee3d-e599d117c03e.htm @@ -0,0 +1,31 @@ +SpriteController.ReplaceOriginalImage Method (Image)
    SpriteControllerReplaceOriginalImage Method (Image)
    + Replace the image on which the sprites are drawn. Use this when you move to a new playing field, + or want to have a different background +
    Examples
    + Replacing the background image is actually a lot more complex than you might imagine. Once you use the + below code, it can be done without any problem. But you need to do it this way, or it just goofs up in + a number of small ways. + You need to tell the sprite controller that you are replacing the background image, + and you need to change the image to that image as well.Because the Images are actually + pointers to memory where the image sets, changes to one image will affect the other image.This goofs + things up, so what we do is duplicate the image twice, and tell the sprite controller to use one of the + copies and then set the background to be the other one of the two copies.Finally, we tell the picturebox + to invalidate itself.That does everything that is needed. +
    C#
     void ReplaceBackground(Image NewBackground)
    +{
    +    if (MyController == null) return;
    +    if (NewBackground == null) return;
    +
    +    Image OneImage = new Bitmap(NewBackground);
    +    MyController.ReplaceOriginalImage(OneImage);
    +
    +    Image TwoImage = new Bitmap(NewBackground);
    +    pb_map.BackgroundImage = TwoImage;
    +    pb_map.Invalidate();
    +}

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void ReplaceOriginalImage(
    +	Image tImage
    +)

    Parameters

    tImage
    Type: System.DrawingImage
    The new image that all sprites will be drawn on
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/eae9601e-6da0-b304-9836-5e4b1e743f94.htm b/SpriteLibrary/Doc/Help/html/eae9601e-6da0-b304-9836-5e4b1e743f94.htm new file mode 100644 index 0000000..8df525e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/eae9601e-6da0-b304-9836-5e4b1e743f94.htm @@ -0,0 +1,16 @@ +SpriteAdjustmentRatio Structure
    SpriteAdjustmentRatio Structure
    + A structure that contains the width and height adjustment ratio. Use this if you need to manually calculate positions + between the PictureBox that the sprite is in, and the Background Image itself. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public struct SpriteAdjustmentRatio

    The SpriteAdjustmentRatio type exposes the following members.

    Methods
    +   + NameDescription
    Public methodEquals
    Indicates whether this instance and a specified object are equal.
    (Inherited from ValueType.)
    Public methodGetHashCode
    Returns the hash code for this instance.
    (Inherited from ValueType.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Public methodToString
    Returns the fully qualified type name of this instance.
    (Inherited from ValueType.)
    Top
    Fields
    +   + NameDescription
    Public fieldheight_ratio
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +
    Public fieldwidth_ratio
    + Divide a picturebox ratio by this to get the image location. Multiply an image location by this to get the picturebox location. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/eb5261e9-43df-01a5-b974-25c2fd13309c.htm b/SpriteLibrary/Doc/Help/html/eb5261e9-43df-01a5-b974-25c2fd13309c.htm new file mode 100644 index 0000000..71afaae --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/eb5261e9-43df-01a5-b974-25c2fd13309c.htm @@ -0,0 +1,13 @@ +Sprite.AddAnimation Method (Int32, Int32)
    SpriteAddAnimation Method (Int32, Int32)
    + Duplicate an animation, except rotated by the specified number of degrees. For example, if you have + a single animation (0), and you want to rotate it by 90 degrees, it will create animation 1 with that + rotation to it. In the long haul, generating a few rotated animations is less memory intensive than + rotating it on demand. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddAnimation(
    +	int AnimationToCopy,
    +	int RotationDegrees
    +)

    Parameters

    AnimationToCopy
    Type: SystemInt32
    An integer value specifying the animation to duplicate
    RotationDegrees
    Type: SystemInt32
    The amount of counter-clockwise rotation to add
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm b/SpriteLibrary/Doc/Help/html/ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm new file mode 100644 index 0000000..2f7219d --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ec39133f-39d0-c9ef-e77b-e58ea8c9b2f6.htm @@ -0,0 +1,11 @@ +Sprite.SetSpriteDirectionRadians Method
    SpriteSetSpriteDirectionRadians Method
    + Set the sprite direction using Radians. Most people do not want to use this. + Use SetSpriteDirectionDegrees instead unless you like math and know what you + are doing with Radians. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SetSpriteDirectionRadians(
    +	double AngleInRadians
    +)

    Parameters

    AngleInRadians
    Type: SystemDouble
    The angle in radians
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm b/SpriteLibrary/Doc/Help/html/ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm new file mode 100644 index 0000000..84221f6 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ecbab3a8-aa92-2bb6-efc6-cf26d1df424a.htm @@ -0,0 +1,12 @@ +Sprite Constructor (SpriteController, Image, Size)
    Sprite Constructor (SpriteController, Image, Size)
    + Generate a new sprite. It takes the image and the width and height. If there are multiple images of that width + and height in the image, an animation is created. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite(
    +	SpriteController Controller,
    +	Image SpriteImage,
    +	Size SpriteSize
    +)

    Parameters

    Controller
    Type: SpriteLibrarySpriteController
    The sprite controller that manages this sprite
    SpriteImage
    Type: System.DrawingImage
    The image we pull the animation from
    SpriteSize
    Type: System.DrawingSize
    The size of the animation frame
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/eefee0d8-fb59-4546-386a-53f40c545c43.htm b/SpriteLibrary/Doc/Help/html/eefee0d8-fb59-4546-386a-53f40c545c43.htm new file mode 100644 index 0000000..f4f42a3 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/eefee0d8-fb59-4546-386a-53f40c545c43.htm @@ -0,0 +1,12 @@ +Sprite.MoveTo Method (Point)
    SpriteMoveTo Method (Point)
    + Tell the Sprite to move towards a destination. You need to give the sprite a MovementSpeed + and tell the sprite that it can automatically move. But the sprite will begin a journey towards + that point at the MovementSpeed you have set. When it gets to the point, the SpriteArrivedAtEndPoint event + will fire off. Also, the SpriteReachedEnd bool will be true. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void MoveTo(
    +	Point Destination
    +)

    Parameters

    Destination
    Type: System.DrawingPoint
    An image-point that the sprite will move to.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm b/SpriteLibrary/Doc/Help/html/ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm new file mode 100644 index 0000000..0b4ae9f --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ef420c55-64ea-5230-e9e5-d8c13f98f74a.htm @@ -0,0 +1,7 @@ +Sprite.SendToFront Method
    SpriteSendToFront Method
    + Make the sprite show up in front of all other sprites. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void SendToFront()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm b/SpriteLibrary/Doc/Help/html/ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm new file mode 100644 index 0000000..1c7841a --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ef714268-ae13-47ad-c8a8-1b8bb39cfed9.htm @@ -0,0 +1,9 @@ +SpriteController.DuplicateSprite Method (Sprite)
    SpriteControllerDuplicateSprite Method (Sprite)
    + Make a duplicate of the specified sprite. The duplicate does not yet have a location. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Sprite DuplicateSprite(
    +	Sprite What
    +)

    Parameters

    What
    Type: SpriteLibrarySprite
    The sprite to duplicate

    Return Value

    Type: Sprite
    A new sprite. If What is null, returns null
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm b/SpriteLibrary/Doc/Help/html/ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm new file mode 100644 index 0000000..9d90e38 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ef8d63de-fe6f-104e-f66f-3fffcd4ff0eb.htm @@ -0,0 +1,7 @@ +Sprite.GetSpriteBaseImageCenter Method
    SpriteGetSpriteBaseImageCenter Method
    + Return the centerpoint of the sprite, as found on the background image +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point GetSpriteBaseImageCenter()

    Return Value

    Type: Point
    a point with the x and y based off the background image location
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/efb3089a-8900-83fe-ce65-f22e686d7477.htm b/SpriteLibrary/Doc/Help/html/efb3089a-8900-83fe-ce65-f22e686d7477.htm new file mode 100644 index 0000000..34d8b85 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/efb3089a-8900-83fe-ce65-f22e686d7477.htm @@ -0,0 +1,7 @@ +Sprite.GetSpritePictureboxCenter Method
    SpriteGetSpritePictureboxCenter Method
    + Return the centerpoint of the sprite, as found on the picturebox +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Point GetSpritePictureboxCenter()

    Return Value

    Type: Point
    A point with the x and y found on the picturebox
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/efc2cb08-5c2b-c758-477e-d5739183a1ba.htm b/SpriteLibrary/Doc/Help/html/efc2cb08-5c2b-c758-477e-d5739183a1ba.htm new file mode 100644 index 0000000..0d98f44 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/efc2cb08-5c2b-c758-477e-d5739183a1ba.htm @@ -0,0 +1,19 @@ +SpritePauseType Enumeration
    SpritePauseType Enumeration
    + The type of pause signals you can give a sprite or the sprite controller +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public enum SpritePauseType
    Members
    +   + Member nameValueDescription
    PauseAnimation0 + Pause the animating. Animation resumes from the current frame when we unpause. A paused animation will continue + to display the same image frame until it is unpaused. +
    PauseMovement1 + Pause any automatic movement. Movement resumes where it was left off if you unpause. The sprite will + just sit there until unpaused. +
    PauseEvents2 + Pause events. Sprite collisions, movement checks, etc are stopped until the unpause. +
    PauseAll3 + All pausable things are paused. PauseAnimation, PauseMovement, and PauseEvents. +
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f0db6147-f3aa-d599-6371-a89da047bbc5.htm b/SpriteLibrary/Doc/Help/html/f0db6147-f3aa-d599-6371-a89da047bbc5.htm new file mode 100644 index 0000000..ff93181 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f0db6147-f3aa-d599-6371-a89da047bbc5.htm @@ -0,0 +1,14 @@ +Sprite.AnimationDone Property
    SpriteAnimationDone Property
    + Report whether or not the animation has been completed. When you tell a Sprite to AnimateOnce, + this will report "false" until the animation sequence has been finished. At that time, the value + will be "True." The tricky bit is that this is a boolean. If you have not told a sprite to + animate once, it will always return "false." If a sprite is paused, this returns "false." The only + time this returns "true" is when you tell a sprite to animate once, or animate a few times, and those + times have completed. At that time, this will report "True". If you have a sprite with only one frame, + it may not look like it is "animating", but it is. It is simply animating that one frame over and over. + So, AnimationDone reports false, unless you have told it to animate_once. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool AnimationDone { get; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f28be11d-b67a-765c-441a-d7da336ccf77.htm b/SpriteLibrary/Doc/Help/html/f28be11d-b67a-765c-441a-d7da336ccf77.htm new file mode 100644 index 0000000..e0e340c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f28be11d-b67a-765c-441a-d7da336ccf77.htm @@ -0,0 +1,10 @@ +SpriteController.AddSprite Method
    SpriteControllerAddSprite Method
    + Add the specified sprite to the list of sprites we know about. You usually do not need to do this. + Sprites add themselves to the controller when you create a new sprite. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AddSprite(
    +	Sprite SpriteToAdd
    +)

    Parameters

    SpriteToAdd
    Type: SpriteLibrarySprite
    The sprite to add to the sprite-controller
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm b/SpriteLibrary/Doc/Help/html/f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm new file mode 100644 index 0000000..a935752 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f374c8cd-af01-f03a-1d31-0b46e0d8745c.htm @@ -0,0 +1,8 @@ +Sprite.HasBeenDrawn Property
    SpriteHasBeenDrawn Property
    + Report whether or not this Sprite has been drawn. If it has, then it needs to be erased at + some point in time. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool HasBeenDrawn { get; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm b/SpriteLibrary/Doc/Help/html/f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm new file mode 100644 index 0000000..746842c --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f4164c4a-55e1-87f7-95bd-7bae1d99326b.htm @@ -0,0 +1,8 @@ +Sprite.CheckBeforeMove Event
    SpriteCheckBeforeMove Event
    + This event fires off before a sprite is drawn. Use it if you have constraints. You + can change the location or cancel the move entirely. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public event SpriteSpriteEventHandler CheckBeforeMove

    Value

    Type: SpriteLibrarySpriteSpriteEventHandler
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f42e1d9a-273c-861f-b7db-6244c9266d2c.htm b/SpriteLibrary/Doc/Help/html/f42e1d9a-273c-861f-b7db-6244c9266d2c.htm new file mode 100644 index 0000000..d2eb731 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f42e1d9a-273c-861f-b7db-6244c9266d2c.htm @@ -0,0 +1,26 @@ +SpriteEventArgs Class
    SpriteEventArgs Class
    + An EventArgs that contains information about Sprites. Most of the Sprite events use + this SpriteEventArgs. +
    Inheritance Hierarchy

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public class SpriteEventArgs : EventArgs

    The SpriteEventArgs type exposes the following members.

    Constructors
    +   + NameDescription
    Public methodSpriteEventArgs
    Initializes a new instance of the SpriteEventArgs class
    Top
    Methods
    +   + NameDescription
    Public methodEquals
    Determines whether the specified object is equal to the current object.
    (Inherited from Object.)
    Protected methodFinalize
    Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
    (Inherited from Object.)
    Public methodGetHashCode
    Serves as the default hash function.
    (Inherited from Object.)
    Public methodGetType
    Gets the Type of the current instance.
    (Inherited from Object.)
    Protected methodMemberwiseClone
    Creates a shallow copy of the current Object.
    (Inherited from Object.)
    Public methodToString
    Returns a string that represents the current object.
    (Inherited from Object.)
    Top
    Fields
    +   + NameDescription
    Public fieldCancel
    + Used primarily in the CheckBeforeMove event. If you set cancel to true, then the move fails. + You can use this to keep a Sprite from going places where it ought not to go. +
    Public fieldCollisionMethod
    + The CollisionMethod used in the event. Currently, only rectangle collisions are used +
    Public fieldNewLocation
    + For the CheckBeforeMove event, newlocation will be the location the sprite is trying + to move to. You can adjust the point (move it left, right, up, down) and it will affect + the placement of the sprite. +
    Public fieldTargetSprite
    + If another Sprite is involved in the event (Collision), than that Sprite is included here. + It will be null if no other Sprite is involved. +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f55ba01a-50d3-248c-5c34-ba32355db223.htm b/SpriteLibrary/Doc/Help/html/f55ba01a-50d3-248c-5c34-ba32355db223.htm new file mode 100644 index 0000000..7652086 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f55ba01a-50d3-248c-5c34-ba32355db223.htm @@ -0,0 +1,8 @@ +Sprite.AnimationIndex Property
    SpriteAnimationIndex Property
    + Get or set the animation nimber. It is best to change the animation using ChangeAnimation. + It is safer. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public int AnimationIndex { get; set; }

    Property Value

    Type: Int32
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f640b978-f990-84a2-015a-40bf256fc37d.htm b/SpriteLibrary/Doc/Help/html/f640b978-f990-84a2-015a-40bf256fc37d.htm new file mode 100644 index 0000000..e94a3af --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f640b978-f990-84a2-015a-40bf256fc37d.htm @@ -0,0 +1,14 @@ +SpriteController.SpriteComparisonDelegate Field
    SpriteControllerSpriteComparisonDelegate Field
    + Allow the sprite sort-method to be overridden. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Comparison<Sprite> SpriteComparisonDelegate

    Field Value

    Type: ComparisonSprite
    Examples
    + The default sprite sort method is: +
    C#
    SpriteComparisonDelegate = delegate (Sprite first, Sprite second) { return first.Zvalue.CompareTo(second.Zvalue); };
    + Which compares just the Zvalues of the two sprites. Often you will want to have a more refined sort. The sort + order determines which sprites appear on top of other sprites. In the default state, if two sprites have the + same Zvalue, it is very uncleaer which one will draw on top of the other one. By overridding this sort function, + you can specify a very precise order of which sprite is on top and which is behind. +
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm b/SpriteLibrary/Doc/Help/html/f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm new file mode 100644 index 0000000..0e789fd --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/f7da08ef-ca8d-fd84-5c60-7bd966be6374.htm @@ -0,0 +1,8 @@ +Sprite.AutomaticallyMoves Property
    SpriteAutomaticallyMoves Property
    + Determine if the sprite automatically moves (you need to give it a direction [using one of the + SetSpriteDirection functions] and speed [MovementSpeed = X] also) +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public bool AutomaticallyMoves { get; set; }

    Property Value

    Type: Boolean
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm b/SpriteLibrary/Doc/Help/html/fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm new file mode 100644 index 0000000..3d67ada --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/fa691ac7-58fb-b5fc-0141-68300e3a7a89.htm @@ -0,0 +1,5 @@ +SpriteEventArgs Constructor
    SpriteEventArgs Constructor
    Initializes a new instance of the SpriteEventArgs class

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public SpriteEventArgs()
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm b/SpriteLibrary/Doc/Help/html/fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm new file mode 100644 index 0000000..bc6fc6e --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/fcc3a02a-e676-c16e-32a4-4fc2c5b530d4.htm @@ -0,0 +1,8 @@ +Sprite.GetImage Method
    SpriteGetImage Method
    + return the current image frame. Warning: If you write to this image, it will + affect all sprites using this frame. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public Image GetImage()

    Return Value

    Type: Image
    An image that is the current sprite frame for the current animation
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm b/SpriteLibrary/Doc/Help/html/fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm new file mode 100644 index 0000000..eab4327 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/fd3f0ed3-4608-2686-e248-8f2a1e6a2bac.htm @@ -0,0 +1,9 @@ +Sprite.ConvertDegreesToRadians Method
    SpriteConvertDegreesToRadians Method
    + Convert a number from degrees to radians. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public double ConvertDegreesToRadians(
    +	double Degrees
    +)

    Parameters

    Degrees
    Type: SystemDouble
    The number from 0 to 360 in degrees

    Return Value

    Type: Double
    The corresponding number converted to radians
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/fd95464a-c61d-8ed2-a568-34b825efc047.htm b/SpriteLibrary/Doc/Help/html/fd95464a-c61d-8ed2-a568-34b825efc047.htm new file mode 100644 index 0000000..d4843f2 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/fd95464a-c61d-8ed2-a568-34b825efc047.htm @@ -0,0 +1,7 @@ +SpriteController.Invalidate Method
    SpriteControllerInvalidate Method
    Overload List
    +   + NameDescription
    Public methodInvalidate(Boolean)
    + Invalidate the entire image on which the sprites are drawn +
    Public methodInvalidate(Rectangle, Boolean)
    + Invalidate a rectangle that is specified in image coordinates +
    Top
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/html/ff84ba57-4738-8ff0-2356-095dfe1cc159.htm b/SpriteLibrary/Doc/Help/html/ff84ba57-4738-8ff0-2356-095dfe1cc159.htm new file mode 100644 index 0000000..cc1ac71 --- /dev/null +++ b/SpriteLibrary/Doc/Help/html/ff84ba57-4738-8ff0-2356-095dfe1cc159.htm @@ -0,0 +1,14 @@ +Sprite.AnimateOnce Method
    SpriteAnimateOnce Method
    + Start a new animation, but do it just once. You can use AnimateJustAFewTimes(1) to the same effect. + Or, you can use AnimateJustAFewTimes with a different number. The SpriteAnimationComplete event will + fire off when the animation completes. The variable, Sprite.AnimationDone will be true once the + animation finishes animating. +

    + Namespace: +  SpriteLibrary
    + Assembly: +  SpriteLibrary (in SpriteLibrary.dll) Version: 1.0.0.5 (1.0.0.5)
    Syntax
    C#
    public void AnimateOnce(
    +	int WhichAnimation,
    +	int AnimationFrameToEndOn = -1
    +)

    Parameters

    WhichAnimation
    Type: SystemInt32
    The animation index you want to use
    AnimationFrameToEndOn (Optional)
    Type: SystemInt32
    Once the animation has finished, display this animation frame. + -1, or any number that is not an actual frame, will show the last frame of the animation.
    See Also
    \ No newline at end of file diff --git a/SpriteLibrary/Doc/Help/icons/AlertCaution.png b/SpriteLibrary/Doc/Help/icons/AlertCaution.png new file mode 100644 index 0000000000000000000000000000000000000000..78f246f047efee82e1ee0b64f1adbef606253054 GIT binary patch literal 618 zcmV-w0+s!VP)z@;j(q!3lK=n!AY({UO#lFTB>(_`g8%^e{{R4h=>PzA zFaQARU;qF*m;eA5Z<1fdMgRZ-;7LS5RCwBylfP~gK^Vk;-}-FFIChME=h(5G2(T6; zpah97qN1X89i>STp`=JblN3Bb-XLY%Q1AcdkQrp!HXSPCG~edkf_v zbNLd`4I;g&my7af(tY z!^x4-&e|Q|sk}S%YrxB;<)U85f{Q}17Mvr0|04k1_t(Mm5D^gJ?7QL1(b)&!p$F_H zQ=ZPJBkW)V#(=Z@IwE#7fKVZ7{EzbK1jh-bjj_8Pu)0*s;YK}N6oDJ3Bf{6$rO6{A zf)fBiL|Ck3`TVK7>H(*(-W>D)7;>$iJe67F{IB>i05~0`Lczgc$^ZZW07*qoM6N<$ Ef-W!&ivR!s literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/AlertNote.png b/SpriteLibrary/Doc/Help/icons/AlertNote.png new file mode 100644 index 0000000000000000000000000000000000000000..0ab92b66aa6ba6ba29e37046059c5314b4971341 GIT binary patch literal 3236 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 z zF>4e-6o9|k-P;^zp(G}o+k;ec1O#g<5k!p<3mXf2!IaktVku~48GAv{RuEBy5X2vl z#t`C}C57MRV)tMtBW^pOj9bC84h9&!WM3@%+kg+#{JoaBE&hFgzeSF?RlT} z9&C3kv^j^PLoUr+;3}V4+Moga8-Q)sZ8czJWypgkuQIzg&*$XwMPRdBFScOivh=v; z!-HXNd-tayjs;t{iuDD+DIy0DF(86SZnh{T7y*>~2S5S5exw8-D&5Hr&L;1&b=SH} z$=1Y&L%h;Q0Pa6Ke#HT}J~t0Q?m tQ)sP!{{^91t5K;`{%`Qbw-vBLDh*rjvI{K}%vsHm@h_?tw;Z7`jJPwSdcxnw$~gG!RFk%*O*|I1~?_r=Vw zW31k*ZJTPZXD-TrHg274%78fS{q4kPEz6ow%IwOa&Zb~yd6;xJgr$h)xL?S8H^*){ zp<^_vpM8wGik;1zgtUU`!F9`^RlDZ8o2#KvOh%~ItUx<8m&TTvYdD#5KgoSI$$&Y` zo>9tvHrAF=$caVbrC^oCleOlxnP@f1x`BYNevGeAzwg4P)T&`vMTm%qrD-ymZaeFe zLb8BL$&X25Vq(gVN10|b$9Xr%dpF$l+yDRn000000000000000A^8LW004UcEC2ui z01yBW000N6fO~>_1}SLPB)mW!_w<;6q)BF&{is;nBp+15yFz aYzYIwMwU7PNbLy_pn!w|0x}K?1OPh{BoK)J literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/CodeExample.png b/SpriteLibrary/Doc/Help/icons/CodeExample.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b9fba4cc5f29460d711dddb32b79b85783af9a GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!AMUR#}EtuMf8pRk0XW?`S;ryG~}Z?XkE$(i7NV%yAs7l(t? nuW2~*F(>VD=(TZ|HfE5{S-0gp>+@4UOBg&|{an^LB{Ts5mnuH4 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/Search.png b/SpriteLibrary/Doc/Help/icons/Search.png new file mode 100644 index 0000000000000000000000000000000000000000..42165b6d64c2ad706179b7eaa0485caa089e6ed9 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^!ayvawSc zV~Bl)>eG>!R=iK_%P!ZR!uvNw-nA5}SoCV%;XLf~kk5Lzl-FVdQ&MBb@0IsfxDF6Tf literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/SectionCollapsed.png b/SpriteLibrary/Doc/Help/icons/SectionCollapsed.png new file mode 100644 index 0000000000000000000000000000000000000000..8ded1ebc6b03328520aac9416ea15f07e63809a8 GIT binary patch literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xamUKs7M+SzC{oH>NS%G}c0*}aI z1_mK8X6#Yg$qp2hDshb{3C>R|DNig)We7;j%q!9Ja}7}_GuAWJGc|_p9mFVf> z7-HeScG5-81_K@!>nOKVY?6k`bMLh$RNeCW@W8S5!vYcZ1~H{GJn!n{R?im{6g+Vz zSEosFd$((h;`T1rJI?QP_2g6db}rxH@?`sl(yP}VuTfHJdZ?$QbZh?|a|1rj<3Z`n T`6XRI%NRUe{an^LB{Ts5&hJQu literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/SectionExpanded.png b/SpriteLibrary/Doc/Help/icons/SectionExpanded.png new file mode 100644 index 0000000000000000000000000000000000000000..b693921cc92c2b00c06b842c8d098ea63afc1cfc GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xamUKs7M+SzC{oH>NS%G}c0*}aI z1_mK8X6#Yg$qp2hDshb{3C>R|DNig)We7;j%q!9Ja}7}_GuAWJGc|_p9747Nb z7-Hc+xBDRP0RtW;<0khn|GalRO}y^q>HN!rlhIu1k@%L71xuN9)9?JPQ?iR~71fmO zjGc5ea*~T$?$N0%zt%JTnB?&Pl+X$N6$xqUli92599x4kcB&s^{ZR0-?|xgoAkZ2H MPgg&ebxsLQ08eg56951J literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/TocClose.gif b/SpriteLibrary/Doc/Help/icons/TocClose.gif new file mode 100644 index 0000000000000000000000000000000000000000..e6d7b5edcc237dc7d59b4a42910a4abab459c94e GIT binary patch literal 893 zcmZ?wbhEHba}ave*XOV_wV2T|Nk?Lg3%Bd;vt{|az7|9FmPxysB_48 t1Sl}Dva;%BI4C4Ca`Fg?$QUR#H8gQ3@l*tSXkcXLWOnfIFj8Q!1_0$!Io|*P literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/TocExpanded.gif b/SpriteLibrary/Doc/Help/icons/TocExpanded.gif new file mode 100644 index 0000000000000000000000000000000000000000..f774d9bb6589737768a8bf788046a8bbe53ca902 GIT binary patch literal 837 zcmZ?wbhEHb7O#s`Kb79LTx z0D+J54|j4a#f5BWU_8vgZ&{@x;lOZgBD1%Uz|TO2Mkd+leI^Z`=6lUB4c(-YS(JWi df}!fKEgT`qC%VM7g+j9?zO-NdpNWaV8UQoLL&5+6 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/favicon.ico b/SpriteLibrary/Doc/Help/icons/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..2b9963f814281f0b1b7bb661be8d579191b59a42 GIT binary patch literal 25094 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 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privclass.gif b/SpriteLibrary/Doc/Help/icons/privclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..0939694ce08ad44508f6f017b68e46f0f22377b9 GIT binary patch literal 621 zcmZ?wbhEHb6krfwc;?UW|NsB|hUt&r{rL9oM)d3(_aDFd`{wV%RU+Tt-(Iu*bdPSY zqjyAO5)Xs%%*W4OT}r)t^1|KQ1$X{_`1|40mlNl1p1OGN*VKPj>%-QMrvoZ0aqv=U>zv((uk1Z`&AIsGhXbbm$u+t4({AM4 zoUwe*+pV&@k6t-)=GK>oZB<oaqPkBNogHUHno4%^Ngbh!J5dZ96zXj&rOBmSr#rWBn`?Qta4AyNBlN99gXZF;U z(BWY`VYPQZo4>HAqB^H51EW8i_+6gJ+{k9ar8DD%q6<$7gRGgrgar((tRfl{0+c)& nCbWOC3iz+epk2~OYT literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privdelegate.gif b/SpriteLibrary/Doc/Help/icons/privdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..d3aa8a65ef5277c6682f106de956da036c50d363 GIT binary patch literal 1045 zcmZ?wbhEHb6krfw_&$x{|NsBD3-0`y@q4k|5=ZZdhfm);e)ek3_S5^0UpsN`=JQu? zFQs0-|M=CZi}!XMxOD0IqaNMfjl0hJCs*%1c5Tz{a|>10-$^W=rQx9>k+>ALFmyU(xQe4H?EgI8Snr_bMJEZ?*H@RcuL ze=OZ_+&{Ty;o2jswjSAiIO7^wyn6fTZ3ixeXEp6UdL_BEH>IrC+CTH&qnA?_ zZr-r_?BoSIFQ;Fbx_Ik^d0S4LzjJZVqo>#39XfGw&#H^BC%mcZTCnHn)n99Wox5`H z=da%fPF&x-_rl%7FP}Vr9h%+{U)V8w*_Mra&Odl`_2jZ^p&5-&p1+&CaMzAQm*=cF zU=x^q`R1Lk-+rv!ekLNjxp&UC=}Y#m-gbJC-Qv>LIg{q^j4SB0@XI)R`PRnW=VJ5Q zXDr?K;^v1fd(Y(7PdmEh)~oK}Z+;!hSv z28L-2Iv@i;d4hrC6N4_N%!&qId44W7EtMCGCW#wQIi?e0vCxHsp-kl9Op6K4Vs;D+ zcRp^uaCVY-@DqoX8Ynj67>A_%qWsZWPnuD}Kw%&~mCC`=#izx;#2uhqQ1RGQZ~`_sezFVAOg+I?={@oQh6&3J#O_0`3qcQ@)kJ)ZdG+03e*WmVnF z^Bd>vIB@CF#g+GVc;49Hc?*VhX^eEL$_I;S?t z;q-yc?{Bw0JskD*+0M2c_oqi=CRPT;=C|KGzkX&z#JAUn!n2y*T&c`&nEqh9%hwnC zj-0t!6=(DDL0?K)@6G+0dyidvbv}Rpw$;g{y)%~Yxxd46$H7ahx1WA_Dm}e?LT>%E z=ORU|^GzS5cL1XHZiY5LXoA)t{s+AtlYi9Tz=Gm|uiP)WbllqpPP+ z)n1a1MVG-Qb@J5dGyP4i^w=yDcg>x@Fn~iQhRG>ed)KlRqDdT#Ok55L&0)4WTUh+8 zU7DCIG@4uk%^kgCje~tTIqkw(n`EO*4C6yN8JXA^6cbM@GzwzkiQs5z?rCOXl94EQ h;J~8BE~;=s>7Yl8atNQ8$3hiOG3k^KQ#n}}tN|oJ0crpM literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privevent.gif b/SpriteLibrary/Doc/Help/icons/privevent.gif new file mode 100644 index 0000000000000000000000000000000000000000..30db46df766c1b49bf86b168eaae03052ce8f292 GIT binary patch literal 580 zcmZ?wbhEHb6krfwcoxC%u)XR2<5$m5ME<&1wr2ZjNAHM}7w(?Ac<;oyoByBGKYsS= z!>2EQo@`jK`p~A`=l*@Vx#Pg4eaEjod-~|o^+*5z|L>^sdbOcGw|?5!19>l>J$(7} z{;?esvXVR|%-eGJOka3b)BFnAZ|^Vv{PMV`DW&#T9hkzICOvb-pxf=`s=6a*ZoWIz zncpzIeag~^VDI;PCrob+ez~A=_t7iqfi@{+eH(Y3%?r|f{`lU39rK<(ymj|z)7mD5 zrw^`IbuB!xslq?GCb_hC@3CvEx1X-eaXWu-;f{ls(#t3KCsj|)mk0WVVIY9wPZmZ7 zh6n~7kmaB_VPId_5Yg1!(%ROnB&Vz4>1!6;9>K)JX=TD-E7GpT#LsNOAR{z!GP4+i z=;C(8xe^TKMzh+PI5{=#92lIWnz-2oTv$x)gOr&WT)msw8CiG(d?KWetLrp#Tk1El zSi2t&_h{jAlx1VncGhE1P;F&n{J)Pg~o YNt8WsjZ2WhW2dPS@^dsgL^v3%0lNU+2mk;8 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privextension.gif b/SpriteLibrary/Doc/Help/icons/privextension.gif new file mode 100644 index 0000000000000000000000000000000000000000..51dd267f0f7fa11a657ef51a69cb9159ced8775f GIT binary patch literal 608 zcmZ?wbhEHb6krfwc$Uj>|M9Ey9p}}Y>Kwfz)@(n0{n3wKGk%}Cc< z_}MGFi~}D&eOa*j(7xl>E?s|g`Sz<#yU*=7aOue|7!l#yEE=pbuCOO>kH3nI&$V# zjc)DB39o7_8sE)*uj)OkMz7}o|NlqM+G+UdKH=Bu-=(c{a_gsQ z1uU2rG~KoM((a>IdQJQC8>WYKecrh1?6QF6Z*RPfE9eZ(Xq;m+*QfS@Z~c=GS3ax^ zTJ>w@@5E{UcO1MFKjq)+iEn)CAJ^&CP4Jue`SIu17hjhcRQy`^J9g6Fcl+M0-hSFY zsoJCbCeRHGWC6vWEQ|~cxePiW-Jm#OVBg!2+mtK9sNLMr*(%AH(%Bisn3JRM%%x*_Q%!)u8UTgK6xaX& literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privfield.gif b/SpriteLibrary/Doc/Help/icons/privfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbf70f7a3fc3875ee62d9a4dacf3a088e60f2eff GIT binary patch literal 574 zcmZ?wbhEHb6krfwcoxXOU_A5w<5$tMZ>-sV+R-~==Gp&`pS{|2ck;sB zs9D$d9ly5Yz@<&Q&uu;O@WZDsC9Cc&SbgZy^+%N(9`8MN?Z}y%6XtD6FP{*e)in3~ zzufw1b5DMnaOB&iXFs-|e^#^Q<&J}w)?fS6ec;Rd3;%W>y&~tgvS#!1OV55@eerwW z>8D3;f7FcHFk|_i)!R>>ef+a_)6>Nl|83lLHm;y^;^B`~T?=Do-)Ne+#58$p#rnq@ z;p=xFzH;Qut;^4U{r>&u-rHZLt#eY!di|5Cv#KYq*?aHM%@6qv)B6s6UU=bOMceF@ zvc9J6ue$cWTYU13e{xOrrl-$8{{H{}Kf|B_ia%Kx85jZ?bU-cw#R&uZ?1sRm=9bpB zHaUZU_EvpM9})YWCR<-wR(BDN9!-B`R#p!gogQ@)DOMGBHHIERZ+1g=D~7d!0-U@? z%mRW;3Q87Rw{bEu3yGSVF)U@oS6M zA3Ad8=A4!LcOSW$UOu6=Z^@K}JJxPL8J*X*|M-=-g3j&xFKyU)V)>?{I}TpXZ~<8FFA!5q?GmgC)b2$HO1z)FWq>|KdHLBV_s-R-W7qZ^xtdtqH)rL+s;-4+F5gKh>zlEBk85Oca%u1E75ir{-(B0g{Nd9# zy|Xv%K71v)w13l{a|_oV*|_WMw*9Ab>!+2r&Z+KNvj6DiBWG>_y~!{@K=CIFBLhP? zgAT}kP@FKZFKY;IYHn$5Yvu6MkYR3b=1}JKwsGk75|9;ZQRHQ1XO;2{7vK;Tv@llE zQ8i=dV%PEww-YrK_mH=CRq&t38YmJjCMfRI!tAads%9?~&cq`ez{u3h9AYkVE}Vyf zQNq@-@4U1N7Z;=E)pj;hOKxsmXSP0WhVKk~l5TxI3@i+?J`E2w7#dhugj6aV4hyoe bg&D1>Sm4~I%pAO=LgC{f*1gV+3=Gx);f>!6 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privmethod.gif b/SpriteLibrary/Doc/Help/icons/privmethod.gif new file mode 100644 index 0000000000000000000000000000000000000000..71f882264291eb056bc55dce1c73f9b7cae1aa4a GIT binary patch literal 603 zcmZ?wbhEHb6krfwc$UHN|NsB{k6)edIDhH-BS-IuHQP_0ICpc??sJcyy*hRA-iJ?L ze$DuO^1|H}0V}UwUGr|~``!6_zJFLf1uPs=8=+o^_@AkcWyykJKdg;o5 zRcp4cO)Tnsaq-2=r>kFIe7)n~r6Xr+a6D*XPzhEogdr`Gor$?uTbJUCqDx;p&H8)4r=Su0A{SY{rsxbq4hpvo3Yb zTvysUr$(=)P^IYQgjc<@*Zx}f``z64DP_I$ZRY>}{pZ*0-%~B7olZY9f7R|9-P$kD zzFf+_TyN0u`SIt=H*SBp^5M;;Hxv9OR%uuJC)eygd}Z&kYjFjgZ*RQ)wfgsm#~*U* zr=^tj{hIlEj?LUh>mU7^|NHgCHwTZbSrxH*!n`dPb1zkO%w4_xbbkF5V7M_*11SDv zVPs&)V9)^>28t5~_8kowP0cN0Opz^}&217)zFjT;OyUj+rW!4Rd|Flv25}MG+;&V} z3=@(B_+7bU)B_m=<@ge%%`?eE&*(~qUwlq@F(Tx>i;Nlc!XZ6ca;`P?Fa5nK| z;ACVKW%g*2m2wwy3o_2xq2V9{v&NLh ymNqX2CINOIi^Cfn7?@djBrFazCbqIDYBX3REMswIvEH(0gHSS;U|S;tgEasMh7D{0 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privproperty.gif b/SpriteLibrary/Doc/Help/icons/privproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e8074654b3fc0601b0302f1be7b39f5bf5eb7b GIT binary patch literal 1054 zcmZ?wbhEHb6krfw_&$T-|NsAs)*t!*_xJtBuWIMsU$g!6|JQkr-VrCx-Te0d|C%NJ z|KDc#`iGpnaQD>3dpizXdi?CwzT?+6?LK$##HE5n?}9|H1*;ETy8h_kiHi+|F+YC) zd+_viY3rPnvfkYKX@^c;e);mzk;$UQ>Y{gVUU{=ZaB^$$wHr64wgkWb^84*^@73E+ zf4QE%Zbro0!wx@w{k?ZEv8rpKe^T|Gy&(BuL?`9o2b8GLhYo9Mg{CZU6pIo!!;H4vHZhpI+=@Sqfn$b98`JViS z>9P6kH|{<=asK9nd0XypGDaQ4Lh`rPOfGiB|kYwkSxG`b>k*`oNO7)Rg0u+B-# z18g0q&0TV2$JD1!?uTbJ)z&xlObBqCXS85iLwZ6`cTr$+Y44wZ{}xYgc=YVeuU$%d zicHs5>iJt4eERnH>E*U%2iKiDb?DLAsx@mjMEZuOl=c1m{r~U3e{*)seD~}B)7PJ$ zz59LO_{HV>mT0EQ{QLiZegvM@3* z%wW&~X$9p829DnhhMY%Cj-2iAu6$vlInmK)kpr_~;3LCh4M#P#Q*QiBR9>`Hk~>1; z#zz(RF58Sgfryzdj{U;ie_|$HYU1RyEas3fT)cpz)v;7;1EaHA3%^t7xQ zt(lQk$EC6HC36DtS^a6kC&EH94>aBumn&dwYH7?jjd&y?(eQwQiA89WOHal@#wi@3Dl0lR)+n&> P$sO`(a%OdMV6X-N?RS8o literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/privstructure.gif b/SpriteLibrary/Doc/Help/icons/privstructure.gif new file mode 100644 index 0000000000000000000000000000000000000000..ed6d1ef68f8736e5c05137be2af0ff7714ddb85b GIT binary patch literal 630 zcmZ?wbhEHb6krfwc$UZT|NsB{k6(RzcjN2h?jGIVhpR-szrX#Y;OUy}ryac`8k2Z_ z@BIDv-H#LJZvJ}l`*!M`Qy1@@ym0sat*<9$h(CVz>ir&_-|zqIIB@CG^+(RdC-)t{ zwqW%k2IHCEUeEn_%=zsWiC@ouZ`ytC_q#uzZe4l1S>nT|FQu(>er^Bt?bY0GYrb7d zy*#gi@9oUD{z=t$my4#9^~M!+KB#{9Vd2N!hp%khb@t2cQqTF1cOShHo8O*N)>pXg zHH@xPxjsT^kdVHrL_XzU(fST zu9>&-#=*NkLo*uhoIn5Zxbw$14}LsZ{^>%@yZhUJzFe1EKP^0~>Dz{HpKp~Oxc4o+ ze8Q^qrg}0wC#Qc1@2^f+LqyxpDEQ|~cc?>!rt)MtzV87gu*Tlfa%EZvr*_GGAsv#WQ z(cRoC%WNv#-qY2a!kl66Ka)XhQXUiQw9FtmQ57yG_N7gFp3D(BYvs9=`MKGZIy{&| zas!=qE3_;~z{nwOo0cu4rD^0GYsjLS9HY&}k>n#O z<^9_#Rm)yEerz82^S71ck}Y`NGQz`RA_YP5iejl$gyCd w0t=&*O2!2Rm&vL;0yA$hJnU(cRXnwYAz4e1RXB9Zfenj}c%OG^WMHrc0AYACZvX%Q literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protclass.gif b/SpriteLibrary/Doc/Help/icons/protclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..0f9294292a9b5f94a281de7657b5555d06bb4a96 GIT binary patch literal 600 zcmZ?wbhEHb6krfwc;>?J|NsBT?|$SrO#k-o#@{!8qi5gvaUU(s18H{JnJp2FehrhQA?)+N&>)iqU6Enm=U(5M5fY;zXP32Fyxl50uY&Kx0h7BEa_ z?`}`~_jQeF^42G}kG*|#swZ3i{XYG#uh+de5exJS!%zc?KUo+V7+e^1Kn@4R2?P7q z2A3um22KuUhUTv3Rt|a5j-IYweO2iRO$>saEp2LIin69W%r1i5vwPJSD61@SVc{0$ zW?}BrkT%y`zfo9Rh>wBUOiR|0hv}r@z5^@__Ply>21}VX=$>`4;I(99Gf{H6wt-Kg ziPy=-fn9;?QL_XqqYJM!8#}wmyT^>I0@{ov6%2_E_j}6!DimmZXz1u?W)nFfFy+ks jL+qbB9IhJYjEY8z0)sUGw};FY literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protdelegate.gif b/SpriteLibrary/Doc/Help/icons/protdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..b209f2d816d78188dbcd93907917d7a0ef34eaa9 GIT binary patch literal 1041 zcmZ?wbhEHb6krfw_&$N*|NsBD3+~+A6ZPXp#$vlAiyQQQ&G>zJNB#3xZ!e`@es@5B z!P>(;y1i#F-}-;v$UnLI#LD>oJSE4_{Mix^8B4gbm`4|&u-s;K7H|8YyZs6doR3x z_j&TdT|a;QzPRU+cYNjj^Xpc+uA07N@6j!{KD@sF_1lk==kIRVefIw2S1Y%i+_-M) z-ecE}pSyD{_tJ!U8y49u{fPP+3%f) zFMoJ(?Q;5+wL8vCUa)iavMt*WUINA!!ziF$2q^w!VPs&Kz@P&%5|k$xINmWRa>{fl zaL=>hVAE3JU}|3=V-}|qvSL}Us7ElH;!KMVf^0?;7;-c>3bamE^yxBiI-JPZ%5C1D zlgXgT(lA?dhsMfcr2~9UzGi0{Ltdygs2goj;e4RvFx{n0&S6)vf3EF6*!Fv!K9+hCZoKv#l4gfF7O*r}nJDO8B1BdLL*QL>%yjiiD@LlaY-SSZH> z@l#x!T?!Tw1r}#TG8VDV9AMK_f%j88HWS`1}G*;p8?0XW=!tN;K2 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protenumeration.gif b/SpriteLibrary/Doc/Help/icons/protenumeration.gif new file mode 100644 index 0000000000000000000000000000000000000000..cc96bb635982abc9d306f219ebdd71d29f95757c GIT binary patch literal 583 zcmZ?wbhEHb6krfwcoxO*cwfNXJyAbyWGrsbORt)`XI}KX1Nx8l`hR;p|JB8!{ye2m zk0*Y4Hsj0lneXqkzPnNX_FB!CXEVRQJ^%Vr>BoDW-`_5)>RI;bVSiQk^1Q~`_jY(b zy0~)tH18W596!9ie`%$~|MNy?78$<2Sp4<%g8arg54O9UKCt=oqt(k=EpDFOI=>_C z^~1B@UY)qPKlAC~sLu~q&1{HRGO_gO(U`_G=gmtdytz{O{&s73q0h$$edSS>Z8`2O znXX@-?fm*?)7KaKUYv;i_jS$9BQxKh=+*iB+9Zb^Gs7O8ZGCe4*rPpu?{7E1 zJe@hOGymnO^yk+$KR=Q3;`Xc`Z%*Ie;n|Zd|Lygmm*=Xh;%pvX-v0XbmZyg!|NsBb zKwqHvlZBCiA&NlUeGH<Cw3dOhd6|LdLB1d>tfmE9rf=H=>LCGe_~~Pf1c9Y zN2i`Wee~h={r~5U{yf?6e(!{TpKh+3o^ba}-}A@!UM^@{)@m^|U;ggVrVlT!J-L1C z-R)^#-)ySPar^!2$G7*FzkmPs?oj7~Znt-@?)5aqoY+)xdVOiOzvlA`ookyEUYv-% zee250RdruquX}!d^YrH6Z=YVqxf{HEdVl$pglFeFPwkt3Y{!I%VDAH)`d=)qdHV2H zN0rz4gA0FtdAw$N*6YVto?c$vlP%wqq4enP)mIzppFX($@9UaRXQte{ac+Kv?2pg) zvXVT$9>{z7?BR!Flm7qz&oIb<;!hSv1_ply9gw>~al*hpvBAHoxuvzO*;ZJ?L_*ch zrrn>JpF`1-!Cax;i&>CWhryd?;$&7A2J6M`@^gI{l(Z*K;^1%>5M?klYT{;7<8%+3`kU9um%8i0?sP{ literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protextension.gif b/SpriteLibrary/Doc/Help/icons/protextension.gif new file mode 100644 index 0000000000000000000000000000000000000000..dcd07f5e1a673de3120e3f82e6f8c24f8bcd723b GIT binary patch literal 589 zcmZ?wbhEHb6krfwc$Ua;zT^Cl8yR=^L@jR6yZ-3MV_iN9!Lg_h0dD?)!JI?*07!^J4C$ zcekf`l;3>)@T_a`r57h+f6e|~XHfs-_OS_m6My~sRi$11?bFL;trl$?{)cpY`0(P| z)%>dtImdfV`@X)}RHIk(Y{v7RZ21pYKGf;e?J3w>yyX9{b-&}M{F`Gl_uamCv6KFK zRNVBffAV_bo3O6WH&)F1@c6^Dpy{RRr6o)MKVI`#)q9p!z=9gx+OMzI`P4l;y}s19 z{_#|cX}?zgUKX%?zRmo*GwwY*^UOSc!>^gYUtfHkIPL$3s~`S-UE@>x;Pd0ppB{Yv z^6X2WTmSa1mX$%Pe$D@VG3(O*|Nj|i1{8m?FfuSCGU$M80L2Ld`>KY-rbJ!_hvtsX zRu_iI&Q2o+OEX)BsQzXKQC|)Y5r*g)iGDm>3LL=(%8SILmd1-a>Mx2*&^8H(u`pKg zv~q6dWA);!TW$=&E7f#Oe`l$Rxz<6f%QVnvsc#lR2=N-PEp0 zi(iQGm23xlsCTmx6C<+(o1{U3LTkHh1k2B0^Nc1&4w;G#3JX3QZsO>Wahl*1IH9w< MpF`rM1P6mP0LI|@H~;_u literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protfield.gif b/SpriteLibrary/Doc/Help/icons/protfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..9ae6833e0821dae813c941500d1e12a88c7c334f GIT binary patch literal 570 zcmZ?wbhEHb6krfwc;>;tU_A5x|NlR3WZc~owYWhqdiIT(XaB!DpnrKs{iYkgqh?)y zetq+ocMndijNf|XVSk>|hu8NjH$0wu^3#VG*J`%B{P^up-=WVH>mS!{dTN@y_21Vu zPp@u~^IO@q_ubdm>$(qo`S$7MlMla}w>;W@{@MRqDVk9m-o3illPzDl;mP8Q{~o;i zGvUa$|L2XqzS%VQ*xT1%{w%!k@5PDO)9XtQ-TW~B!oPR7r#(B<)Vk%-vrm7Tw!eDv z@z2rQA15CExbO7SHGA)Ags-pO^mOj|e=)OftiSf>^~1AIZXa9LYH{h=PoSq5h5}Ih z$->CM;K85+ax5rL7}%#bcr-P)crdnhG&3qnh_-h&F=~m+3hMWFFj{G7vxy11Pq1*1 zXJa!EQk|e@39u6a3Zboxf5ogJLn-A(TF}ZO&v9g|F zu=S9ZlTv5aVNvF~wvVrg!<31cnVrSMnCoe?Fs};JTbCwl2D?^QW+sjq4K62+*_N}g T@^*Y=aB^}~kW%AeVXy`OyDG~U literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protinterface.gif b/SpriteLibrary/Doc/Help/icons/protinterface.gif new file mode 100644 index 0000000000000000000000000000000000000000..a1b96d2c6a0b681cb6d65d30f8e212a3c2d29081 GIT binary patch literal 562 zcmZ?wbhEHb6krfwc;?OU<3`5aJyDAr^e*qHzj623`;VWm+%v`?v$?aqRzOH$9d)n96>o)Bhta8)1|Mi^~NxQF@vOm zFpg~@_}FOOyjstQ&;S4bA^8LW000jFEC2ui01*HX000DJ@X1NvaHVQ_1K!j%1YSl7 z!f_N1>3$&4x&a`esrtx(3nZYOW9aw+9|nSwFt7k*i6}5BU@#N{&QsbXpcV~;Vlpr` lA6`ZyJSHd3NCJW(HUuSx#?^k8=*4}04GVmI1%!PO06U9(O_u-w literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protoperator.gif b/SpriteLibrary/Doc/Help/icons/protoperator.gif new file mode 100644 index 0000000000000000000000000000000000000000..2cb75ab8b05d4b8d65401c5270ae31836ce04f9b GIT binary patch literal 547 zcmZ?wbhEHb6krfwc*el+|Ns9VH!|+-iCWyCcX>zsy94@eC70hmI`!t=#}BXX|37bZ zVrBfD`%n7wl)S3$oi{TqY?_(4!sFfTX;-}6{(W6jyEikvaza4Ui(`_)xl^8eeY5H7 z>vatWa<`xT8M)A|CtH5zwojcaUd`L~!Z)!hWtF#W`d-U~El+MAtK5~6TR*k)SVdBC zw@-X!Y1^C+FRn#4U3bhm@$S{V*!+%NTUVJzuYUdTY-s1F=hrt!_y0V-zBFO#f8&T{ znd<^isVOXLwRmwNHax4@J*u>DOEkmK1d2adzz){|k)SwXU~gz(Xlib0ZRXKz>tYb# zXp!h<5NolW$Y9jRz~5wLVJ6PU*6zq4JZ*U!JBuZ^v8;k5n}MpDi8aG2DMm&+^NB3d zBJxaJ%=?8HnV49am6~OmbQ$!xxfsuwwrDhKGpI8$G8;B)i8`ssF*r0mIHRcFY}2g# S#-5k6Rj^5?<@@qR25SJ^#+_vV literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protproperty.gif b/SpriteLibrary/Doc/Help/icons/protproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..55473d16e1321bc3e4cbcb5a165f51a55f9f07a0 GIT binary patch literal 1039 zcmZ?wbhEHb6krfw_}<0v|Ns9*>yP~Z`}@a@jJtcH7B}eC&b@zmNB#fTdA|N3?+)m% zS;^7aopc;aF~qSuL)@dr;_n%Q4680UFSixNI0mLUEZ?`} z#fjKI|NeP<``x{HCBWA4%k}hc51ZeA`ThNF*3aMnPp>b1vqEsyu3Ha3{O_ETIk~lX z-HeEP2NTm1f({(NxOUx|ohP4OIC1FT*EMe*ukg1r@C^+6_UWZhKrk1(z|V(8pU#J+ zhWY<`z2U@6*`93qx38c7dQ^1w#Qx{kHwUkAytY!$e!8Z#0Qaw5N-tkNdUUob(l^}4 zKd3%8`p({vmeRPNkL%z3{BNu-dg$ck?WaC|z7%m}$JFA|njgRZww`HSJiX!D?aX6m zj_D~fEtuBu_OQdJSDO-IVqZTz`|9S@2e(daUDkNw{LN3_{{H>2Wa z5)tO9PzZ2J_GH&-Ss@Y8nantYm#1ru=I3P>cwO3fRJb-d9AnnClQ?kWF^jXjXc*6g z$c9Ia99*{BJ_t@;!YeGKpvG|G(^D1(UXfKXou3^abO}bWaxgF~Xq_k0z;|QC1jh&b z3|Wj1J{Gi}W3*sq`!jP<22TS6qn83-LBoj&>MSxM0V#~@8yqsyc&rT485o(k)WY3j zk_{(t@v*f`TYRGLDcgp_PZFFH92y0f&hPLzaGOJjGe+eKpX|mT4oo^q4hDIDIzBZr IGBQ{L0HyC{fdBvi literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/protstructure.gif b/SpriteLibrary/Doc/Help/icons/protstructure.gif new file mode 100644 index 0000000000000000000000000000000000000000..af356a1db0b8e8821d2f6c94734b98354875e85d GIT binary patch literal 619 zcmZ?wbhEHb6krfwc$UoY|Ns9VH!{AxyYcwl4+i6ziyQQMbbBAJ67ih>_({Rj@9%G4 z-ckScarf_?zZ;Wy?(T{D{rb=STVGGi5Px?-|90w~Z?ETmJm&o8{h#-HbUxj>Qn>Bo z+bt6Pc}gc%#yc0E{D0o)*}2x=@BaLH{`>3eb$8C6fAjR(+szV3uHFA~tK`G$`;jYO zo_X;3?aa5^raC;Re)xImr+;79EUgtdc=Pp#7uW7C7yW!b?c;Ih&lh4oUyOO$@%+V! z*k!F2ukX$Le5>Ty%{}+ZA3SM!viAD_d&T$O-JUkjbbj>g8^7Kkt=jqK$EF|OUd?^` z=+xFD_rBaN{d6Jb)r41q|f1D*d+M+lPf8BUilmaDT_QSMz?o*$)gT1{wgxpDc_F49N^SAhSVn!oYr_ zA-Rcxi=By~sk1A&h22vqqNBUHRg}j^sJ*AFH<8EI!fYmk_@rbe_GucvViIb6Oq@%b zOoDl0%-2fuNs91tDs~tKxdkSf?v~`_<@FFb$fV01Et|lnaym3tUq?jAi`#~g(b~>c z&_66L(o&C&TiGCrU!K)bPSC~A!JbWt+nLFx!eAkT2=5Ob4nqdU13i55Od>XgPq~?x zm?e~$0vx!9%B@<;gKug_44ZM@5qqv}A&K6gC{1vdDqK8UQ3G B8EpUn literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubclass.gif b/SpriteLibrary/Doc/Help/icons/pubclass.gif new file mode 100644 index 0000000000000000000000000000000000000000..1a968ab633207f47ec5e3130ec676f0d43598bb0 GIT binary patch literal 368 zcmZ?wbhEHb6krfwxN5}k|NsAQ?`}lTzVZ0okG0#6JX|I6_s!pL?{8g7z5Mo8Mbf(8r2 zp(R0XIx!l@Rf3{yHW~z|JTT0ir6tMRSy-d6W0S){R=L^}M$Ar41`Kl)d3;!=d+P}E z3NrF(N$K-&bt%+03NkRT^J(+3Gq4n@_Qg(`W;COaS31~v-h5AKCe0;2o(q_n1avjl otTWmmAj8DX?Cr$DwQ<*;tzL4nyP1!AF&G}%w~yhJrz3+k0J6oL{{R30 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubdelegate.gif b/SpriteLibrary/Doc/Help/icons/pubdelegate.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a43eb261adccddee2206769150a9e2d964ed136 GIT binary patch literal 1041 zcmeH`{WFsR0LLG0>%7DvcU^bR#jQK%xKkV}(m0l0*4uHXy30!^gj%}Nd&*TyI9D<@ zvNh&y4`a+Q^=w|YC(LZ@1(C@%8_USsGcV;o=nv@o`{$R>=e{RT;ju>(oB$_ajSB4S z?2Hp9kP-_cv{GkSkR{361hPEe{IHnYgYvO@Za)p|{=Kq({`%wgZh2`S#V}j1RIsSn zG6dOdruCn`mi0N5A?Rh5*9uh`YLGWTss0+9mJ@aLUVa%@B$>cnO6Lh=jK;n?4p`kJ z(i_ZMTifYRixe5MrRCKb-9m56SjfdRc<6idjpwCR4Tg6{G6U4i&QHx4wEAB^W{d(@ zB^hF^tga&b4!;L5-Z7-T}_>mGjR`LrsAj0w1HTP=p6nY#WHr%q^+gG;Pa{2b1CXc-3NLHr%U>g(W;)*VhPC+v6*Ex zP-FXG@p~?n*#fqLNE2dST9qe{EH14un??M(;rA8oGL@#YXLNgeyP6|jUE82A8x~B< zYwL(sQ*W_s7JgzEGx!hQR!Byshxr;~;r!UGaRIEPgFWJ*i7Oee*qwt-{2`-h`HM&~ ztk68lrOhf$H?j(2lC!yx%rI}Jh0yC-d%kzi6_j&pBkOoVxk|~ZZGnvoOI2)95uMZB z$I8s1C?>T0-ch}Jk(f>XsWXoM&_`ar`!^`?fB$U2V*_Oc093$dm)QLTU}FM;Y~7-u zZ!RvVJ>D3S82*SOKk|uQ$4DFjJjJUNE5%{l03dpr?X=G|;1!ZWM5S82cE}uf5XFY^ zQ9x=zr60x%=XpFVoTrMO)1vk~^FfQ9X$3hR4uJ=NMeS?HzyRy)X^(@D9XcY=$|_zs zSmNS;LFEkHcP@3L@-V5Gxqf>ev^C`97msuIrMf~1QhX%SKhcEJKTffKNw}%Nk%$Qq zd7kJadkcv;8xp}&xLFhSR`TXVl3grTdMLMuVDApotZUHj_$OW=i!UNB787i>XOA5w W!S3M>-YMZwV($I|X%HF(1pfiQ@~q|n literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubenumeration.gif b/SpriteLibrary/Doc/Help/icons/pubenumeration.gif new file mode 100644 index 0000000000000000000000000000000000000000..46888adef937f09868b1aff485010ad847625183 GIT binary patch literal 339 zcmV-Z0j&N(Pbf!&&RmbLYrp^5KtqjHc?* za^l2s<;7g>)_nBlnc}@q=gfSDY)AL)rrf+_?%03v-ihkZZ{W8?^yiuK(X`h>z|#7Zt2TuZ-Jcm?a$@ITH?{E>B?vC+=aBHilvcv^yZk%qA_}lr+8dCZh@Qc z+k=5-L-F8_pNL-BziE|zWSN9&dR{ztS~=^`gneQ_?9_R@tdifjNurK)@7sl*iE#h_ z{{R30A^8LW002G!EC2ui01yBW000JXK%a0(EE!iiKn z4i!jX__&S%6r$8nkQg@~(+QQv5-foTK=WC#T3itp2L%roH9i4gVq_mXCIcrPD;kPw lY;FuaM>a1!czOUcM>;JygoYO~M-8eVBIr#a7&Z+tGuQt>#pOO#}?0x>=!f)>{|M-0G_pcwfZ(ZrA@_Mnf=Gpnq zmrw66=yp4>bIF?NS=s)YSxFvu&-Bf&kUg=fq9;S?<*K@;53avl(D?lEy|qmWUk~J+ z+Bg61(Wa*lZ~gr8_}GpKpUzCF%yD~nsPq4m`d=5zo}Y+(*xvO2|9=J?K=CIFBLjmu zgAPa@MKlJCh@8yFl7ixFRNZ06KZzOwPN+z zv<(MOw%xcR)*I23_It(+G5s19o*Z-S8h+h27B({_t~PU7W=)Mr<}8BjGt3=_Q{DAPKYq>lt?WK&MZn5;OW*I#-&3bo_v!Yh%ePmOK&_XZeGp5`ugJQ8r@p0fCbZnrk_qf<6Hlv&#nK%)epr> z{uingwQcx+G3(OH39sU({EMCR*Qf5`lT%MVJpS`{L6a^97CgNFGw z^IuPVb20bQulc`y>mR?{_b#mKvrp{<89)!|G(D#{&3~PuhqXFt$#GZ zZ{k#oX?JJbD^)N3^x(63{D%Mk|1%64p!k!8k%1wQK?md_P@FKZw=@Jc1#&W&G0fUL<3?)XqgsXpxwn5}&UoFGrw} zp=^gSE5D_rwY18jKnW>z4j)miKxbWpepgm2Kjl-+3OeG=EZUBDAGz5-V`O9zlv8v% Z#l^^Np~1s+_cM3E&u2`ke^{9qtN|Sl$x;9S literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubfield.gif b/SpriteLibrary/Doc/Help/icons/pubfield.gif new file mode 100644 index 0000000000000000000000000000000000000000..5aed17576f4493ccfdb12f7a8a55fa2cbd74041c GIT binary patch literal 311 zcmZ?wbhEHb6krfwxT?dzU_3K=_Klfm|8KhSJ8IVTsr#N)Zg{-)$iwF!e=of7Z{p#P z_ul^M+WW3)`>Uh3Kh|z~su8|^-|45`C41!jR$hMoYyGu9l^dR1diL|uvmbqjKJU8z z@&Et-hi-nj`r>!@fiGtt|J;A$y=n5+`4|4pJ^5+Ek#CDH{;OF3xMuV7x#$1I%)U{x z<>i{a_kda$$OVc&Sr{1@bbt^DKz?Fi3vrlM;GrYc@1gXp(Sy%ktu684k_eBco`+3u zGHjR}lT;k%iD)!t7%(bu_c~@WFz)DYZCE9=iP_9ulaaBGLC`~irKODBPllz(&xwyg Nd(!k7GhG}RtO2HXg;M|k literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubinterface.gif b/SpriteLibrary/Doc/Help/icons/pubinterface.gif new file mode 100644 index 0000000000000000000000000000000000000000..c38a4c46a9a7603bc498664c294c7c06a713e555 GIT binary patch literal 314 zcmZ?wbhEHb6krfwxN5|3ZVUQpY+eD{&7vsdijaq#l?{g*cFIk#xtz9|cLB$xCr-*j~8#$(6M z-8^&oPXD~kdyZV)fBed}{il;l`>VT_0BvC)4k-R)VPs%1V$cC82lE)~P;Pd*c`+O~Z`kDLHZ`GDkm))4&({9xIoBQn2?6teCjWv##q^{)3yhlKQmSzza_!jd?!NB&pZmx!AK(QVR|IF|6^@a~=O^W*cU zPpJB?`{m-RrckHo(dc?Bd*+zuoTskl%;w{)5%GwFo3C0s(vtkd@g)-Cw0$= z&;S4bA^8LW002J#EC2ui01yBR000JNz@KnPMEF$1LIW=%7c@T_3Mdpi3m6Y) bKQTH02`MrHm_Hv1IXxz!LKYr1LO}pKPRg(M literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/puboperator.gif b/SpriteLibrary/Doc/Help/icons/puboperator.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ebe10a7ec532625741cc8668b1126f2553cdc9c GIT binary patch literal 310 zcmZ?wbhEHb6krfwxXQrr|Nnols(WwVeRM0i9NPIQy8maw)c<$xKM81hkzP3=w|;8n zu9VpPj#Fw1>9hZrw#_+jW|+Ayuy9Ls{=)w$tGs;^tFCyvC9d#rk1DlH*wSzy_n4$` zQgL@-(@dZEO5=!S;aSa*3+-&v_nJnpcFZ}^d90##ZzcovfZ|UUuwgnN667ZawqS>b z0uLQ7ey+tr7X$^&y&alvbTCQyF}P%C2naMD{LsJ{u_oi`k&A!ZJQtmLF?n6|?Szd1 l$~7_D1)D@O#GT~o%bXk;tN}%7Un2kj literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/pubproperty.gif b/SpriteLibrary/Doc/Help/icons/pubproperty.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfad7b43006984b0d27846a9c6d23d9bfb94ec95 GIT binary patch literal 609 zcmV-n0-pUxNk%w1VGsZi0OoxFqOZjN|NsB}`$kSweVyO`>u#*1kM{rn|Ltf^PgLme z{K3f4!N}5ZVMGba^OtU*~#SN;C}nU8wy>*wOldhGfC z-?B2qlNCRgDag;+-oar{IxyDd|Io<7(&G5ItfO0aS?~1wb9H=)lBYqQGU~fAU|e1H z+i8`AQ-Et%&dS31i;r~82J1CqnCh$bzU0~3xIK4DP|np>HmqGY1XMO=I;CB?f-vmTl3Ob zwWfhgP*e8dgO;77(Bl94x+41PunGqd`1<`&JwatwPwmG`u9#ST!Em?A@zv`8`r>l@ z{{E(-U;O_6j$#x`PEp?J`mC+6`TPHJTtULg)AG+&+`UxY+0;u*PN0^6jF3?6!$9=c zXSvDci*ixKxRuk{FMI-(}u{I9ZgYI|Ii=*|Nj6000000A^8LW004aeEC2ui z01yBW000NRfPI34goTAAb!|{YZy0w+I6hs3BUVlYm|${jbV@vg87~N21rtDPTUBBe z1g$p)F)j!pEl+VPKX57pIdcY54;nTISsZ#DWI7%MUIuv&DGeYNd=ys^S|&mZ0eD3+ z0Wb|qMl4f;J4oCD0s#SGXK8j#1B5jJ>;V@;Gztny^#-X40001lf(S(f6vP0ZfH7E3 vFfl`d%ECSk3!*_-aK^Am}xe((G}uY&L6G3OIA#BZnGdAnKS{;jW_hkyQl{pal#iQn)3e7+F# zey`4-_kX^eH{!7h~?6KmX}M%-b)&zODK8`Bv%2V=k|!ynfp8 ze4gq2kH?)qEd2O(=Gz~eetcf~>GQ3U$dxanR=jvn{qR!i&%1CPg|qcFzfuSnN3rm2{>v z$jq9|;iMv{Ai~7RyQIn8jYC~(l?0QVFh8$khXseZl!o*UIbME#ec^qK0!o6?Ym`q| zI~(W;%X?Z1IIiJi6E#)S)zmU!Z92#Fkc&rD+sxLL^>!2AJ2B1=tS+qLCcFj<667bb vva>O?uq!GFSrunAz6B literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/slMobile.gif b/SpriteLibrary/Doc/Help/icons/slMobile.gif new file mode 100644 index 0000000000000000000000000000000000000000..5edc31f94c61a7a50c3285ef00dcbe86e8690974 GIT binary patch literal 909 zcmZ?wbhEHb6krfw_|Cw<&~QMZ;eZ1WEjW;{;6MWq9XPP;)QA7SKm7myA1FTxMnhm2 zhky>qZ=k%uz){2?%pv2kVSxi92Q!O8!-mAe%}h)j784dUxU@4Vuq~MJz`>+3{L1~0m@lAUkDoRe1;9$K%)+a)R?z+epkVS_+3 literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/icons/static.gif b/SpriteLibrary/Doc/Help/icons/static.gif new file mode 100644 index 0000000000000000000000000000000000000000..33723a92be0a7b2b9fc8057fb6f9a2a3ee729a7e GIT binary patch literal 879 zcmZ?wbhEHb;QNUQFEiC% z7n}SzyY0{GNB_QlU>F6XAuzl`K=CIFBLf3JgAT}Bpgh6A;lm)$!85^uv7wn=Tt*;+ zVd3FsMix6Afdzk*vw)JdXGPApH;j#U@kM7;k+&W>y z^wuAltPk$pT~`~kchkxZQyRXfGPHEeZ0eYOFP8aU0_X7)rxq_>)-z%8ruFMDoj-H> z^qK2dF6~Uw+p%NUy!ne7dzQ|dzj*Jy{qIs)>l%8FB+6~*F05{x+}7UT(%Sp$*RQVL z1$(z`+`VV-`swY5cWvHL=&-5K`^3RLyVou`apL5QScdH>+WX>V>l%9-nkN1E^JnSO z73=bxUcUi?x988Dd;aX{#Okt|hW@>K_pi-%S+;WB%NNhr<-4qD%f55_c6Z-`|Ns9p z&=Dy9WMO1rh-T0M*$Ijh2KJ_gNS5f9*0wel8;SOwRxe)eu-;y0H~Yyw>~``!!FopR zvOZc2t?JC;`aM?e!YwYI){K*##LWDIqD=f|C@AVGi)hb?W)k3Z3_TL97O1MibA-#o zAjFl8V}^y0xu&Uc#AHKeR_|zOK7O4ZTP2On(E)-oa_vl_QkK50k`CbvjSLLd0ER== A(*OVf literal 0 HcmV?d00001 diff --git a/SpriteLibrary/Doc/Help/index.html b/SpriteLibrary/Doc/Help/index.html new file mode 100644 index 0000000..e5df4ca --- /dev/null +++ b/SpriteLibrary/Doc/Help/index.html @@ -0,0 +1,14 @@ + + + + + + + SpriteLibrary - Redirect + + +

    If you are not redirected automatically, follow this link to the default topic.

    + + diff --git a/SpriteLibrary/Doc/Help/scripts/branding-Website.js b/SpriteLibrary/Doc/Help/scripts/branding-Website.js new file mode 100644 index 0000000..06ab980 --- /dev/null +++ b/SpriteLibrary/Doc/Help/scripts/branding-Website.js @@ -0,0 +1,624 @@ +//=============================================================================================================== +// System : Sandcastle Help File Builder +// File : branding-Website.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 03/04/2015 +// Note : Copyright 2014-2015, Eric Woodruff, All rights reserved +// Portions Copyright 2014 Sam Harwell, All rights reserved +// +// This file contains the methods necessary to implement the lightweight TOC and search functionality. +// +// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be +// distributed with the code. It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB. This +// notice, the author's name, and all copyright notices must remain intact in all applications, documentation, +// and source files. +// +// Date Who Comments +// ============================================================================================================== +// 05/04/2014 EFW Created the code based on a combination of the lightweight TOC code from Sam Harwell and +// the existing search code from SHFB. +//=============================================================================================================== + +// Width of the TOC +var tocWidth; + +// Search method (0 = To be determined, 1 = ASPX, 2 = PHP, anything else = client-side script +var searchMethod = 0; + +// Table of contents script + +// Initialize the TOC by restoring its width from the cookie if present +function InitializeToc() +{ + tocWidth = parseInt(GetCookie("TocWidth", "280")); + ResizeToc(); + $(window).resize(SetNavHeight) +} + +function SetNavHeight() +{ + $leftNav = $("#leftNav") + $topicContent = $("#TopicContent") + leftNavPadding = $leftNav.outerHeight() - $leftNav.height() + contentPadding = $topicContent.outerHeight() - $topicContent.height() + // want outer height of left navigation div to match outer height of content + leftNavHeight = $topicContent.outerHeight() - leftNavPadding + $leftNav.css("min-height", leftNavHeight + "px") +} + +// Increase the TOC width +function OnIncreaseToc() +{ + if(tocWidth < 1) + tocWidth = 280; + else + tocWidth += 100; + + if(tocWidth > 680) + tocWidth = 0; + + ResizeToc(); + SetCookie("TocWidth", tocWidth); +} + +// Reset the TOC to its default width +function OnResetToc() +{ + tocWidth = 0; + + ResizeToc(); + SetCookie("TocWidth", tocWidth); +} + +// Resize the TOC width +function ResizeToc() +{ + var toc = document.getElementById("leftNav"); + + if(toc) + { + // Set TOC width + toc.style.width = tocWidth + "px"; + + var leftNavPadding = 10; + + document.getElementById("TopicContent").style.marginLeft = (tocWidth + leftNavPadding) + "px"; + + // Position images + document.getElementById("TocResize").style.left = (tocWidth + leftNavPadding) + "px"; + + // Hide/show increase TOC width image + document.getElementById("ResizeImageIncrease").style.display = (tocWidth >= 680) ? "none" : ""; + + // Hide/show reset TOC width image + document.getElementById("ResizeImageReset").style.display = (tocWidth < 680) ? "none" : ""; + } + + SetNavHeight() +} + +// Toggle a TOC entry between its collapsed and expanded state +function Toggle(item) +{ + var isExpanded = $(item).hasClass("tocExpanded"); + + $(item).toggleClass("tocExpanded tocCollapsed"); + + if(isExpanded) + { + Collapse($(item).parent()); + } + else + { + var childrenLoaded = $(item).parent().attr("data-childrenloaded"); + + if(childrenLoaded) + { + Expand($(item).parent()); + } + else + { + var tocid = $(item).next().attr("tocid"); + + $.ajax({ + url: "../toc/" + tocid + ".xml", + async: true, + dataType: "xml", + success: function(data) + { + BuildChildren($(item).parent(), data); + } + }); + } + } +} + +// HTML encode a value for use on the page +function HtmlEncode(value) +{ + // Create an in-memory div, set it's inner text (which jQuery automatically encodes) then grab the encoded + // contents back out. The div never exists on the page. + return $('
    ').text(value).html(); +} + +// Build the child entries of a TOC entry +function BuildChildren(tocDiv, data) +{ + var childLevel = +tocDiv.attr("data-toclevel") + 1; + var childTocLevel = childLevel >= 10 ? 10 : childLevel; + var elements = data.getElementsByTagName("HelpTOCNode"); + + var isRoot = true; + + if(data.getElementsByTagName("HelpTOC").length == 0) + { + // The first node is the root node of this group, don't show it again + isRoot = false; + } + + for(var i = elements.length - 1; i > 0 || (isRoot && i == 0); i--) + { + var childHRef, childId = elements[i].getAttribute("Url"); + + if(childId != null && childId.length > 5) + { + // The Url attribute has the form "html/{childId}.htm" + childHRef = childId.substring(5, childId.length); + childId = childId.substring(5, childId.lastIndexOf(".")); + } + else + { + // The Id attribute is in raw form. There is no URL (empty container node). In this case, we'll + // just ignore it and go nowhere. It's a rare case that isn't worth trying to get the first child. + // Instead, we'll just expand the node (see below). + childHRef = "#"; + childId = elements[i].getAttribute("Id"); + } + + var existingItem = null; + + tocDiv.nextAll().each(function() + { + if(!existingItem && $(this).children().last("a").attr("tocid") == childId) + { + existingItem = $(this); + } + }); + + if(existingItem != null) + { + // First move the children of the existing item + var existingChildLevel = +existingItem.attr("data-toclevel"); + var doneMoving = false; + var inserter = tocDiv; + + existingItem.nextAll().each(function() + { + if(!doneMoving && +$(this).attr("data-toclevel") > existingChildLevel) + { + inserter.after($(this)); + inserter = $(this); + $(this).attr("data-toclevel", +$(this).attr("data-toclevel") + childLevel - existingChildLevel); + + if($(this).hasClass("current")) + $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel") + " current")); + else + $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel"))); + } + else + { + doneMoving = true; + } + }); + + // Now move the existing item itself + tocDiv.after(existingItem); + existingItem.attr("data-toclevel", childLevel); + existingItem.attr("class", "toclevel" + childLevel); + } + else + { + var hasChildren = elements[i].getAttribute("HasChildren"); + var childTitle = HtmlEncode(elements[i].getAttribute("Title")); + var expander = ""; + + if(hasChildren) + expander = ""; + + var text = "
    " + + expander + "" + + childTitle + "
    "; + + tocDiv.after(text); + } + } + + tocDiv.attr("data-childrenloaded", true); +} + +// Collapse a TOC entry +function Collapse(tocDiv) +{ + // Hide all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the + // current item's value. + var tocLevel = +tocDiv.attr("data-toclevel"); + var done = false; + + tocDiv.nextAll().each(function() + { + if(!done && +$(this).attr("data-toclevel") > tocLevel) + { + $(this).hide(); + } + else + { + done = true; + } + }); +} + +// Expand a TOC entry +function Expand(tocDiv) +{ + // Show all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the + // current item's value + var tocLevel = +tocDiv.attr("data-toclevel"); + var done = false; + + tocDiv.nextAll().each(function() + { + if(done) + { + return; + } + + var childTocLevel = +$(this).attr("data-toclevel"); + + if(childTocLevel == tocLevel + 1) + { + $(this).show(); + + if($(this).children("a").first().hasClass("tocExpanded")) + { + Expand($(this)); + } + } + else if(childTocLevel > tocLevel + 1) + { + // Ignore this node, handled by recursive calls + } + else + { + done = true; + } + }); +} + +// This is called to prepare for dragging the sizer div +function OnMouseDown(event) +{ + document.addEventListener("mousemove", OnMouseMove, true); + document.addEventListener("mouseup", OnMouseUp, true); + event.preventDefault(); +} + +// Resize the TOC as the sizer is dragged +function OnMouseMove(event) +{ + tocWidth = (event.clientX > 700) ? 700 : (event.clientX < 100) ? 100 : event.clientX; + + ResizeToc(); +} + +// Finish the drag operation when the mouse button is released +function OnMouseUp(event) +{ + document.removeEventListener("mousemove", OnMouseMove, true); + document.removeEventListener("mouseup", OnMouseUp, true); + + SetCookie("TocWidth", tocWidth); +} + +// Search functions + +// Transfer to the search page from a topic +function TransferToSearchPage() +{ + var searchText = document.getElementById("SearchTextBox").value.trim(); + + if(searchText.length != 0) + document.location.replace(encodeURI("../search.html?SearchText=" + searchText)); +} + +// Initiate a search when the search page loads +function OnSearchPageLoad() +{ + var queryString = decodeURI(document.location.search); + + if(queryString != "") + { + var idx, options = queryString.split(/[\?\=\&]/); + + for(idx = 0; idx < options.length; idx++) + if(options[idx] == "SearchText" && idx + 1 < options.length) + { + document.getElementById("txtSearchText").value = options[idx + 1]; + PerformSearch(); + break; + } + } +} + +// Perform a search using the best available method +function PerformSearch() +{ + var searchText = document.getElementById("txtSearchText").value; + var sortByTitle = document.getElementById("chkSortByTitle").checked; + var searchResults = document.getElementById("searchResults"); + + if(searchText.length == 0) + { + searchResults.innerHTML = "Nothing found"; + return; + } + + searchResults.innerHTML = "Searching..."; + + // Determine the search method if not done already. The ASPX and PHP searches are more efficient as they + // run asynchronously server-side. If they can't be used, it defaults to the client-side script below which + // will work but has to download the index files. For large help sites, this can be inefficient. + if(searchMethod == 0) + searchMethod = DetermineSearchMethod(); + + if(searchMethod == 1) + { + $.ajax({ + type: "GET", + url: encodeURI("SearchHelp.aspx?Keywords=" + searchText + "&SortByTitle=" + sortByTitle), + success: function(html) + { + searchResults.innerHTML = html; + } + }); + + return; + } + + if(searchMethod == 2) + { + $.ajax({ + type: "GET", + url: encodeURI("SearchHelp.php?Keywords=" + searchText + "&SortByTitle=" + sortByTitle), + success: function(html) + { + searchResults.innerHTML = html; + } + }); + + return; + } + + // Parse the keywords + var keywords = ParseKeywords(searchText); + + // Get the list of files. We'll be getting multiple files so we need to do this synchronously. + var fileList = []; + + $.ajax({ + type: "GET", + url: "fti/FTI_Files.json", + dataType: "json", + async: false, + success: function(data) + { + $.each(data, function(key, val) + { + fileList[key] = val; + }); + } + }); + + var letters = []; + var wordDictionary = {}; + var wordNotFound = false; + + // Load the keyword files for each keyword starting letter + for(var idx = 0; idx < keywords.length && !wordNotFound; idx++) + { + var letter = keywords[idx].substring(0, 1); + + if($.inArray(letter, letters) == -1) + { + letters.push(letter); + + $.ajax({ + type: "GET", + url: "fti/FTI_" + letter.charCodeAt(0) + ".json", + dataType: "json", + async: false, + success: function(data) + { + var wordCount = 0; + + $.each(data, function(key, val) + { + wordDictionary[key] = val; + wordCount++; + }); + + if(wordCount == 0) + wordNotFound = true; + } + }); + } + } + + if(wordNotFound) + searchResults.innerHTML = "Nothing found"; + else + searchResults.innerHTML = SearchForKeywords(keywords, fileList, wordDictionary, sortByTitle); +} + +// Determine the search method by seeing if the ASPX or PHP search pages are present and working +function DetermineSearchMethod() +{ + var method = 3; + + try + { + $.ajax({ + type: "GET", + url: "SearchHelp.aspx", + async: false, + success: function(html) + { + if(html.substring(0, 8) == "") + method = 1; + } + }); + + if(method == 3) + $.ajax({ + type: "GET", + url: "SearchHelp.php", + async: false, + success: function(html) + { + if(html.substring(0, 8) == "") + method = 2; + } + }); + } + catch(e) + { + } + + return method; +} + +// Split the search text up into keywords +function ParseKeywords(keywords) +{ + var keywordList = []; + var checkWord; + var words = keywords.split(/\W+/); + + for(var idx = 0; idx < words.length; idx++) + { + checkWord = words[idx].toLowerCase(); + + if(checkWord.length > 2) + { + var charCode = checkWord.charCodeAt(0); + + if((charCode < 48 || charCode > 57) && $.inArray(checkWord, keywordList) == -1) + keywordList.push(checkWord); + } + } + + return keywordList; +} + +// Search for keywords and generate a block of HTML containing the results +function SearchForKeywords(keywords, fileInfo, wordDictionary, sortByTitle) +{ + var matches = [], matchingFileIndices = [], rankings = []; + var isFirst = true; + + for(var idx = 0; idx < keywords.length; idx++) + { + var word = keywords[idx]; + var occurrences = wordDictionary[word]; + + // All keywords must be found + if(occurrences == null) + return "Nothing found"; + + matches[word] = occurrences; + var occurrenceIndices = []; + + // Get a list of the file indices for this match. These are 64-bit numbers but JavaScript only does + // bit shifts on 32-bit values so we divide by 2^16 to get the same effect as ">> 16" and use floor() + // to truncate the result. + for(var ind in occurrences) + occurrenceIndices.push(Math.floor(occurrences[ind] / Math.pow(2, 16))); + + if(isFirst) + { + isFirst = false; + + for(var matchInd in occurrenceIndices) + matchingFileIndices.push(occurrenceIndices[matchInd]); + } + else + { + // After the first match, remove files that do not appear for all found keywords + for(var checkIdx = 0; checkIdx < matchingFileIndices.length; checkIdx++) + if($.inArray(matchingFileIndices[checkIdx], occurrenceIndices) == -1) + { + matchingFileIndices.splice(checkIdx, 1); + checkIdx--; + } + } + } + + if(matchingFileIndices.length == 0) + return "Nothing found"; + + // Rank the files based on the number of times the words occurs + for(var fileIdx = 0; fileIdx < matchingFileIndices.length; fileIdx++) + { + // Split out the title, filename, and word count + var matchingIdx = matchingFileIndices[fileIdx]; + var fileIndex = fileInfo[matchingIdx].split(/\0/); + + var title = fileIndex[0]; + var filename = fileIndex[1]; + var wordCount = parseInt(fileIndex[2]); + var matchCount = 0; + + for(var idx = 0; idx < keywords.length; idx++) + { + occurrences = matches[keywords[idx]]; + + for(var ind in occurrences) + { + var entry = occurrences[ind]; + + // These are 64-bit numbers but JavaScript only does bit shifts on 32-bit values so we divide + // by 2^16 to get the same effect as ">> 16" and use floor() to truncate the result. + if(Math.floor(entry / Math.pow(2, 16)) == matchingIdx) + matchCount += (entry & 0xFFFF); + } + } + + rankings.push({ Filename: filename, PageTitle: title, Rank: matchCount * 1000 / wordCount }); + + if(rankings.length > 99) + break; + } + + rankings.sort(function(x, y) + { + if(!sortByTitle) + return y.Rank - x.Rank; + + return x.PageTitle.localeCompare(y.PageTitle); + }); + + // Format and return the results + var content = "
      "; + + for(var r in rankings) + content += "
    1. " + + rankings[r].PageTitle + "
    2. "; + + content += "
    "; + + if(rankings.length < matchingFileIndices.length) + content += "

    Omitted " + (matchingFileIndices.length - rankings.length) + " more results

    "; + + return content; +} diff --git a/SpriteLibrary/Doc/Help/scripts/branding.js b/SpriteLibrary/Doc/Help/scripts/branding.js new file mode 100644 index 0000000..3e55541 --- /dev/null +++ b/SpriteLibrary/Doc/Help/scripts/branding.js @@ -0,0 +1,560 @@ +//=============================================================================================================== +// System : Sandcastle Help File Builder +// File : branding.js +// Author : Eric Woodruff (Eric@EWoodruff.us) +// Updated : 10/08/2015 +// Note : Copyright 2014-2015, Eric Woodruff, All rights reserved +// Portions Copyright 2010-2014 Microsoft, All rights reserved +// +// This file contains the methods necessary to implement the language filtering, collapsible section, and +// copy to clipboard options. +// +// This code is published under the Microsoft Public License (Ms-PL). A copy of the license should be +// distributed with the code and can be found at the project website: https://GitHub.com/EWSoftware/SHFB. This +// notice, the author's name, and all copyright notices must remain intact in all applications, documentation, +// and source files. +// +// Date Who Comments +// ============================================================================================================== +// 05/04/2014 EFW Created the code based on the MS Help Viewer script +//=============================================================================================================== + +// The IDs of all code snippet sets on the same page are stored so that we can keep them in synch when a tab is +// selected. +var allTabSetIds = new Array(); + +// The IDs of language-specific text (LST) spans are used as dictionary keys so that we can get access to the +// spans and update them when the user changes to a different language tab. The values of the dictionary +// objects are pipe separated language-specific attributes (lang1=value|lang2=value|lang3=value). The language +// ID can be specific (cs, vb, cpp, etc.) or may be a neutral entry (nu) which specifies text common to multiple +// languages. If a language is not present and there is no neutral entry, the span is hidden for all languages +// to which it does not apply. +var allLSTSetIds = new Object(); + +// Help 1 persistence support. This code must appear inline. +var isHelp1; + +var curLoc = document.location + "."; + +if(curLoc.indexOf("mk:@MSITStore") == 0) +{ + isHelp1 = true; + curLoc = "ms-its:" + curLoc.substring(14, curLoc.length - 1); + document.location.replace(curLoc); +} +else + if(curLoc.indexOf("ms-its:") == 0) + isHelp1 = true; + else + isHelp1 = false; + +// The OnLoad method +function OnLoad(defaultLanguage) +{ + var defLang; + + if(typeof (defaultLanguage) == "undefined" || defaultLanguage == null || defaultLanguage == "") + defLang = "vb"; + else + defLang = defaultLanguage; + + // In MS Help Viewer, the transform the topic is ran through can move the footer. Move it back where it + // belongs if necessary. + try + { + var footer = document.getElementById("pageFooter") + + if(footer) + { + var footerParent = document.body; + + if(footer.parentElement != footerParent) + { + footer.parentElement.removeChild(footer); + footerParent.appendChild(footer); + } + } + } + catch(e) + { + } + + var language = GetCookie("CodeSnippetContainerLanguage", defLang); + + // If LST exists on the page, set the LST to show the user selected programming language + UpdateLST(language); + + // If code snippet groups exist, set the current language for them + if(allTabSetIds.length > 0) + { + var i = 0; + + while(i < allTabSetIds.length) + { + var tabCount = 1; + + // The tab count may vary so find the last one in this set + while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null) + tabCount++; + + tabCount--; + + // If not grouped, skip it + if(tabCount > 1) + SetCurrentLanguage(allTabSetIds[i], language, tabCount); + + i++; + } + } + + InitializeToc(); +} + +// This is just a place holder. The website script implements this function to initialize it's in-page TOC pane +function InitializeToc() +{ +} + +// This function executes in the OnLoad event and ChangeTab action on code snippets. The function parameter +// is the user chosen programming language. This function iterates through the "allLSTSetIds" dictionary object +// to update the node value of the LST span tag per the user's chosen programming language. +function UpdateLST(language) +{ + for(var lstMember in allLSTSetIds) + { + var devLangSpan = document.getElementById(lstMember); + + if(devLangSpan != null) + { + // There may be a carriage return before the LST span in the content so the replace function below + // is used to trim the whitespace at the end of the previous node of the current LST node. + if(devLangSpan.previousSibling != null && devLangSpan.previousSibling.nodeValue != null) + devLangSpan.previousSibling.nodeValue = devLangSpan.previousSibling.nodeValue.replace(/\s+$/, ""); + + var langs = allLSTSetIds[lstMember].split("|"); + var k = 0; + var keyValue; + + while(k < langs.length) + { + keyValue = langs[k].split("="); + + if(keyValue[0] == language) + { + devLangSpan.innerHTML = keyValue[1]; + + // Help 1 and MS Help Viewer workaround. Add a space if the following text element starts + // with a space to prevent things running together. + if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null) + { + if (devLangSpan.parentNode.nextSibling.nodeValue != null && + !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/)) + { + devLangSpan.innerHTML = keyValue[1] + " "; + } + } + break; + } + + k++; + } + + // If not found, default to the neutral language. If there is no neutral language entry, clear the + // content to hide it. + if(k >= langs.length) + { + if(language != "nu") + { + k = 0; + + while(k < langs.length) + { + keyValue = langs[k].split("="); + + if(keyValue[0] == "nu") + { + devLangSpan.innerHTML = keyValue[1]; + + // Help 1 and MS Help Viewer workaround. Add a space if the following text element + // starts with a space to prevent things running together. + if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null) + { + if(devLangSpan.parentNode.nextSibling.nodeValue != null && + !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/)) + { + devLangSpan.innerHTML = keyValue[1] + " "; + } + } + break; + } + + k++; + } + } + + if(k >= langs.length) + devLangSpan.innerHTML = ""; + } + } + } +} + +// Get the specified cookie. If not found, return the specified default value. +function GetCookie(cookieName, defaultValue) +{ + if(isHelp1) + { + try + { + var globals = Help1Globals; + + var value = globals.Load(cookieName); + + if(value == null) + value = defaultValue; + + return value; + } + catch(e) + { + return defaultValue; + } + } + + var cookie = document.cookie.split("; "); + + for(var i = 0; i < cookie.length; i++) + { + var crumb = cookie[i].split("="); + + if(cookieName == crumb[0]) + return unescape(crumb[1]) + } + + return defaultValue; +} + +// Set the specified cookie to the specified value +function SetCookie(name, value) +{ + if(isHelp1) + { + try + { + var globals = Help1Globals; + + globals.Save(name, value); + } + catch(e) + { + } + + return; + } + + var today = new Date(); + + today.setTime(today.getTime()); + + // Set the expiration time to be 60 days from now (in milliseconds) + var expires_date = new Date(today.getTime() + (60 * 1000 * 60 * 60 * 24)); + + document.cookie = name + "=" + escape(value) + ";expires=" + expires_date.toGMTString() + ";path=/"; +} + +// Add a language-specific text ID +function AddLanguageSpecificTextSet(lstId) +{ + var keyValue = lstId.split("?") + + allLSTSetIds[keyValue[0]] = keyValue[1]; +} + +var clipboardHandler; + +// Add a language tab set ID +function AddLanguageTabSet(tabSetId) +{ + allTabSetIds.push(tabSetId); + + // Create the clipboard handler on first use + if(clipboardHandler == null && typeof (Clipboard) == "function") + { + clipboardHandler = new Clipboard('.copyCodeSnippet', + { + text: function (trigger) + { + // Get the code to copy to the clipboard from the active tab of the given tab set + var i = 1, tabSetId = trigger.id; + var pos = tabSetId.indexOf('_'); + + if(pos == -1) + return ""; + + tabSetId = tabSetId.substring(0, pos); + + do + { + contentId = tabSetId + "_code_Div" + i; + tabTemp = document.getElementById(contentId); + + if(tabTemp != null && tabTemp.style.display != "none") + break; + + i++; + + } while(tabTemp != null); + + if(tabTemp == null) + return ""; + + return document.getElementById(contentId).innerText; + } + }); + } +} + +// Switch the active tab for all of other code snippets +function ChangeTab(tabSetId, language, snippetIdx, snippetCount) +{ + SetCookie("CodeSnippetContainerLanguage", language); + + SetActiveTab(tabSetId, snippetIdx, snippetCount); + + // If LST exists on the page, set the LST to show the user selected programming language + UpdateLST(language); + + var i = 0; + + while(i < allTabSetIds.length) + { + // We just care about other snippets + if(allTabSetIds[i] != tabSetId) + { + // Other tab sets may not have the same number of tabs + var tabCount = 1; + + while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null) + tabCount++; + + tabCount--; + + // If not grouped, skip it + if(tabCount > 1) + SetCurrentLanguage(allTabSetIds[i], language, tabCount); + } + + i++; + } +} + +// Sets the current language in the specified tab set +function SetCurrentLanguage(tabSetId, language, tabCount) +{ + var tabIndex = 1; + + while(tabIndex <= tabCount) + { + var tabTemp = document.getElementById(tabSetId + "_tab" + tabIndex); + + if(tabTemp != null && tabTemp.innerHTML.indexOf("'" + language + "'") != -1) + break; + + tabIndex++; + } + + if(tabIndex > tabCount) + { + // Select the first non-disabled tab + tabIndex = 1; + + if(document.getElementById(tabSetId + "_tab1").className == "codeSnippetContainerTabPhantom") + { + tabIndex++; + + while(tabIndex <= tabCount) + { + var tab = document.getElementById(tabSetId + "_tab" + tabIndex); + + if(tab.className != "codeSnippetContainerTabPhantom") + { + tab.className = "codeSnippetContainerTabActive"; + document.getElementById(tabSetId + "_code_Div" + j).style.display = "block"; + break; + } + + tabIndex++; + } + } + } + + SetActiveTab(tabSetId, tabIndex, tabCount); +} + +// Set the active tab within a tab set +function SetActiveTab(tabSetId, tabIndex, tabCount) +{ + var i = 1; + + while(i <= tabCount) + { + var tabTemp = document.getElementById(tabSetId + "_tab" + i); + + if (tabTemp != null) + { + if(tabTemp.className == "codeSnippetContainerTabActive") + tabTemp.className = "codeSnippetContainerTab"; + else + if(tabTemp.className == "codeSnippetContainerTabPhantom") + tabTemp.style.display = "none"; + + var codeTemp = document.getElementById(tabSetId + "_code_Div" + i); + + if(codeTemp.style.display != "none") + codeTemp.style.display = "none"; + } + + i++; + } + + // Phantom tabs are shown or hidden as needed + if(document.getElementById(tabSetId + "_tab" + tabIndex).className != "codeSnippetContainerTabPhantom") + document.getElementById(tabSetId + "_tab" + tabIndex).className = "codeSnippetContainerTabActive"; + else + document.getElementById(tabSetId + "_tab" + tabIndex).style.display = "block"; + + document.getElementById(tabSetId + "_code_Div" + tabIndex).style.display = "block"; +} + +// Copy the code from the active tab of the given tab set to the clipboard +function CopyToClipboard(tabSetId) +{ + var tabTemp, contentId; + var i = 1; + + if(typeof (Clipboard) == "function") + return; + + do + { + contentId = tabSetId + "_code_Div" + i; + tabTemp = document.getElementById(contentId); + + if(tabTemp != null && tabTemp.style.display != "none") + break; + + i++; + + } while(tabTemp != null); + + if(tabTemp == null) + return; + + if(window.clipboardData) + { + try + { + window.clipboardData.setData("Text", document.getElementById(contentId).innerText); + } + catch(e) + { + alert("Permission denied. Enable copying to the clipboard."); + } + } + else if(window.netscape) + { + try + { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + + var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance( + Components.interfaces.nsIClipboard); + + if(!clip) + return; + + var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance( + Components.interfaces.nsITransferable); + + if(!trans) + return; + + trans.addDataFlavor("text/unicode"); + + var str = new Object(); + var len = new Object(); + var str = Components.classes["@mozilla.org/supports-string;1"].createInstance( + Components.interfaces.nsISupportsString); + + var copytext = document.getElementById(contentId).textContent; + + str.data = copytext; + trans.setTransferData("text/unicode", str, copytext.length * 2); + + var clipid = Components.interfaces.nsIClipboard; + + clip.setData(trans, null, clipid.kGlobalClipboard); + } + catch(e) + { + alert("Permission denied. Enter \"about:config\" in the address bar and double-click the \"signed.applets.codebase_principal_support\" setting to enable copying to the clipboard."); + } + } +} + +// Expand or collapse a section +function SectionExpandCollapse(togglePrefix) +{ + var image = document.getElementById(togglePrefix + "Toggle"); + var section = document.getElementById(togglePrefix + "Section"); + + if(image != null && section != null) + if(section.style.display == "") + { + image.src = image.src.replace("SectionExpanded.png", "SectionCollapsed.png"); + section.style.display = "none"; + } + else + { + image.src = image.src.replace("SectionCollapsed.png", "SectionExpanded.png"); + section.style.display = ""; + } +} + +// Expand or collapse a section when it has the focus and Enter is hit +function SectionExpandCollapse_CheckKey(togglePrefix, eventArgs) +{ + if(eventArgs.keyCode == 13) + SectionExpandCollapse(togglePrefix); +} + +// Help 1 persistence object. This requires a hidden input element on the page with a class of "userDataStyle" +// defined in the style sheet that implements the user data binary behavior: +// +var Help1Globals = +{ + UserDataCache: function() + { + var userData = document.getElementById("userDataCache"); + + return userData; + }, + + Load: function(key) + { + var userData = this.UserDataCache(); + + userData.load("userDataSettings"); + + var value = userData.getAttribute(key); + + return value; + }, + + Save: function(key, value) + { + var userData = this.UserDataCache(); + userData.setAttribute(key, value); + userData.save("userDataSettings"); + } +}; diff --git a/SpriteLibrary/Doc/Help/scripts/clipboard.min.js b/SpriteLibrary/Doc/Help/scripts/clipboard.min.js new file mode 100644 index 0000000..580433f --- /dev/null +++ b/SpriteLibrary/Doc/Help/scripts/clipboard.min.js @@ -0,0 +1,7 @@ +/*! + * clipboard.js v1.5.12 + * https://zenorocha.github.io/clipboard.js + * + * Licensed MIT © Zeno Rocha + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var s="function"==typeof require&&require;if(!c&&s)return s(a,!0);if(r)return r(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n?n:t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;ao;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],i=[];if(o&&e)for(var r=0,a=o.length;a>r;r++)o[r].fn!==e&&o[r].fn._!==e&&i.push(o[r]);return i.length?n[t]=i:delete n[t],this}},e.exports=o},{}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","select"],r);else if("undefined"!=typeof o)r(n,e("select"));else{var a={exports:{}};r(a,i.select),i.clipboardAction=a.exports}}(this,function(t,e){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(e),r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a=function(){function t(t,e){for(var n=0;na?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f +}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
    a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:l.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("