TapestryEngine

A 2D Platformer Game Engine
Log | Files | Refs

commit b1043f32c9163a9f80679276bf865264684bea8b
parent a1402040340514d7cd0baf9a55ad0e14ad64fa67
Author: Charles Baptista <charles@charlesbaptista.com>
Date:   Fri, 26 Jun 2020 22:39:41 -0400

Removed SVN and VS files

Diffstat:
D.svn/entries | 1-
D.svn/format | 1-
D.svn/pristine/01/01023462e91f5b7fa675973705d80838c8dbacf8.svn-base | 0
D.svn/pristine/01/011de802312db34dc97b96b379f4fc7b4381c73a.svn-base | 0
D.svn/pristine/02/022eb296d4d6237c5f0f501559eb43d719db045c.svn-base | 0
D.svn/pristine/02/025f21115e78bc401075b7aeb47067e9ea4a933c.svn-base | 277-------------------------------------------------------------------------------
D.svn/pristine/02/02f8092bf3b51550bb5d1bd78e0e145df7e984dd.svn-base | 0
D.svn/pristine/02/02f834e6d0e0c32ca9a077c42b8720380539b80f.svn-base | 0
D.svn/pristine/03/03c9af44a77bbb198d41be02f7eeaf211ebb632e.svn-base | 478-------------------------------------------------------------------------------
D.svn/pristine/03/03e1a9b268e7da7eed9aa52fa28afd5c50e9c794.svn-base | 0
D.svn/pristine/04/046b63576f4844eebc79075bd3a48a46fe97a4a7.svn-base | 61-------------------------------------------------------------
D.svn/pristine/04/04f627761ed89929736187ac03605200a37f3de6.svn-base | 0
D.svn/pristine/06/0636b55e9703318e9f221c7d41ea7e8ebb5e9846.svn-base | 0
D.svn/pristine/06/067fa4dee6241d96f899c5120b9cbd7a46a9a175.svn-base | 84-------------------------------------------------------------------------------
D.svn/pristine/07/077c4419fb51346d76cab150c3560afa3b9c74d8.svn-base | 0
D.svn/pristine/07/07b44a0668c7eba8de112feebc3715e95a0823e1.svn-base | 0
D.svn/pristine/07/07be394fdfb9df062ea0184f592b61d00a6dfb3c.svn-base | 0
D.svn/pristine/09/097a891ae12db979d140d9dbe4127c959d1de896.svn-base | 0
D.svn/pristine/09/099e3567da7a6434ae614494409deabb822105a1.svn-base | 20--------------------
D.svn/pristine/09/09fb8f8712bc8920160c7c71c2e089a965ec57f4.svn-base | 0
D.svn/pristine/0b/0b9147448ceec2b88241efeec25295e08c553b75.svn-base | 0
D.svn/pristine/0b/0bc4524682bd935f7f03324bbaf01cb38111c1d4.svn-base | 0
D.svn/pristine/0b/0bf03acc656d14b60bf15eb57b24565366411d86.svn-base | 0
D.svn/pristine/0d/0d41dc95ed9bb80931d94a85b3e2ee116a538cb9.svn-base | 0
D.svn/pristine/0d/0d7e75cfa6439ee0bae376ec0028f4d2ecfd694f.svn-base | 85-------------------------------------------------------------------------------
D.svn/pristine/0d/0d956f63fbbf7875ed063f41ac9302b9fe1cf207.svn-base | 0
D.svn/pristine/0e/0e28155f5b2292fc65d23aa40950dd1126886b78.svn-base | 0
D.svn/pristine/0e/0ec69de87d5e456add8dbdebed1b3ad9a7ba43bc.svn-base | 0
D.svn/pristine/10/101f47f8a697bcb4840e4d6883cc9d091a1de83e.svn-base | 0
D.svn/pristine/10/10870de670c962da7891592ce3879bd0df872e90.svn-base | 0
D.svn/pristine/10/10912af53b420c8540bf6613c884eda218f751e3.svn-base | 0
D.svn/pristine/10/10a229ba906bc8ea869be96f769a12461c9f7861.svn-base | 0
D.svn/pristine/11/1129183ab20b3ecf7efbc06e6b3116652b22e4f5.svn-base | 0
D.svn/pristine/11/116da4183c48d64f674710a4205399bcfcb71e54.svn-base | 149-------------------------------------------------------------------------------
D.svn/pristine/12/12067588569c8457bf11ad160f82416bf2863265.svn-base | 0
D.svn/pristine/12/123872eedae5d93aaa9c95199507f963a9de142d.svn-base | 759-------------------------------------------------------------------------------
D.svn/pristine/13/130ee6614e0806f528d646e8eeadff68a408f39b.svn-base | 0
D.svn/pristine/13/1374727540ad8f0a6c8898efedd33ded926ccc4c.svn-base | 0
D.svn/pristine/13/138686a7943b7d768ec6f6540fc37d5d7a3a36ed.svn-base | 711-------------------------------------------------------------------------------
D.svn/pristine/13/13a943ba4d572ff711ce98221537d83f52c0c850.svn-base | 0
D.svn/pristine/13/13ad73c15c09e4c23dc70c171064775a2785dd26.svn-base | 0
D.svn/pristine/13/13b4bf9b05d448c37167ca6a2e8709ac04b8c755.svn-base | 0
D.svn/pristine/14/14479d04c947fcab2e8af8ba1ebaac3790d830e6.svn-base | 0
D.svn/pristine/15/1530f66818ab1ac3a395651c6a50083797ea7e91.svn-base | 171-------------------------------------------------------------------------------
D.svn/pristine/15/15a3e3b72c1c8ebe3c1faf763fd9a61f08c91a71.svn-base | 3---
D.svn/pristine/16/16040557145380efb4496acdc8575f8e0b9eebea.svn-base | 0
D.svn/pristine/16/165a3be5da949e52fea6a125c7dd685bc9dbed77.svn-base | 0
D.svn/pristine/16/166c34c7a6f9af980d6a2dcca21b35b804804a28.svn-base | 97-------------------------------------------------------------------------------
D.svn/pristine/17/17b5b87406d610bc71c61ae520fc4d980fc016a1.svn-base | 0
D.svn/pristine/17/17ed574cd67886b78b215d46d47768cd7f04328d.svn-base | 0
D.svn/pristine/18/189798440fb727c9cf9211992b0b2cb216d02307.svn-base | 0
D.svn/pristine/18/18b71ce7b89a672cd5834600cf6476e14a4009df.svn-base | 100-------------------------------------------------------------------------------
D.svn/pristine/18/18ed4d4a9457fe2c540c84d1cc19823480ee2c5b.svn-base | 0
D.svn/pristine/19/193541e6c2e59e7835c8de99c66d28cd245b0283.svn-base | 0
D.svn/pristine/19/19ba4781b5d7690488d8b573ad84158ac0aba6e7.svn-base | 682-------------------------------------------------------------------------------
D.svn/pristine/1a/1af3b2d67597f5eede4f8f0e7997ce169412fef4.svn-base | 0
D.svn/pristine/1b/1b3982b706174f626c8d97b13e7bf67857b8a60d.svn-base | 0
D.svn/pristine/1b/1b42aa4ad985c136aa696dde9a0138298eea8ac5.svn-base | 54------------------------------------------------------
D.svn/pristine/1b/1b8a509362d34fb83e67a4f10a7fafaeb4f0678c.svn-base | 0
D.svn/pristine/1c/1c128ac875bfbbc9cf97202da57bd5c8e61b39d4.svn-base | 0
D.svn/pristine/1c/1cc6e236932bba707899b87a0f1851955319c397.svn-base | 0
D.svn/pristine/1c/1cfcbf323bf32cc8e924777b65255e5503118815.svn-base | 0
D.svn/pristine/1d/1d846f39fc8d17ea573d74bcdb0714e4121320b7.svn-base | 0
D.svn/pristine/1e/1e07ca83c53cec52f0eba10e2bdaf9dd57638c86.svn-base | 0
D.svn/pristine/1e/1e9e815a80a89d81879d36b8f1bfd91a90c50357.svn-base | 204-------------------------------------------------------------------------------
D.svn/pristine/1e/1ee39fe7dd81c3a3713bf0db0e090e1329ba0cc2.svn-base | 0
D.svn/pristine/1f/1f2df7e544e13774f04ef522985ec77b907f5bac.svn-base | 0
D.svn/pristine/1f/1fa9b238bdad4b0aefd988781af0b197e1a9cf72.svn-base | 0
D.svn/pristine/1f/1fab6fed29a1e3c6bf696a17e1d5c465696275e7.svn-base | 76----------------------------------------------------------------------------
D.svn/pristine/1f/1fcc6efe61230c0da2ba97313ba69dbba316c7ef.svn-base | 0
D.svn/pristine/1f/1fd4da558ed4745cffe7bf32db2f78217fc8e6ab.svn-base | 0
D.svn/pristine/20/205a2080270800b1073a9d4a45a9df09c4c2694b.svn-base | 0
D.svn/pristine/20/20a51d66abc839a4ea4833a2307ecda496b9c257.svn-base | 0
D.svn/pristine/20/20c643cd373c7a6f6002e7e62083471def01f73f.svn-base | 0
D.svn/pristine/21/2113433dc2b7973506117582a95f3d3493f04ec6.svn-base | 22----------------------
D.svn/pristine/21/216a9b28d2fa38d54afe991aeb264705a0b5f0ed.svn-base | 0
D.svn/pristine/21/21f6bef80bec8c3f3af81670071069ed17ab1882.svn-base | 236-------------------------------------------------------------------------------
D.svn/pristine/22/222f2a14f80545af9cc26e1f9fc45985f6a1b334.svn-base | 0
D.svn/pristine/22/22b7b65bdc0fe4e7eb48697bde82c90ee0b6166b.svn-base | 33---------------------------------
D.svn/pristine/22/22c5848e4263acd37100edbb0a4ef89722e3e06f.svn-base | 0
D.svn/pristine/22/22c849e77d84c3536f9d499833330d0856288845.svn-base | 0
D.svn/pristine/22/22e96a1a45e6503a29a566c44ca4b4b577191ef6.svn-base | 0
D.svn/pristine/23/234b2330b40c5322a99503b351822263be2b7d35.svn-base | 144-------------------------------------------------------------------------------
D.svn/pristine/23/23d17ce56f69c803c31fe133bceee52c59373e43.svn-base | 0
D.svn/pristine/24/2425f1236643d0aeaf0b09ed53c497c7e727b1a9.svn-base | 0
D.svn/pristine/24/248968dc6a84462f6e7a328ae29a67571366f1bc.svn-base | 0
D.svn/pristine/24/248e00a65ca454cad039186ef54c1da44b84285b.svn-base | 0
D.svn/pristine/24/248e4b73ddead71c5f2f67dfe55a37a10f6d7250.svn-base | 715-------------------------------------------------------------------------------
D.svn/pristine/24/249597943de1e6b22a82137187df7291a1b52a5a.svn-base | 0
D.svn/pristine/24/24c51bea67b98238e1404a22c633daa02a80e12c.svn-base | 0
D.svn/pristine/24/24d887981e0541248730f6dec827eff8ffbed726.svn-base | 175-------------------------------------------------------------------------------
D.svn/pristine/24/24dd2faf3a26428e59a0eb86a64b4917540828f3.svn-base | 608-------------------------------------------------------------------------------
D.svn/pristine/24/24dfe1de993920eac801b39de37249690810a6d0.svn-base | 59-----------------------------------------------------------
D.svn/pristine/25/254c9ffcc2b658c9bc7d873e526233dd6f5e7ee5.svn-base | 0
D.svn/pristine/25/255f52ec029fae376155dba8f86ba6b5abee6c2e.svn-base | 0
D.svn/pristine/25/25e21d9b6c88cece29e78c47950febdd0d1e53f4.svn-base | 246-------------------------------------------------------------------------------
D.svn/pristine/25/25e29fa2f85c3f4290b6bc1c84602e97bf7de086.svn-base | 0
D.svn/pristine/26/26c0ad05b0ef9fa6957e951635dbb74421d49399.svn-base | 0
D.svn/pristine/27/2723c621ecbc01d8ad7b653c15f818a024d68a57.svn-base | 0
D.svn/pristine/27/277989613d4ef02752c22c9316e4c2311da41355.svn-base | 92-------------------------------------------------------------------------------
D.svn/pristine/27/278642650f009970a0a358cc7c376fa819206af3.svn-base | 0
D.svn/pristine/27/27c864eca6e547a3d1c33334c8bbfc56fdb22057.svn-base | 0
D.svn/pristine/28/2814d18907f0c7a97cf23dd700cef89dd55d0a35.svn-base | 0
D.svn/pristine/28/28512c1de3b4d58b2ba29a67df490751178551dc.svn-base | 0
D.svn/pristine/29/294698a9effaea4bdce8ee30397f479a4b4f4970.svn-base | 0
D.svn/pristine/2a/2a94684b5a8b4fc7c625b5540fe6dbdf9be52c55.svn-base | 1311-------------------------------------------------------------------------------
D.svn/pristine/2a/2aa73cba46dca507692e00d45da40a21987803aa.svn-base | 0
D.svn/pristine/2a/2ae6d435c6ba4acd92b0ecd9c561b870370b83d6.svn-base | 0
D.svn/pristine/2b/2b38969857980961f9dec6b070aef31b38111fd0.svn-base | 1349-------------------------------------------------------------------------------
D.svn/pristine/2b/2bfacf856734f54a5495515cc5adf08c40ddbc94.svn-base | 0
D.svn/pristine/2d/2d0a00799d6c075cb4d16bb4cf3d27c4f2f1cca1.svn-base | 0
D.svn/pristine/2d/2df5da0a979e71c24fcd506a9c12ff47f5b47784.svn-base | 0
D.svn/pristine/2e/2e3338dac20d526ef6304286335a9e5e0e5d65ca.svn-base | 118-------------------------------------------------------------------------------
D.svn/pristine/2e/2e8c09a2ec8b308688904fc07978ab916dd2c51f.svn-base | 0
D.svn/pristine/2e/2eb066789ed95c193c582ba3d41ee4fc013a2ec5.svn-base | 0
D.svn/pristine/2e/2ec13c3403a73c189c7f19ea12b2fba69cf62eaa.svn-base | 0
D.svn/pristine/2f/2f20f2c36052a7de4f6e4b67b5d47976e1f7bfec.svn-base | 0
D.svn/pristine/2f/2f68d73841c52a4ef43e6320346b18b3e2ed3fae.svn-base | 0
D.svn/pristine/30/30ae4bef54012f1e652d522d0550537eef461777.svn-base | 0
D.svn/pristine/30/30cf7540d369b6fa3356b2a66e7fd9bc267e039a.svn-base | 137-------------------------------------------------------------------------------
D.svn/pristine/31/313bdad44f0f0f92b5b1f843f6dc696594a9e702.svn-base | 0
D.svn/pristine/31/319d3a7a7b41f5ac0289faef055531a4e3de36f1.svn-base | 0
D.svn/pristine/31/31e5a34a6bb9718514bba6ff1447994a86307fa2.svn-base | 0
D.svn/pristine/32/32405d1ae1a0b9edd06da2e015dcce470acd3001.svn-base | 0
D.svn/pristine/32/326a8c2b1c6502094a462c01ff8211937f864e3b.svn-base | 0
D.svn/pristine/33/330a12ab586464f2436aba2478d0b4f5dc3c7d5b.svn-base | 0
D.svn/pristine/33/33da0ecdb0ccb904dd29d16fa4d8d63b1e60dd0f.svn-base | 0
D.svn/pristine/33/33ef6e523d474cf62ae40086467165d7a12fa942.svn-base | 0
D.svn/pristine/34/348e9398794ad014bdaef7f7c6b1cf1c970efc6c.svn-base | 0
D.svn/pristine/34/34a277129fa2017d1255f92a059217545915c49a.svn-base | 278-------------------------------------------------------------------------------
D.svn/pristine/35/350e57fc27342c20dfd1b4510fc20727a861aa26.svn-base | 0
D.svn/pristine/35/353cd1fba8ae7ea0c53608baaee4ba7ebec2b70f.svn-base | 0
D.svn/pristine/36/36a3c88e611d3185ebf8f8c6b7fba6037a5c6ac9.svn-base | 332-------------------------------------------------------------------------------
D.svn/pristine/37/37045dffb2cebecc8eb9096ebb694b27024f9e1a.svn-base | 0
D.svn/pristine/37/374881a0ea8ee5ebeac4cd5f7c33be849301f85f.svn-base | 0
D.svn/pristine/37/37e29029315b7f92e0f87a492d2cc3542c75eb3c.svn-base | 0
D.svn/pristine/38/3801885c4627d7d16c7b37b06bf21efe4f01aa5e.svn-base | 0
D.svn/pristine/38/382c571b503cea1bf5b60e22020f57bee8fbd715.svn-base | 0
D.svn/pristine/38/384eeb43128e98f0c054a41dea3bc71cfd74bb16.svn-base | 0
D.svn/pristine/38/385c44c233f361b4588a424ca33f56fe3f88bb3c.svn-base | 28----------------------------
D.svn/pristine/39/3971b1ca32073d379c5c8c8c03db2cdca3e14776.svn-base | 0
D.svn/pristine/3a/3a0f1e13bcde92e7e944f9b285c629d9638d7bc0.svn-base | 2--
D.svn/pristine/3a/3aaad2af917500ad951c68c65f9c5684683cf50a.svn-base | 0
D.svn/pristine/3b/3b3c9ae60987f2daf659c13853e364c2d6a54129.svn-base | 0
D.svn/pristine/3b/3b6e567127b6d919eed864106e341366fc6f7c6f.svn-base | 0
D.svn/pristine/3b/3bccb653cc443c53fb0fb257d5b641b1fe076892.svn-base | 69---------------------------------------------------------------------
D.svn/pristine/3c/3cc6d476a2e91d93c5f93faa38d7d00992cb7bad.svn-base | 0
D.svn/pristine/3c/3ce27328f8b42f0496be41c64255890bad759d8b.svn-base | 0
D.svn/pristine/3c/3cfaf1b8739b6623395b3c02b1b8cb0df4839226.svn-base | 132-------------------------------------------------------------------------------
D.svn/pristine/3d/3d1c2770a54115f98760416b08c80d2d8ab98435.svn-base | 0
D.svn/pristine/3d/3d1eead6c14ed232d033559d554ca38a7e7c0aa8.svn-base | 0
D.svn/pristine/3e/3eb4a92d74e69a9adb1cc639393cb29be3c958c7.svn-base | 18------------------
D.svn/pristine/3f/3f59b108f92f8357fe0e533161c328fecd39c416.svn-base | 644-------------------------------------------------------------------------------
D.svn/pristine/3f/3fa05afabb072e25cbcdd9ce534ac8dd347931e4.svn-base | 0
D.svn/pristine/3f/3fc2f2da29c50145a8bb19e2fa1cc956594990a8.svn-base | 217-------------------------------------------------------------------------------
D.svn/pristine/3f/3fc8a29c7030acceedce784e4463070234da853c.svn-base | 0
D.svn/pristine/3f/3fceae0bc8bf639efbfd465de17c2c2db6df418d.svn-base | 0
D.svn/pristine/3f/3fd084be6aa6c7042511dab80406b0d207aa514c.svn-base | 0
D.svn/pristine/3f/3fe9c91750f82c3f82efe8af3fe1246c4fce905e.svn-base | 0
D.svn/pristine/40/403ad69ceb469f37242c5551a52f797e5893d0f4.svn-base | 0
D.svn/pristine/40/403ee99d58af967f2ddbeae01e0816a62e755f1e.svn-base | 0
D.svn/pristine/40/40a3713f071de8ce5d7d670d12e88f055e755417.svn-base | 0
D.svn/pristine/40/40cfe0400580ae24eb511be746e3d45bf4155927.svn-base | 0
D.svn/pristine/41/413c6610da6793e4a6efc64b97379c1ed1a33e3b.svn-base | 0
D.svn/pristine/41/41958e4272ef3be394bca65342bcfb69cd66b2b1.svn-base | 0
D.svn/pristine/41/41e69a270bbce93b47e2c592b391785b3717c5da.svn-base | 0
D.svn/pristine/42/425bb869e72b681bb6157c077e2de8bb03a569a1.svn-base | 0
D.svn/pristine/42/42e693c8333e9be82b863019e8f841886ee35f1b.svn-base | 0
D.svn/pristine/42/42e9bdf04815ecd16ff51561355da9d899fceaec.svn-base | 0
D.svn/pristine/43/439173fbd745c507d6ebdc3055307a4fdb35b1b7.svn-base | 0
D.svn/pristine/43/43a6fc7d6f7f58fbfaa2e184158ce6b97c0300ec.svn-base | 601-------------------------------------------------------------------------------
D.svn/pristine/45/455d4a04dd3e84c606fe06268d6b4d105266a5fb.svn-base | 0
D.svn/pristine/45/4573d1ecce77d7260c4f05d50d4e37626317b37d.svn-base | 601-------------------------------------------------------------------------------
D.svn/pristine/46/46a8f9654bc2905d76d6c7630f512ecc70d32b4d.svn-base | 145-------------------------------------------------------------------------------
D.svn/pristine/46/46c61cb83a236ce6c452d6358dc83cb03e55fafe.svn-base | 668-------------------------------------------------------------------------------
D.svn/pristine/47/473b5297d422feccd0218f13c9bc173fe34060a2.svn-base | 0
D.svn/pristine/47/47b33b7bb577db46909c6ce762a241a219594e06.svn-base | 0
D.svn/pristine/48/4854d3b44ecefc9d087893dbf604043531203fa6.svn-base | 0
D.svn/pristine/49/492a3b836fce40b89bfc184da62e5b112eceff2f.svn-base | 169-------------------------------------------------------------------------------
D.svn/pristine/49/49a7cfc9f6088cfecabb0fe25e11329a9108a7ca.svn-base | 0
D.svn/pristine/49/49b6288a918e93173114d28f67c7f92728bf5f01.svn-base | 0
D.svn/pristine/4a/4a0a6b57ad550b82d3012af112b4e5b1d2cc29b7.svn-base | 0
D.svn/pristine/4a/4a1142a6a4e158da91749acd63c803e7bc22a46e.svn-base | 0
D.svn/pristine/4a/4a34b464ff0351ebed386a8656c25094c4fb65d5.svn-base | 0
D.svn/pristine/4b/4b6bad4d36156104414a6f9246256336c224d3a2.svn-base | 0
D.svn/pristine/4b/4b74495fd6023d56741c217e236385b97e29350b.svn-base | 0
D.svn/pristine/4b/4bb4276e9928ca9c4af4c219d3ff8b1d4800b323.svn-base | 0
D.svn/pristine/4b/4bfc4ebc481235490e6ba6fe1416088341bb580a.svn-base | 0
D.svn/pristine/4c/4cbd98953ecf573b8ce998c39b30cfc24661fb77.svn-base | 0
D.svn/pristine/4c/4cf9f279cbb041637069b08e4fe569579b1174f8.svn-base | 710-------------------------------------------------------------------------------
D.svn/pristine/4d/4d8995d7e2e4108d85e6d285cf20349250f00f06.svn-base | 0
D.svn/pristine/4f/4f1e78fab9e89f3956b37d4b0626489c4c297058.svn-base | 0
D.svn/pristine/4f/4f68961a0eda30a1cbec027db605949185c3d979.svn-base | 32--------------------------------
D.svn/pristine/4f/4f793e4fc3af4fb48672df19d04520b136c4be91.svn-base | 0
D.svn/pristine/4f/4fb67557c26794aa62e6cc02c815dce965b294d9.svn-base | 0
D.svn/pristine/4f/4fe7f6b9ce7878f93ee3c9e83a491bc9ec361cb6.svn-base | 0
D.svn/pristine/50/502509e254c16e83fd253447c08850cd220812d5.svn-base | 192-------------------------------------------------------------------------------
D.svn/pristine/50/506ff7434a1d1866f41d1fe759b880b3eda6c875.svn-base | 0
D.svn/pristine/51/510499db797e1ac7b6af2e6db86beeaef8f09c80.svn-base | 0
D.svn/pristine/51/5188be91d9d0b74de1ca9a011354048a5a7ac16f.svn-base | 0
D.svn/pristine/51/51c036e5ebbf8d6279a5b6eb8c265895bd21097a.svn-base | 0
D.svn/pristine/52/529416416db0640be7f2592ab633b552fb60110c.svn-base | 0
D.svn/pristine/52/52e18bd869fa6b94966df8832149fe30d217b16f.svn-base | 0
D.svn/pristine/53/53ef5959fa40903e55c3018ea89926de95767170.svn-base | 106-------------------------------------------------------------------------------
D.svn/pristine/54/54409697aa6122190669cac73b49866f5210b184.svn-base | 0
D.svn/pristine/55/552ac7e9d978412a18325ffd788dc544ef1fe2ea.svn-base | 43-------------------------------------------
D.svn/pristine/55/55fd3dbce23d4f5f7fc8b366a7feed8e336d0eb8.svn-base | 0
D.svn/pristine/56/5640282c533ddf254a189964603ca70ca69cb45e.svn-base | 0
D.svn/pristine/56/567c13e0cf5e41d4ec1c0e5b549e4aaa66842c6e.svn-base | 0
D.svn/pristine/56/56d7cda938c39d4d6643564a618d68f74341c5e1.svn-base | 0
D.svn/pristine/57/57b5a4ee66a081d72689149ffd261c7792cc4df9.svn-base | 0
D.svn/pristine/58/581cf65497edeedfc9f5abe37697bb76558fd8e8.svn-base | 0
D.svn/pristine/58/582e1c5e0d9c992713d3b453c666d11b982ffc0e.svn-base | 50--------------------------------------------------
D.svn/pristine/58/5851915f0adcb80913a2124c1413ff5a332113f5.svn-base | 0
D.svn/pristine/59/593c8726960cce0ef8c114b51f326758efc2b993.svn-base | 0
D.svn/pristine/59/598ed32783fb3305644ff972484144d85395f620.svn-base | 0
D.svn/pristine/59/59d4a1f4f587843b327367d6bbc06e72732ed3c6.svn-base | 0
D.svn/pristine/5a/5a0c55913650e4016af21033667007721ba2654d.svn-base | 0
D.svn/pristine/5a/5aacbee6025a7fc5220bfe8a0f47138865c592a4.svn-base | 91-------------------------------------------------------------------------------
D.svn/pristine/5b/5bedc2fdc1bfd994d63bded6bc792fea65e991fc.svn-base | 0
D.svn/pristine/5c/5c0341b7a6534169101c68bd2d74e25bd3d6e7a6.svn-base | 355-------------------------------------------------------------------------------
D.svn/pristine/5c/5cae4c64f60571dfe2b055ab349ab8afbddaf5af.svn-base | 0
D.svn/pristine/5d/5d19b708619f446a7317d1a9920765a083223287.svn-base | 0
D.svn/pristine/5d/5d42783e0f784611e13154e1380ed3fc3627b57d.svn-base | 0
D.svn/pristine/5e/5e022ceea59d0b8e4d3bf8e2760b6f95d48f6bca.svn-base | 0
D.svn/pristine/5e/5e316770dbe4f50cd905fba97a2131a445e5c792.svn-base | 0
D.svn/pristine/5e/5ecc5227c3f85106e0d461e4c372629d7176dd75.svn-base | 0
D.svn/pristine/61/610ba9c3fe3b1e58671c0d2e19c0cbf24199ef96.svn-base | 0
D.svn/pristine/61/619b1204e2f5a838d6335cc5ccc6b45a5c7800f0.svn-base | 0
D.svn/pristine/62/6203ae065bb9a0f4cf25344e7e3fac5ee32f1b3b.svn-base | 187-------------------------------------------------------------------------------
D.svn/pristine/62/62209d7574c09f2adb9a987db20b96f08a24f41d.svn-base | 0
D.svn/pristine/63/6374868281c735a6aebccd6f372b146bef567ddb.svn-base | 0
D.svn/pristine/63/63c892eb1a5e8fffb5f7d638f13eddb391e4fd80.svn-base | 0
D.svn/pristine/63/63d23bbd8328c15c9cc0280e859b2f3ca9674580.svn-base | 0
D.svn/pristine/64/640f542abc5f0670d1b16122c413b9539c9d8c6b.svn-base | 0
D.svn/pristine/64/64d91b3f2291ad6f4560401405867d4366257618.svn-base | 0
D.svn/pristine/64/64f2a85cb0ce09b148d5f68c6cf515cd97055706.svn-base | 209-------------------------------------------------------------------------------
D.svn/pristine/65/65345b0197d365ae286b339e1d05c528712a597f.svn-base | 0
D.svn/pristine/65/65b9c1e151fa431640aa73c269371b4cee3b13ae.svn-base | 0
D.svn/pristine/66/666f844d5c75a354d015a434dc50f3c59b0c02a8.svn-base | 0
D.svn/pristine/66/66cafce14212bc45f809b9bb2025442cc84ed8bd.svn-base | 0
D.svn/pristine/68/68540681780b31a9bef0a8763cb9f4dac9f22dbe.svn-base | 0
D.svn/pristine/68/685abaaf1af19adf93daeab7a4ff63ab1e03b8cf.svn-base | 0
D.svn/pristine/68/6869f08cd2aafd60033c909b8f132937e884c27a.svn-base | 0
D.svn/pristine/68/68ef1350d2e4f56f3671234f31f9f4a8e7502c58.svn-base | 118-------------------------------------------------------------------------------
D.svn/pristine/68/68f19461fc158b8d20baba1acfa22ba2af4fc1c7.svn-base | 0
D.svn/pristine/69/69664361c2039af057fd2e4280272e74aa6b3d89.svn-base | 0
D.svn/pristine/69/697b73cbb21509ece25086bce86bf2f4885e721d.svn-base | 34----------------------------------
D.svn/pristine/6a/6a017715ef78ef9031fc00c18f2e86be04c58bae.svn-base | 0
D.svn/pristine/6b/6b0d255a116189b22c973548d91fd1668dc64286.svn-base | 0
D.svn/pristine/6b/6b2b310e57dba044bde073a8c6b3712c242c583e.svn-base | 0
D.svn/pristine/6c/6c1f6ac62e57dfbf72ca0dcc7a1c138fd5d97647.svn-base | 0
D.svn/pristine/6c/6c24370781cbe5116b50f9fff1357f9e75e10a8b.svn-base | 0
D.svn/pristine/6c/6c9a8d1656c5ed1818b02f06f8da7520e2998c43.svn-base | 1-
D.svn/pristine/6d/6d55c5841f54a437b4abaf231a914b7703da0fc0.svn-base | 0
D.svn/pristine/6d/6d84fcf77705a8eaf0438b9ed703e423fedfa744.svn-base | 0
D.svn/pristine/6f/6f1b4cf23df9ef637e053bd95915b27b9216836d.svn-base | 0
D.svn/pristine/6f/6f448ab906597011da9447e2c8312dc18825704f.svn-base | 0
D.svn/pristine/6f/6f83622a347c5a59601af6bdc38c8c3843426e8c.svn-base | 18------------------
D.svn/pristine/6f/6fa184444687cf11f07f1ab6d403657e538d26bf.svn-base | 74--------------------------------------------------------------------------
D.svn/pristine/6f/6fd5f4401ca8e5f38093fc0466801b7e8fb9e5f0.svn-base | 0
D.svn/pristine/6f/6ff207b937c02ed64af09f445f27cc543c694373.svn-base | 0
D.svn/pristine/6f/6ffbd1fd3c646cfa06b407170b9ea0e2412f9a8f.svn-base | 39---------------------------------------
D.svn/pristine/70/7029c0d7fdd2dcc7521ef57769ce20fd24250bbd.svn-base | 118-------------------------------------------------------------------------------
D.svn/pristine/70/70c0eb6099699240f458b70e3c1b7fe35adf5647.svn-base | 0
D.svn/pristine/71/7127126bff17e2687c26750ae7791e334f2e04bd.svn-base | 153-------------------------------------------------------------------------------
D.svn/pristine/71/714d9bfd99174866cc74794cb862be771581ced5.svn-base | 166-------------------------------------------------------------------------------
D.svn/pristine/71/716cce0314f911752f9bb05811177a2acfe2f30e.svn-base | 54------------------------------------------------------
D.svn/pristine/71/71bda24f2be9ec67801c807ea71dc619a38eef7e.svn-base | 0
D.svn/pristine/72/721509ed5467951e15263bf1cbf1dd3bedb9b051.svn-base | 0
D.svn/pristine/72/726717dc9c337e15e3cf9c3da83af6e9b0acbf8f.svn-base | 0
D.svn/pristine/72/72e2bece735895856aeb6c0c469bc1f78f9e6db0.svn-base | 0
D.svn/pristine/72/72f0776d97481e2621dd08db102b90c8f7a8ce23.svn-base | 0
D.svn/pristine/73/7347be746f0763f97986f14a73e606fba24f6ebb.svn-base | 0
D.svn/pristine/73/7387dfb5e142b0502cff3ad845e639294e0d2855.svn-base | 0
D.svn/pristine/74/74e2de560a57fbd0b9f8944d3ff588f33d71c033.svn-base | 0
D.svn/pristine/76/76622bf9e4d03d6b92424d74749ae7bf41f1eda7.svn-base | 118-------------------------------------------------------------------------------
D.svn/pristine/76/766363c3b35e518224823e0130fd90f6913cab72.svn-base | 0
D.svn/pristine/76/76a19443cda27943294066c9a30c7db403d3a9e2.svn-base | 34----------------------------------
D.svn/pristine/76/76a442c84e875cba72ea48c3da031c112dc74b95.svn-base | 0
D.svn/pristine/77/770e9fa2f4c95fdc0c4125abb6b15b6d413897f3.svn-base | 0
D.svn/pristine/77/774f9840e06980b639bfcadc1722f094d1aaabd9.svn-base | 0
D.svn/pristine/77/7760a36ed73bb1ca985fca964ad89f5556ea0ad4.svn-base | 0
D.svn/pristine/78/78142b1f24b8b0f480d4e0b8946eebe46ca279eb.svn-base | 0
D.svn/pristine/78/781b50515dd02bfa60fe8b7bf092ee2d34935cc9.svn-base | 0
D.svn/pristine/79/79b381c2c8797b7cf23f4be5e05f2b72422264dc.svn-base | 0
D.svn/pristine/79/79e6f22df03d40d63ae66515874ac46726f45f6c.svn-base | 0
D.svn/pristine/7a/7a4284ee4fb2c623bd2ae0c58af681967e1598e7.svn-base | 0
D.svn/pristine/7a/7a9cd67b0250314c4569c431a82aa3636301db02.svn-base | 0
D.svn/pristine/7a/7a9ce9f2ff26d5a2d88af861316573b5599587a5.svn-base | 0
D.svn/pristine/7b/7b2fd56df3268ebd83f40a987034134a02870b43.svn-base | 229-------------------------------------------------------------------------------
D.svn/pristine/7b/7bb086015f58d649d082c5a0f024313ae7153ccf.svn-base | 0
D.svn/pristine/7d/7d0bae5cd7637c94c5b326b3266bb42c715eacd5.svn-base | 0
D.svn/pristine/7f/7f8982949b71a09adccee27078bffa1c36d31d03.svn-base | 114-------------------------------------------------------------------------------
D.svn/pristine/7f/7fdf3d26c009cab413fb90854d2036754a6f80a3.svn-base | 0
D.svn/pristine/7f/7fe4b857edb3318e7efc7a12e4ce0d50f0845210.svn-base | 171-------------------------------------------------------------------------------
D.svn/pristine/80/800b71cd566db20edbf5898f325813c98cef0417.svn-base | 0
D.svn/pristine/80/80427d5e94c7fa1fcfbef876a35163145cc55c5a.svn-base | 117-------------------------------------------------------------------------------
D.svn/pristine/80/8054dcaf2eaef2f5462c455ec1f7bd878c6a76a6.svn-base | 0
D.svn/pristine/82/82cb5edf79c9ab423074fcd36bc9c395328a082f.svn-base | 0
D.svn/pristine/82/82eda70f2c8f5e12cf324c6cd17b75c5ecb3f90b.svn-base | 0
D.svn/pristine/83/8377874e5b4e287f10d941bcca7e724c8081f352.svn-base | 672-------------------------------------------------------------------------------
D.svn/pristine/83/83878a49d8254b871acf1bec3fe9a9e24cdfdfcf.svn-base | 0
D.svn/pristine/83/83c7e4465e2f3854094b652fa8abee326d1cfaca.svn-base | 120-------------------------------------------------------------------------------
D.svn/pristine/84/84f6ad1233ac71a402c78b94afcc53ea228250f8.svn-base | 35-----------------------------------
D.svn/pristine/85/85af6293ea292b8edb3d50705e607620fc1369c5.svn-base | 0
D.svn/pristine/86/8628d831e47b766a938c49e043b0abe5c2d52d55.svn-base | 0
D.svn/pristine/86/864c3a877598e06a1fdad9e026fc8f1552a351f1.svn-base | 0
D.svn/pristine/86/8662276ba7173b256049bf4e13bf5de9259a208a.svn-base | 0
D.svn/pristine/86/86733c62aa7a28f74a07eb4053cea5fb7fdbdf8b.svn-base | 0
D.svn/pristine/86/867c5b0e3e7ada30c0d2ae0e7b704793a9c7f868.svn-base | 0
D.svn/pristine/86/869c5e5496a4346fac505fbd71ce71ce24dda302.svn-base | 0
D.svn/pristine/87/8794073d2256293fc831fbdbd7eddf63ffa18142.svn-base | 3---
D.svn/pristine/87/87d6c7c96bdb5cf74a86496eec3f6aba678d5101.svn-base | 0
D.svn/pristine/87/87efef754b5d922ec4a27d11d7d73fcf64fa8b07.svn-base | 0
D.svn/pristine/88/887cb1fcb635bbb2c414d26e75770ca8da992e81.svn-base | 0
D.svn/pristine/88/88a422b1b0fd1413d7b59c489be1dba97ef3b201.svn-base | 0
D.svn/pristine/88/88c4585d931613fe1aef3b4fc5c6d883e002df88.svn-base | 0
D.svn/pristine/88/88f5303d6998390addac14a270e2dbbd39b4b4a8.svn-base | 0
D.svn/pristine/89/897d03b9ff5dcf3c4e1ce2c61a73c230c37b6ee1.svn-base | 0
D.svn/pristine/89/89cf8e7a66aaa31bfabb247d7ea3eeffb91792ec.svn-base | 0
D.svn/pristine/89/89e2d76400d7debcb28776010347640d116bb9c1.svn-base | 0
D.svn/pristine/8a/8a31f62754e6cdc54e8760f64295998877e4f7cf.svn-base | 144-------------------------------------------------------------------------------
D.svn/pristine/8a/8a7c13b7a8ee52c1eed0d3604cbfe3d7c7f34e92.svn-base | 0
D.svn/pristine/8b/8b0d10f288fa6d8622dda3eee76d5c7a0223fd78.svn-base | 10----------
D.svn/pristine/8b/8bd0ff32d76105ac3556d1ea32149cd1705ca7ab.svn-base | 2119-------------------------------------------------------------------------------
D.svn/pristine/8c/8c5b67be4eeaa1f8561d26d9c7803eb48381abfb.svn-base | 197-------------------------------------------------------------------------------
D.svn/pristine/8c/8cb3ccb3bb6151f1a232cb8ed108f4d43577a8c9.svn-base | 2--
D.svn/pristine/8d/8d851076400de5e5260a76b5d7b8a81e8a0d1154.svn-base | 0
D.svn/pristine/8d/8dcbcc21a90b2f6085323298e73a2f3cfda04271.svn-base | 0
D.svn/pristine/8e/8e0fa4b1109671c61de2b420f94127034af2946c.svn-base | 0
D.svn/pristine/8e/8e10c473bb8ff23a3d5d8dd5de00b7c6ecaeaac4.svn-base | 142-------------------------------------------------------------------------------
D.svn/pristine/8e/8e2182e84202b1b0c7ad0288f3b9b140d0ae28b4.svn-base | 144-------------------------------------------------------------------------------
D.svn/pristine/8e/8e814ec61bd836a85d906aefd7dd1addbfd38958.svn-base | 177-------------------------------------------------------------------------------
D.svn/pristine/8e/8ea36d812f591b993980ae677fb0e6eaec7cf431.svn-base | 0
D.svn/pristine/8e/8ef2d5d36d8bb646d589629fbb9a2e9ef5e2ef3d.svn-base | 0
D.svn/pristine/8e/8efd730379450dfdeb5260e32b91423139e5542b.svn-base | 0
D.svn/pristine/8f/8f220a7bf5cdcdb15b7429f1c1caf3dd94b91638.svn-base | 0
D.svn/pristine/8f/8fa45c750390db5e4d472314df19e0e0e9ff40e5.svn-base | 5-----
D.svn/pristine/90/905c7c275895c3e18a39223f5fdb1a01c9ce0629.svn-base | 247-------------------------------------------------------------------------------
D.svn/pristine/90/90bf76427ef6d1f7c5e2d539896737ba90a9ef57.svn-base | 0
D.svn/pristine/91/91071f56c5c9b8aab5dec0c56d2de8b125785ff8.svn-base | 0
D.svn/pristine/91/9161e113f1b3c924156c2e748baf45ff2c846c6c.svn-base | 0
D.svn/pristine/92/9283758ed7f4b8f0873b5582e4e9c3210edf01bb.svn-base | 39---------------------------------------
D.svn/pristine/93/9306142f50e6ea12b57b54ca481f9385f026693e.svn-base | 0
D.svn/pristine/93/932475c1b777bc952807605ef503b865ab52e8f8.svn-base | 0
D.svn/pristine/93/9374246f56835bbd670f9d0876a968d1e50b250d.svn-base | 39---------------------------------------
D.svn/pristine/94/9400f487ca8f8dffef226839e7515bb1d5de29bc.svn-base | 0
D.svn/pristine/94/942b033e49c6e743df0b3adc59ae02c7ad5698bd.svn-base | 0
D.svn/pristine/94/9445e7b1d112c113e5a3b409a0ec5585b08a5364.svn-base | 0
D.svn/pristine/94/94af5991eeba2aed0b356248a50b152dc9418dee.svn-base | 0
D.svn/pristine/95/95e1efddcd5c6cb957c55522f4a07eff43000fb0.svn-base | 183-------------------------------------------------------------------------------
D.svn/pristine/96/964dddeaecf6d37b0fa4f85bb68ac6c1ffcc5001.svn-base | 0
D.svn/pristine/97/970e01c27fd4b3f25a3ee9eac2be689e7666f400.svn-base | 138-------------------------------------------------------------------------------
D.svn/pristine/97/97a637a7d2a06cf53738ea2a7044cfc691f045ac.svn-base | 0
D.svn/pristine/97/97af8dc05e77be4af2d22d3f4f4b8b9a885e0236.svn-base | 199-------------------------------------------------------------------------------
D.svn/pristine/97/97f1610c40b54eb1f56be8215a1630a41cf3d80d.svn-base | 0
D.svn/pristine/98/98c37704a7207f9de9f09698d7c3f81ab88450cf.svn-base | 0
D.svn/pristine/99/994015a13ad09a9bd17b812cc7ec3803594f4a0f.svn-base | 0
D.svn/pristine/99/994c75b0801edc6645af68423b3e7a4a8ad43779.svn-base | 1030-------------------------------------------------------------------------------
D.svn/pristine/99/99bc22874c0b398b19232e30d057132c64f68b44.svn-base | 0
D.svn/pristine/99/99c5c29d138c91c6627319e0d96ce29f8463581b.svn-base | 23-----------------------
D.svn/pristine/9a/9a2c61667218e1cc69b06188da5ec6fec17a903c.svn-base | 1736-------------------------------------------------------------------------------
D.svn/pristine/9a/9a4555eecddd20aa47f9467f9e376e1205b062d3.svn-base | 0
D.svn/pristine/9a/9ab242fa143d69f7d8bf770d487e54efb02d6afc.svn-base | 0
D.svn/pristine/9b/9bb8ca150ccfe9da48b8ed98dd9246aa5c17a7c9.svn-base | 0
D.svn/pristine/9c/9c0f207ec6de00d72aad0f999dbb78baba016eec.svn-base | 0
D.svn/pristine/9c/9c17c205152f2a1fde93f7cc245fd0fdce7249e4.svn-base | 0
D.svn/pristine/9c/9ce7e6656eb8babfc7f324192d35a9502c2d0669.svn-base | 0
D.svn/pristine/9d/9d1f88cbcca5274f814344e246b9cb46af960c32.svn-base | 0
D.svn/pristine/9d/9dc1c0f661ef6496ea4183d59cb0bd73d46ffae9.svn-base | 0
D.svn/pristine/9e/9e12773a9dfbb5cb74eb50beaf92a243c96c461b.svn-base | 0
D.svn/pristine/9e/9ee496c4f10e7d2c14c999ca8e8234e7bd1f1c77.svn-base | 61-------------------------------------------------------------
D.svn/pristine/9f/9f6828a54a144f45c7478728b586e599411a758e.svn-base | 0
D.svn/pristine/9f/9fda4ecb23e297b886b0e36918274ff6fed3748d.svn-base | 0
D.svn/pristine/a0/a070a46c9789ea4e9878f92d11d9d6bf97d826eb.svn-base | 0
D.svn/pristine/a0/a07c9b200fe33a3bff42a44b385ea3a8d19cecfa.svn-base | 0
D.svn/pristine/a2/a24f8151d5aaba2dcc8a71739703f348e99b636c.svn-base | 0
D.svn/pristine/a2/a25e40313f716e58236fc7277caf444d53820ab4.svn-base | 0
D.svn/pristine/a2/a2dd0fcfd456b325942b7895ff96ba1d7d04c4e6.svn-base | 0
D.svn/pristine/a3/a314e1b9af338e3b1458857815d1386f781f679f.svn-base | 0
D.svn/pristine/a3/a31fee0bf9e64054705adea05c59302c07999788.svn-base | 119-------------------------------------------------------------------------------
D.svn/pristine/a3/a340b365da861b0097b231efc4a94a3c1d8dc5ee.svn-base | 0
D.svn/pristine/a3/a35daa28ae4369f4b149785dfd5b400c3013e5fb.svn-base | 0
D.svn/pristine/a3/a393f3010b7d19b79a82698d8ef6394a0236d4cd.svn-base | 149-------------------------------------------------------------------------------
D.svn/pristine/a3/a3dca5d158d3426daec307abe07570fd3aaebeaf.svn-base | 0
D.svn/pristine/a4/a4839fff10aa0027710c345290ce138706d766ab.svn-base | 0
D.svn/pristine/a4/a4eff8c2e219d426c7039756c2178bcf9141cf04.svn-base | 0
D.svn/pristine/a5/a57a2c996d418947f3aac5f57e7bb8e478ff1f2c.svn-base | 2--
D.svn/pristine/a6/a6045ef42762c678bf77858908ca3d3b063a5a8c.svn-base | 0
D.svn/pristine/a6/a62ee0ed2f6923967b4db9d235071d83dc83c456.svn-base | 11-----------
D.svn/pristine/a6/a6480001211dcf5c90e38749ad56b620853efb36.svn-base | 97-------------------------------------------------------------------------------
D.svn/pristine/a6/a6af49b0f77364c5f35d59f843b10f8c99af28d8.svn-base | 145-------------------------------------------------------------------------------
D.svn/pristine/a6/a6d057532f8604ade33918f3a62b14eea99d84fc.svn-base | 202-------------------------------------------------------------------------------
D.svn/pristine/a6/a6eef2ff4d8d42063f9bca6148453302948f8f94.svn-base | 600-------------------------------------------------------------------------------
D.svn/pristine/a7/a7d259c394586ccca0ac487b860e756a17852f17.svn-base | 0
D.svn/pristine/a8/a82095dfb8afed31ae97192949705171d1e7f9e1.svn-base | 0
D.svn/pristine/a8/a8d37e9056610a7516b7b770d42795583ab0104e.svn-base | 39---------------------------------------
D.svn/pristine/a9/a909522627b36fd7769141dcfda3a5162899a5b7.svn-base | 0
D.svn/pristine/a9/a90f8c9849617c53a4a7da234c485014062d28aa.svn-base | 37-------------------------------------
D.svn/pristine/a9/a94ff71fe029d9b5e3f73f615c2837ba2bef4114.svn-base | 132-------------------------------------------------------------------------------
D.svn/pristine/aa/aaef5112cbcbda373dd1478d1cc7ee4a6df2df6b.svn-base | 0
D.svn/pristine/aa/aafefe9abab6be9c1c00693cbc0197a43331dd49.svn-base | 158-------------------------------------------------------------------------------
D.svn/pristine/ab/ab2c6470a7936ca638e12091207ac99184dd0a0f.svn-base | 0
D.svn/pristine/ab/ab369f16f87b16ebd1c3128c1a368a1a90f992f2.svn-base | 122-------------------------------------------------------------------------------
D.svn/pristine/ab/ab94bca54a203736e3651e39bf9b46a90641eda7.svn-base | 0
D.svn/pristine/ac/ac30b1b67edb3ba2d710c4b56ef20c72479ec327.svn-base | 0
D.svn/pristine/ac/ace8ecae769a71ac9aaeac6c709a2f0328cdfa7c.svn-base | 0
D.svn/pristine/ad/ad21ea876bd455dbebeec26e6b2ec765541a46b0.svn-base | 131-------------------------------------------------------------------------------
D.svn/pristine/ae/aec4cae9c241cf28ed12f06661c7e1c1b8cc040b.svn-base | 0
D.svn/pristine/ae/aed928218aec9a4d191f5f1de931f71b4e0f637e.svn-base | 10----------
D.svn/pristine/ae/aedf301d0e353f371ca722d198ccee2545ceb7e0.svn-base | 0
D.svn/pristine/af/af035263b04307ab5b6e8e1d2281b8988f41c564.svn-base | 0
D.svn/pristine/af/afc83b06f97ba7704a514122d1661abcdb97c478.svn-base | 109-------------------------------------------------------------------------------
D.svn/pristine/b0/b06aa133013d8cf8c865eaed518c0fc9e82196f2.svn-base | 0
D.svn/pristine/b0/b0c464970c712cc6c252043dfaa292889c4caecb.svn-base | 0
D.svn/pristine/b1/b102775b51abad5d24f9f377b62158ac05465f95.svn-base | 0
D.svn/pristine/b2/b238c7c17dafbaa17f8cd086f25afb7a60df13cb.svn-base | 0
D.svn/pristine/b3/b349a7a168aa0e156b6fec77a463957864302d63.svn-base | 0
D.svn/pristine/b3/b354792797c7779d966a30e8662690466bf19fb0.svn-base | 75---------------------------------------------------------------------------
D.svn/pristine/b4/b4e04e09d854fcf974faf45f72cd4e4e3d3d0c81.svn-base | 0
D.svn/pristine/b4/b4e5172babd0805a532745e96d2693638cce480a.svn-base | 0
D.svn/pristine/b6/b62fe4240dbfd52d132afd8ef96d373b8c16b26c.svn-base | 1334-------------------------------------------------------------------------------
D.svn/pristine/b6/b63f2a7b3ee4d2a310c48cd4f61c3b22fb945e86.svn-base | 0
D.svn/pristine/b6/b64224437461705677b471a128ad8151a2423dd8.svn-base | 0
D.svn/pristine/b6/b6ccf4ae24670c6a3200d8dc3eef505520e709ea.svn-base | 0
D.svn/pristine/b7/b70869f6b8cc8445c711319e34246e2b4519604f.svn-base | 0
D.svn/pristine/b7/b77732042f30c0a5b130f321913738a62d2767a0.svn-base | 0
D.svn/pristine/b7/b77b42e010a226d8dacfa5e7e9b7d40816a9b298.svn-base | 110-------------------------------------------------------------------------------
D.svn/pristine/b7/b7a4f16c211aedd88bccef3f9657a9af33520f40.svn-base | 0
D.svn/pristine/b8/b85721680534f8c9f0ee0d858cacfb327c7b3e90.svn-base | 0
D.svn/pristine/b8/b890ebdbc1d4230a5b06e181768171dc653cc0f1.svn-base | 0
D.svn/pristine/b9/b9443fd81d30e82517aab902923bd07e6397b887.svn-base | 0
D.svn/pristine/b9/b98d0395846e8d7f371f910ca6ce8e2c9afa9ddc.svn-base | 0
D.svn/pristine/b9/b9a729d1621116259f75f3ca856567f6bd9be864.svn-base | 0
D.svn/pristine/b9/b9e850b2854d13fcfc2a02ced94b5aa5690ad280.svn-base | 0
D.svn/pristine/ba/bac35858f02ed9cb9be760e78f9b98b1fdd9665a.svn-base | 0
D.svn/pristine/bb/bb680fdac05e4b5c089b3af14220d59e2bcf6a8c.svn-base | 26--------------------------
D.svn/pristine/bb/bb923d41694b1379f89c82fea2254ad55edd3d21.svn-base | 0
D.svn/pristine/bb/bbb0b8d5ba824451a2bee8528b1d6f03b8525815.svn-base | 0
D.svn/pristine/bc/bcdd1acb09ae81dbcf4cbbdd72939812f32f2921.svn-base | 1015-------------------------------------------------------------------------------
D.svn/pristine/bd/bdb70fc76cf056ff538d1cac875bcce9afeae58d.svn-base | 161-------------------------------------------------------------------------------
D.svn/pristine/bd/bdd4d790d4c9bcbebbcc35816136cbb693125368.svn-base | 0
D.svn/pristine/bf/bf23c719bdedd59dafccec35a902b3820772636d.svn-base | 0
D.svn/pristine/bf/bf6d3c2bd9a06991e068f5763447a38461149af8.svn-base | 0
D.svn/pristine/bf/bfd8b298715f4ef1cefa51fdc1417f341cc04172.svn-base | 0
D.svn/pristine/c0/c0a64aee929cd8e86aba9b1c8ed9e5e6b133c7cf.svn-base | 0
D.svn/pristine/c1/c10a7cbed1eb8e71d70542b24a7a550a23a6ccaa.svn-base | 0
D.svn/pristine/c1/c12094c7aa889f971c07c1f22216e00212e92c7a.svn-base | 0
D.svn/pristine/c1/c1351dafdb2553e35399e558ab46782416473682.svn-base | 0
D.svn/pristine/c1/c169a0cf8aa5d50892b2b8bbfe114e4d01bf01a5.svn-base | 0
D.svn/pristine/c1/c1c039bda5d0e066b24c90a64091fb08ef10893b.svn-base | 0
D.svn/pristine/c1/c1db2e7f9e37689de09f80bda36318f0a12a2f4e.svn-base | 0
D.svn/pristine/c2/c25d92e0729fb6a3161d234590c1a9be5872328e.svn-base | 0
D.svn/pristine/c2/c2d9fc0dc1bcf4fb7651dfaabcc1381133fcdfaa.svn-base | 0
D.svn/pristine/c3/c3db3437c5b3fe2cbd8cc45a8d0bf42b923cff05.svn-base | 0
D.svn/pristine/c4/c4afa2f97810080d49ce314ba6e583a56bb2e8e5.svn-base | 72------------------------------------------------------------------------
D.svn/pristine/c4/c4b3029bb5776f698af93d9f080f42cb350907f7.svn-base | 0
D.svn/pristine/c4/c4e8bfdbf9cf68aac5097510ad1905f73fc96100.svn-base | 0
D.svn/pristine/c4/c4ecf0b17c9d938ad59bf1f5e7dc0fb2951abb27.svn-base | 0
D.svn/pristine/c5/c5469d9b56e5ca42078edadacd36844e27d0a405.svn-base | 186-------------------------------------------------------------------------------
D.svn/pristine/c5/c57271c3e479a8d0b80820394bd5b9380716c292.svn-base | 0
D.svn/pristine/c5/c588db9e75d0e963c2499980820f0fa6dc62f25f.svn-base | 0
D.svn/pristine/c5/c59fceca8a746d80f8087af35eeb9158fae48ec3.svn-base | 0
D.svn/pristine/c6/c688f9b032cb5333de5ede7f5a5a140933815624.svn-base | 0
D.svn/pristine/c6/c6a0d9884228ec5fd060c99112edbc70db767365.svn-base | 0
D.svn/pristine/c6/c6b32991259428367a509033e2b7d77dced37b19.svn-base | 0
D.svn/pristine/c7/c751945e0712468cd05fd40ccb430fd3f2187d92.svn-base | 0
D.svn/pristine/c7/c7a1a481997bd6f119345db9c161bdf00b5f6527.svn-base | 0
D.svn/pristine/c7/c7d1e2c08d1ef58be7d6452c6a2821c63ee7edc1.svn-base | 0
D.svn/pristine/c7/c7dd5ec4035cda96c4e34d2e4c645732f2560492.svn-base | 78------------------------------------------------------------------------------
D.svn/pristine/c8/c84e4e9421c2258f3fcdcccb54f8cd57e4986f26.svn-base | 0
D.svn/pristine/c8/c85c86c938b9dd92a222ff73d7d15140140952e3.svn-base | 0
D.svn/pristine/c8/c8844d3186c8855c1d62f985d23fc351d4a33914.svn-base | 0
D.svn/pristine/c8/c89fa2bda8a4b16d3b55047945b676378b518be4.svn-base | 0
D.svn/pristine/c8/c8a204146cb1e6269639d8add7c7571ff2d7042e.svn-base | 1518-------------------------------------------------------------------------------
D.svn/pristine/c9/c944c2e4adec5494570158a1f5a92d0558099932.svn-base | 0
D.svn/pristine/c9/c9a65c4137b9c575d436bf77e205e78fa623b462.svn-base | 0
D.svn/pristine/ca/ca12fdfce61a2e8da4957b685df1e69782895918.svn-base | 0
D.svn/pristine/ca/ca1a54dc6bcd4e52b0c2311ea3181f9091caafc8.svn-base | 0
D.svn/pristine/ca/cafe8d0198df16000da85da4e336491632aef83a.svn-base | 0
D.svn/pristine/cb/cb3f7d6b20829417adefefa5b001436def09e314.svn-base | 0
D.svn/pristine/cd/cd6a85bee1f5bf3f39d6e87688f51be68b284630.svn-base | 0
D.svn/pristine/cd/cd737789e48f9cf9e6fb050996f0779129d809ce.svn-base | 0
D.svn/pristine/cd/cdf3504dcc29397acb565acc0ea2b6966d56394e.svn-base | 67-------------------------------------------------------------------
D.svn/pristine/cd/cdff0b4eb62a5dfeafc875e9725b5c71aa0ecdd5.svn-base | 0
D.svn/pristine/cf/cfee0bcd7f2231a4b922986ba68096529dae2a49.svn-base | 0
D.svn/pristine/d0/d04dca3a1ff86c2fb34bdb9a9e5c29e7719f243f.svn-base | 40----------------------------------------
D.svn/pristine/d0/d0822d62aed9de9d158f4a030ab44f37201ada2a.svn-base | 0
D.svn/pristine/d0/d0e4009f48f467babe7a016b10f92b6dbd690c32.svn-base | 0
D.svn/pristine/d0/d0f04486a5f873c4582ed8694321fa6f6687c2ce.svn-base | 0
D.svn/pristine/d2/d245192975652624cdc0d961c61c223fa5fa05fa.svn-base | 0
D.svn/pristine/d3/d309eec9b948ea21ce1ad6ea271b9f810aed49bc.svn-base | 0
D.svn/pristine/d3/d38e9d66f505523f29ace0958cbd4e12e92bd613.svn-base | 0
D.svn/pristine/d3/d3b3e7217bdf7bc7f93559191c2634eb4a396365.svn-base | 41-----------------------------------------
D.svn/pristine/d3/d3b991a30201eea33280dbdcff588c190188483b.svn-base | 0
D.svn/pristine/d4/d411bf782a7f9fdc4d1a7d0c934c8ff874d16b07.svn-base | 0
D.svn/pristine/d4/d4e2747346daf14a420bd1c8fa6d85a367a643d6.svn-base | 2--
D.svn/pristine/d4/d4fedbbf3ae98f6fead4c2d0dd4f3b147e69ce08.svn-base | 0
D.svn/pristine/d5/d52c93206df0d4854e58c14d082e6a657a662d1e.svn-base | 0
D.svn/pristine/d5/d58261f1bde731622b0dbb30f4e4bfdf9d91b2bc.svn-base | 0
D.svn/pristine/d6/d62636d8caec13f04e28442a0a6fa1afeb024bbb.svn-base | 2--
D.svn/pristine/d6/d634aaa475da18ac7d649a5f82879cb2d281dac3.svn-base | 0
D.svn/pristine/d6/d63dc8a04ed0e47fbe495675cb79047c8f789cfb.svn-base | 0
D.svn/pristine/d6/d6f5e8a6710c093cbab851008d6fda4004367b6b.svn-base | 0
D.svn/pristine/d7/d77919a37dcdba7740bd2854a42a497b5f115b3d.svn-base | 0
D.svn/pristine/d7/d77eb30f84d1d8ef30ff39c6fbd824380f89e6cf.svn-base | 21---------------------
D.svn/pristine/d7/d7b3c33ff348a6363bc54fe12517d1675cb178d4.svn-base | 0
D.svn/pristine/d7/d7b818c102e3a23ca5fbccb35e32026c0b4b99d0.svn-base | 213-------------------------------------------------------------------------------
D.svn/pristine/d7/d7d45d57758aa7d3b464e8174f5173d3a1aaca3f.svn-base | 0
D.svn/pristine/d8/d861f35fa5f11db26454df3c408d133427104de5.svn-base | 145-------------------------------------------------------------------------------
D.svn/pristine/d9/d9cf9685430b93bbff2f74a383419f3e4bbc64ec.svn-base | 0
D.svn/pristine/da/da12327b610d7664cd15ecdb6e76179aa4856116.svn-base | 0
D.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601890afd80709.svn-base | 0
D.svn/pristine/da/da7ea039d0603ca6eef25b76822f741adf0eb352.svn-base | 32--------------------------------
D.svn/pristine/da/daf76a85ded558e7e67805e8208ceff30548619b.svn-base | 0
D.svn/pristine/db/db18a59600f111a151d772b6c17603c04f587a30.svn-base | 0
D.svn/pristine/db/dbdbdd1b50590cd2bffe180a8c66317de08e476b.svn-base | 80-------------------------------------------------------------------------------
D.svn/pristine/dc/dc33724662321bb34bddec40c85762940ed2282a.svn-base | 0
D.svn/pristine/dc/dc6e2ddafde03094841d0f311102bf9e2760dcc0.svn-base | 0
D.svn/pristine/dc/dc7997f55c3b145d3082a7d8f171ee61083ac304.svn-base | 0
D.svn/pristine/dc/dc95ebf61fcc45dece6aefdd27305ab16408922e.svn-base | 0
D.svn/pristine/dd/dd18cf3c5b42376d648da77f39b8e118e45611aa.svn-base | 0
D.svn/pristine/dd/ddb77d1b0a09855338fd5dc582fbcf1c55ca4129.svn-base | 0
D.svn/pristine/dd/dddb2d4f4c4727e9ae6297dba68bbe6e683f6f52.svn-base | 0
D.svn/pristine/de/deaf3d04b1dbfd8462cc53f6a7534fc91ec55eaa.svn-base | 184-------------------------------------------------------------------------------
D.svn/pristine/df/df359da4d3cb8ef222a79c800f4053442f07e079.svn-base | 137-------------------------------------------------------------------------------
D.svn/pristine/df/df3e306d07ba9ca033ef49e9ba9dc75f80fa3b21.svn-base | 163-------------------------------------------------------------------------------
D.svn/pristine/df/df5a6ded4ba9b91df4774d337b68c84bc6ce8e50.svn-base | 134-------------------------------------------------------------------------------
D.svn/pristine/df/dfead7e5f1236bb4c6a1329528b15409b7704b8b.svn-base | 0
D.svn/pristine/e0/e0344d48098f78f9fe7751ff035345396c4b0b95.svn-base | 169-------------------------------------------------------------------------------
D.svn/pristine/e0/e0a2ac6181c8a1190ee45c101a5604ee0bb607f2.svn-base | 29-----------------------------
D.svn/pristine/e2/e215158662ed5306bbeaac213bbddce4e6e9b746.svn-base | 174-------------------------------------------------------------------------------
D.svn/pristine/e2/e23a6b98f748dfceef946ce4efdbba7480ac1011.svn-base | 60------------------------------------------------------------
D.svn/pristine/e3/e326fd150fc62a61cb88e40a530eb7fcb1bd19dc.svn-base | 0
D.svn/pristine/e3/e3bf405143b9a7457cb17a402ffdf5d7ef039015.svn-base | 0
D.svn/pristine/e4/e46a3ba458fdb83c80fc15d96a0bcc69e851e2a1.svn-base | 0
D.svn/pristine/e4/e4b2e855b889068bc40402b5e43987261f8384cd.svn-base | 0
D.svn/pristine/e5/e5d42a916048a1128be40b282cb6d734df3446ca.svn-base | 370-------------------------------------------------------------------------------
D.svn/pristine/e6/e6c7b2517291a7449222c6cf7e271346f7ed5da7.svn-base | 0
D.svn/pristine/e6/e6d78a8415ff02bf9d2a41331387aa373bed1b3d.svn-base | 0
D.svn/pristine/e8/e84772bbd1d4efe153c7cd5d9412ff3ebf4d87c8.svn-base | 25-------------------------
D.svn/pristine/e8/e859e2828a642a37bf6c8ddd231e7f9a21caeb9d.svn-base | 0
D.svn/pristine/e9/e9506ca67e603adbb8f6df40435bef7293af13cc.svn-base | 0
D.svn/pristine/e9/e95dbc8980e8640e9e4a9711a5d5146697817e40.svn-base | 0
D.svn/pristine/ea/ea9398e88b3ab5fb42d60ea08bbe6108cd2547f2.svn-base | 0
D.svn/pristine/eb/eb1e7241d09c46a3b901ad5e8f95f4320c6f5d76.svn-base | 317-------------------------------------------------------------------------------
D.svn/pristine/eb/eb2976fbf1f49bc0610f174e5d59a6dd6b7b1050.svn-base | 660-------------------------------------------------------------------------------
D.svn/pristine/eb/eb3e3c44270fd19e3505bb772ee17b48e202975a.svn-base | 0
D.svn/pristine/eb/eb46f66e157e4e4a2e2b034fdade0167dc6b01da.svn-base | 0
D.svn/pristine/ec/ec2e0abd4e20f51e964428608514c99253c45b0b.svn-base | 0
D.svn/pristine/ec/ec3bed34b21d644201b57afac19a13a7dc5f0165.svn-base | 154-------------------------------------------------------------------------------
D.svn/pristine/ec/ec4a113b1a215f0ebdb7290ee00cdcb566214bf9.svn-base | 1213-------------------------------------------------------------------------------
D.svn/pristine/ec/ec69b4c192f299ef9ae03756a5816fcf12be3ab3.svn-base | 116-------------------------------------------------------------------------------
D.svn/pristine/ed/ed4f7cdb34b97ce661273c7586a36a3477928064.svn-base | 97-------------------------------------------------------------------------------
D.svn/pristine/ee/ee2afb4fb7a0a99246b13b67e9c3caf3b13ae318.svn-base | 0
D.svn/pristine/ee/ee4490ffb1cd960cab48369880b0e1ce9ce9ba86.svn-base | 0
D.svn/pristine/ee/eed048fec2e1ba599c0f08f4fc7da6edc4da6d86.svn-base | 0
D.svn/pristine/ef/ef1547dfb6c30b50941d5f33e81ac7a546473205.svn-base | 234-------------------------------------------------------------------------------
D.svn/pristine/ef/ef6308d6c8e734855a50b32b729037cf556928c7.svn-base | 0
D.svn/pristine/ef/ef79c8bc4c24271b7e559f25eb7f51f442b10356.svn-base | 5-----
D.svn/pristine/ef/efbc6364f7a7098b8b79dbf2c0fa17eac4b8523a.svn-base | 43-------------------------------------------
D.svn/pristine/ef/efc438310d66fd1f2911764fdf5dec977581642e.svn-base | 0
D.svn/pristine/ef/efc99b367f6df26293eb56bcfd87fa77e48b841f.svn-base | 0
D.svn/pristine/f0/f061480096ab622dc8915a46bc4dec4dd3385c3b.svn-base | 0
D.svn/pristine/f1/f10759b2a78db8f8077bd37de4ee1c6c48ac80d0.svn-base | 0
D.svn/pristine/f1/f120ace5d8f8d64e728f3c6b4a52947dde6a4b2c.svn-base | 246-------------------------------------------------------------------------------
D.svn/pristine/f1/f18cab27a4d9b9c414afe87343f2242311a19b55.svn-base | 0
D.svn/pristine/f1/f1992c7b464085c366a997189ed0c750bd93fcfc.svn-base | 0
D.svn/pristine/f1/f19c44fab74e956b98c0166760425386f99ffa98.svn-base | 0
D.svn/pristine/f1/f1a12ba0ba0680f61b94a51895d4f3f345732d2d.svn-base | 0
D.svn/pristine/f1/f1bd49620b6fb9d998196e8e808189884bf140bd.svn-base | 0
D.svn/pristine/f1/f1be24e223355feb6be685ce0f22680cd17771c6.svn-base | 0
D.svn/pristine/f1/f1fbc8898a3db380b7b8cf54866eebc4f435d557.svn-base | 144-------------------------------------------------------------------------------
D.svn/pristine/f2/f2523870c724a4e2fbff01739a17030ff140881c.svn-base | 0
D.svn/pristine/f2/f2696a20fb3f1ba2a7b6dd1a8a6626d9f6123a11.svn-base | 0
D.svn/pristine/f2/f2d4c3adf3a2cfbbc66b50ceaff0ee02e2187d32.svn-base | 23-----------------------
D.svn/pristine/f3/f32ca16e2c96eea482893056bba934920e316905.svn-base | 0
D.svn/pristine/f3/f3c2e12c4e4a59d482b3291b30879730b9705c63.svn-base | 74--------------------------------------------------------------------------
D.svn/pristine/f3/f3e75dbdad91bd27dd657de0987a0ba0fd83e372.svn-base | 0
D.svn/pristine/f3/f3efd7a8b1df2241fb566889c93b76e2a55c9b1a.svn-base | 86-------------------------------------------------------------------------------
D.svn/pristine/f4/f49a3e5a2ec9323886cecfa75e4c88fdc690244d.svn-base | 0
D.svn/pristine/f5/f59f64068b44a07e3401ab9a2a4e15e57714677b.svn-base | 0
D.svn/pristine/f5/f5a52c9db31bd82bc23cecf9203ba23566b7ebed.svn-base | 0
D.svn/pristine/f5/f5e7c090d18d14e5102d9282859c8b166685c4a5.svn-base | 162-------------------------------------------------------------------------------
D.svn/pristine/f5/f5f32e64bc27b5ea3d3e6530dbd9dbd511d99ff0.svn-base | 1736-------------------------------------------------------------------------------
D.svn/pristine/f6/f681b3d0126f4b94b3f7eb4c70d285350901d3a0.svn-base | 0
D.svn/pristine/f6/f6d8fc229231600ac2a5256120cb7e7d19b3ed1f.svn-base | 0
D.svn/pristine/f7/f7be728cd0356f7361a875de2580ffe156541e80.svn-base | 0
D.svn/pristine/f8/f81370f4f419b3941be6e0d334d26a35ab5cb327.svn-base | 0
D.svn/pristine/f8/f88fc202fef11388289be0875001418513b08b71.svn-base | 0
D.svn/pristine/f8/f8f7b22213ec1dbae0421280ff5e056cc47522da.svn-base | 0
D.svn/pristine/f9/f90e6dd2b2c0971b77548f76858e2f3be9168f26.svn-base | 0
D.svn/pristine/f9/f97e9bb4c5d692962c0fb285fbd3b5ce269fa7b1.svn-base | 0
D.svn/pristine/f9/f99e5c6ad6e6f4a48b0ae4ac897da4235d1ec6aa.svn-base | 171-------------------------------------------------------------------------------
D.svn/pristine/fa/fae703e8d754207763bbf0719e030ceb8483fae9.svn-base | 0
D.svn/pristine/fb/fb130876f6fff0a1b41ea77415b94fc43b36c245.svn-base | 0
D.svn/pristine/fb/fb1fa5e1f0b479b4b95ba8ad5b630d9558dfe256.svn-base | 0
D.svn/pristine/fb/fb332ae4812593ecf65d7d08601f2b4117289f84.svn-base | 0
D.svn/pristine/fb/fb40398c075c35b570c75689f3b8eed915262a61.svn-base | 0
D.svn/pristine/fb/fb8b1ba166913c18eb00f8ca53439d0f4ee54359.svn-base | 0
D.svn/pristine/fb/fba01d0e491a0be6c3adfc137a77231b78657a2f.svn-base | 3---
D.svn/pristine/fb/fbbb6280f9b852bcb66c1985f6c43d7a6523b2b3.svn-base | 0
D.svn/pristine/fc/fc17d464e2f259ebaee02babb619b26b4173e061.svn-base | 0
D.svn/pristine/fc/fc8f65cf87ca9b5a7493634a1d4a29165f85a26d.svn-base | 0
D.svn/pristine/fc/fcadb5e3500047ad496357847ea6621196e70163.svn-base | 0
D.svn/pristine/fc/fcba20a322821815f39ef00f9656ffe7ba19b73e.svn-base | 11-----------
D.svn/pristine/fe/fe2b18f35105838adcb87da7d13231309541f8f1.svn-base | 0
D.svn/pristine/fe/fe7c9ddb4c5caf9fbf8b6f10139f65dd0ca78439.svn-base | 0
D.svn/pristine/fe/fed291cdb1b38b747bb26a176b0c0fcf787222e2.svn-base | 0
D.svn/pristine/ff/ff8b3c01507bcc1f53e88b2ab0bbc65bac9e815c.svn-base | 171-------------------------------------------------------------------------------
D.svn/pristine/ff/ff8b5d176ef990171a1abe777c068202880f9c49.svn-base | 0
D.svn/pristine/ff/fff4ae983121b27a9fb02111f4534f60ad8216d4.svn-base | 20--------------------
D.svn/wc.db | 0
D.svn/wc.db-journal | 0
D.vs/TapestryEngine/v14/.suo | 0
D.vs/config/applicationhost.config | 1030-------------------------------------------------------------------------------
MTapestryEngine/json/level_arid_land.json | 2+-
618 files changed, 1 insertion(+), 39603 deletions(-)

diff --git a/.svn/entries b/.svn/entries @@ -1 +0,0 @@ -12 diff --git a/.svn/format b/.svn/format @@ -1 +0,0 @@ -12 diff --git a/.svn/pristine/01/01023462e91f5b7fa675973705d80838c8dbacf8.svn-base b/.svn/pristine/01/01023462e91f5b7fa675973705d80838c8dbacf8.svn-base Binary files differ. diff --git a/.svn/pristine/01/011de802312db34dc97b96b379f4fc7b4381c73a.svn-base b/.svn/pristine/01/011de802312db34dc97b96b379f4fc7b4381c73a.svn-base Binary files differ. diff --git a/.svn/pristine/02/022eb296d4d6237c5f0f501559eb43d719db045c.svn-base b/.svn/pristine/02/022eb296d4d6237c5f0f501559eb43d719db045c.svn-base Binary files differ. diff --git a/.svn/pristine/02/025f21115e78bc401075b7aeb47067e9ea4a933c.svn-base b/.svn/pristine/02/025f21115e78bc401075b7aeb47067e9ea4a933c.svn-base @@ -1,276 +0,0 @@ -#include "ActorCollision.h" - -bool SpatialMonitor::PartitionCells(int worldH, int worldW) -{ - int cellW = (worldW / CELLS_X); - int cellH = (worldH / CELLS_Y); - - for (int i = 0; i < CELLS_Y; i++) - { - for (int j = 0; j < CELLS_X; j++) - { - Cell new_cell; - new_cell.GetCellRect()->w = cellW; - new_cell.GetCellRect()->h = cellH; - new_cell.GetCellRect()->x = cellW * j; - new_cell.GetCellRect()->y = cellH * i; - - mCells[i*CELLS_X + j] = new_cell; - - } - } - return true; -} - -bool SpatialMonitor::LogActor(int id) -{ - //mActors[mActorCount] = &act; - //mActors.Insert(act.GetHandle(), &act); - //act.SetSpatID(mActorCount); - UpdateActorCell(id); - return true; -} - -bool SpatialMonitor::ClearActorCell(int id) -{ - if (GetActorCell(id) != -1) - { - mCells[GetActorCell(id)].GetActorTree()->Search(id)->Delete(); - return true; - } - return false; -} - - -int SpatialMonitor::UpdateActorCell(int id) -{ - Actor* act = (mAHM->GetActorAddress(id)); - for (int i = 0; i < CELL_COUNT; i++) - { - if (DetectCenterPointIntersect( mCells[i].GetCellRect(), act->GetPosition() ) ) - { - //gCons->ConsPrintf("Actor entering cell %i\n", i); - - if (i != act->GetSpatCell()) - { - mCells[i].GetActorTree()->Insert(id, NULL); - ClearActorCell(id); - act->SetSpatCell(i); - } - - return i; - } - } - gCons->ConsPrintf("Could not find Actor cell\n"); - return -1; -} - -int SpatialMonitor::GetAdjacentCells(int cellnum, Cell* cells[9]) -{ - cells[0] = GetCell((cellnum - CELLS_X - 1)); - cells[1] = GetCell((cellnum - CELLS_X)); - cells[2] = GetCell((cellnum - CELLS_X + 1)); - - cells[3] = GetCell((cellnum - 1)); - cells[4] = GetCell((cellnum)); - cells[5] = GetCell((cellnum + 1)); - - cells[6] = GetCell((cellnum + CELLS_X - 1)); - cells[7] = GetCell((cellnum + CELLS_X)); - cells[8] = GetCell((cellnum + CELLS_X + 1)); - - return 0; -} - -//bool SpatialMonitor::GetActorsInCell(int cellnum) //uneeded now. Use Cell.GetActorTree() -//{ -// for (int i = 0; i < MAX_ACTORS; i++) //this is very bad. Basically defeats the function of cells by check each actor -// { -// if (mActorCells[i] == cellnum) -// { -// //gCons->ConsPrintf("Actor %i is in adjacent cell\n", i); -// mAdjacentActorIDs[mAdjacentActorCount] = i; -// mAdjacentActorCount++; -// } -// } -// return true; -//} - -//bool SpatialMonitor::GetAdjacentActors(int cellnum) -//{ -// mAdjacentActorCount = 0; -// mAdjacentActorIDs[MAX_ACTORS] = { 0 }; -// -// int cells[9]; -// GetAdjacentCells(cellnum, cells); -// -// for (int i = 0; i < 9; i++) -// { -// GetActorsInCell(cells[i]); -// //gDiagDraw->LogDiagRect(mCells[cells[i]]); -// } -// return true; -//} - -bool SpatialMonitor::DetectActorCollision(int id1, int id2) -{ - if (id1 != id2) - { - //gDiagDraw->LogDiagRect(*mActors[id2]->GetPosition()); - return DetectRectIntersect(mAHM->GetActorAddress(id1)->GetPosition(), mAHM->GetActorAddress(id2)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::DetectRectSensors(SDL_Rect* sensor, int DetectorID, int foreignID) -{ - if (DetectorID != foreignID) - { - //gDiagDraw->LogDiagRect(*sensor); - //gDiagDraw->LogDiagRect(*mActors[foreignID]->GetPosition()); - return DetectRectIntersect(sensor, mAHM->GetActorAddress(foreignID)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::HandleCollisions(int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectActorCollision(CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(ACTOR_COLLISION, ActorTreeArray[j]->GetItem())); - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - - return true; -} - -bool SpatialMonitor::HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - Node* debugtool = ActorTreeArray[j]; - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(SENSOR_COLLISION, SeType, ActorTreeArray[j]->GetItem())); //Used to pass actor* now passed ID number. receiver functions need to be updated - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return true; -} - -bool SpatialMonitor::TestBlockers(SDL_Rect* sensor, int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = ((AdjecentCellIndex[i]->GetActorTree())->Dump()); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - if (mAHM->GetActorAddress(ActorTreeArray[j]->GetItem())->IsBlocking() == true) - { - return true; - } - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return false; -} - -bool SpatialMonitor::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case MOVED_THIS_FRAME: - UpdateActorCell(eve.GetEventData()->i); - HandleCollisions(eve.GetEventData()->i); - return true; - break; - case CHECK_RECT_SENSOR: - HandleRectSensors(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id, eve.GetEventData()->sd.st); - return true; - break; - case CHECK_BLOCKERS: - return TestBlockers(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id); - break; - default: - gCons->ConsPrintf("Spatial Monitor Received Invalid Event Type\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/02/02f8092bf3b51550bb5d1bd78e0e145df7e984dd.svn-base b/.svn/pristine/02/02f8092bf3b51550bb5d1bd78e0e145df7e984dd.svn-base Binary files differ. diff --git a/.svn/pristine/02/02f834e6d0e0c32ca9a077c42b8720380539b80f.svn-base b/.svn/pristine/02/02f834e6d0e0c32ca9a077c42b8720380539b80f.svn-base Binary files differ. diff --git a/.svn/pristine/03/03c9af44a77bbb198d41be02f7eeaf211ebb632e.svn-base b/.svn/pristine/03/03c9af44a77bbb198d41be02f7eeaf211ebb632e.svn-base @@ -1,477 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'last_fit': the writable size is '(unsigned int)size+(unsigned int)1' bytes, but '4' bytes might be written.</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'_Old_11`4' is equal to 4</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'last_fit', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'last_fit' could be '0': this does not adhere to the specification for the function 'memset'. </DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'memset' (declared at c:\program files (x86)\microsoft visual studio 14.0\vc\include\vcruntime_string.h:60)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' should not be NULL, because this is not consistent with the SAL annotation on 'memset'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'last_fit' could be '0': this does not adhere to the specification for the function 'strcpy'. See line 34 for an earlier location where this can occur</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'memset' (declared at c:\program files (x86)\microsoft visual studio 14.0\vc\include\vcruntime_string.h:60)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>37</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'tok!=0')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>40</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>42</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>43</LINE> - <COLUMN>14</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>44</LINE> - <COLUMN>15</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Skip this branch, (assume 'text_pix&gt;=text_pix_max' is false)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'strcpy' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\string.h:119)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' should not be NULL, because this is not consistent with the SAL annotation on 'strcpy'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'line': the writable size is '(unsigned int)size+(unsigned int)1' bytes, but '4' bytes might be written.</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'line' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'_Old_9`4' is equal to 4</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'line', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/03/03e1a9b268e7da7eed9aa52fa28afd5c50e9c794.svn-base b/.svn/pristine/03/03e1a9b268e7da7eed9aa52fa28afd5c50e9c794.svn-base Binary files differ. diff --git a/.svn/pristine/04/046b63576f4844eebc79075bd3a48a46fe97a4a7.svn-base b/.svn/pristine/04/046b63576f4844eebc79075bd3a48a46fe97a4a7.svn-base @@ -1,61 +0,0 @@ -#ifndef EMITTER_H -#define EMITTER_H - -#include "Console.h" -#include "Utils.h" -#include "Actor.h" - -class Emitter -{ -public: - - Emitter(int x, int y, EventReceiver* ParticleManager, char* name, int count, ParticleTypeData data) : mX(x), mY(y), mPrtMan(ParticleManager), mPrtName(name), mPrtCount(count), mData(data) - { - } - - char* GetType() - { - return mPrtType; - } - - char* GetName() - { - return mPrtName; - } - - int GetX() - { - return mX; - } - - int GetY() - { - return mY; - } - - ParticleTypeData GetData() - { - return mData; - } - - bool EmitParticle(); - -protected: - - int mX; - int mY; - EventReceiver* mPrtMan; - - char* mPrtType; - char* mPrtName; - int mPrtCount; - - int mDir; - int mSpd; - - ParticleTypeData mData; //union to store data for different types of particles - - Actor* Particles; -}; - -#endif diff --git a/.svn/pristine/04/04f627761ed89929736187ac03605200a37f3de6.svn-base b/.svn/pristine/04/04f627761ed89929736187ac03605200a37f3de6.svn-base Binary files differ. diff --git a/.svn/pristine/06/0636b55e9703318e9f221c7d41ea7e8ebb5e9846.svn-base b/.svn/pristine/06/0636b55e9703318e9f221c7d41ea7e8ebb5e9846.svn-base Binary files differ. diff --git a/.svn/pristine/06/067fa4dee6241d96f899c5120b9cbd7a46a9a175.svn-base b/.svn/pristine/06/067fa4dee6241d96f899c5120b9cbd7a46a9a175.svn-base @@ -1,83 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>29</COLUMN> - </SFA> - <DEFECTCODE>6201</DEFECTCODE> - <DESCRIPTION>Index '1024' is out of valid index range '0' to '1023' for possibly stack allocated buffer 'this-&gt;mAdjacentActorIDs'.</DESCRIPTION> - <FUNCTION>SpatialMonitor::GetAdjacentActors</FUNCTION> - <DECORATED>?GetAdjacentActors@SpatialMonitor@@IAE_NH@Z</DECORATED> - <FUNCLINE>88</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>31</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'this-&gt;mAdjacentActorIDs': the writable size is '4096' bytes, but '4100' bytes might be written.</DESCRIPTION> - <FUNCTION>SpatialMonitor::GetAdjacentActors</FUNCTION> - <DECORATED>?GetAdjacentActors@SpatialMonitor@@IAE_NH@Z</DECORATED> - <FUNCLINE>88</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>21</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>31</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'this-&gt;mAdjacentActorIDs[1024]', (writable range is 0 to 1023)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/07/077c4419fb51346d76cab150c3560afa3b9c74d8.svn-base b/.svn/pristine/07/077c4419fb51346d76cab150c3560afa3b9c74d8.svn-base Binary files differ. diff --git a/.svn/pristine/07/07b44a0668c7eba8de112feebc3715e95a0823e1.svn-base b/.svn/pristine/07/07b44a0668c7eba8de112feebc3715e95a0823e1.svn-base Binary files differ. diff --git a/.svn/pristine/07/07be394fdfb9df062ea0184f592b61d00a6dfb3c.svn-base b/.svn/pristine/07/07be394fdfb9df062ea0184f592b61d00a6dfb3c.svn-base Binary files differ. diff --git a/.svn/pristine/09/097a891ae12db979d140d9dbe4127c959d1de896.svn-base b/.svn/pristine/09/097a891ae12db979d140d9dbe4127c959d1de896.svn-base Binary files differ. diff --git a/.svn/pristine/09/099e3567da7a6434ae614494409deabb822105a1.svn-base b/.svn/pristine/09/099e3567da7a6434ae614494409deabb822105a1.svn-base @@ -1,20 +0,0 @@ - Level.cpp - Actor.cpp - Generating Code... - Compiling... - symbol.cpp - sound.cpp - Utils.cpp - Terrain.cpp - Particle.cpp - MiscDraw.cpp - Main.cpp - HUD.cpp - Emitter.cpp - Dialogue.cpp - DiagnosticDraw.cpp - Camera.cpp - ActorCollision.cpp - Generating Code... - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/09/09fb8f8712bc8920160c7c71c2e089a965ec57f4.svn-base b/.svn/pristine/09/09fb8f8712bc8920160c7c71c2e089a965ec57f4.svn-base Binary files differ. diff --git a/.svn/pristine/0b/0b9147448ceec2b88241efeec25295e08c553b75.svn-base b/.svn/pristine/0b/0b9147448ceec2b88241efeec25295e08c553b75.svn-base Binary files differ. diff --git a/.svn/pristine/0b/0bc4524682bd935f7f03324bbaf01cb38111c1d4.svn-base b/.svn/pristine/0b/0bc4524682bd935f7f03324bbaf01cb38111c1d4.svn-base Binary files differ. diff --git a/.svn/pristine/0b/0bf03acc656d14b60bf15eb57b24565366411d86.svn-base b/.svn/pristine/0b/0bf03acc656d14b60bf15eb57b24565366411d86.svn-base Binary files differ. diff --git a/.svn/pristine/0d/0d41dc95ed9bb80931d94a85b3e2ee116a538cb9.svn-base b/.svn/pristine/0d/0d41dc95ed9bb80931d94a85b3e2ee116a538cb9.svn-base Binary files differ. diff --git a/.svn/pristine/0d/0d7e75cfa6439ee0bae376ec0028f4d2ecfd694f.svn-base b/.svn/pristine/0d/0d7e75cfa6439ee0bae376ec0028f4d2ecfd694f.svn-base @@ -1,85 +0,0 @@ -#ifndef ACTORCOLLISION_H -#define ACTORCOLLISION_H - -#include "Utils.h" -#include "Console.h" -#include "DiagnosticDraw.h" -#include "Event.h" -#include "Actor.h" - -#define MAX_ACTORS 1024 - -#define CELLS_X 10 -#define CELLS_Y 4 -#define CELL_COUNT (CELLS_X*CELLS_Y) - -class SpatialMonitor : public EventReceiver -{ -public: - - SpatialMonitor() : mActorCount(0), mAdjacentActorCount(0) - { - } - - SpatialMonitor(int worldH, int worldW) : mActorCount(0), mAdjacentActorCount(0) - { - PartitionCells(worldH, worldW); - } - - bool VecLogActor(Actor& act) - { - //mvActors.push_back( &act ); - //act.SetSpatID(mActorCount); - mActorCount += 1; - return true; - } - - int* GetAdjacentCells(int cellnum, int cells[9]); - - bool LogActor(Actor& act); //Logs an actor with the spatial monitor. called on program startup - - bool EventProcess(Event eve); - - SDL_Rect GetCell(int i) //Gets the cell rect of a cell number - { - return mCells[i]; - } - -protected: - - bool PartitionCells(int worldH, int worldW); //divides the level into cells based on macro parameters - - bool GetActorsInCell(int cellnum); - - bool GetAdjacentActors(int cellnum); - - bool DetectActorCollision(int id1, int id2); //checks two logged actors for intersection - - bool DetectRectSensors(SDL_Rect* sensor, int detectorID, int foreignID); //Called in HandleRectSensors, checks given rectangle for intersects - - int UpdateActorCell(int id); //Updates the the cell number that contains a logged actor, Called when an MOVED_THIS_FRAME event is processed - - int GetActorCell(int id) //Gets the cell number of an actor - { - return mActorCells[id]; - } - - //int* GetAdjacentCells(int cellnum, int cells[9]); //populates and returns cells[9] with the cell numbers of cellnum and the 8 surrounding cells - - bool HandleCollisions(int CallerID); //Called in event process, finds the actors in the cells adjacent to the cell of CallerID and checks them for collision with CallerID - - bool HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType); - - bool TestBlockers(SDL_Rect* sensor, int CallerID); - - - Actor* mActors[MAX_ACTORS]; - int mActorCells[MAX_ACTORS]; - SDL_Rect mCells[CELL_COUNT]; - int mActorCount; - int mAdjacentActorIDs[MAX_ACTORS]; - int mAdjacentActorCount; -}; - -#endif - diff --git a/.svn/pristine/0d/0d956f63fbbf7875ed063f41ac9302b9fe1cf207.svn-base b/.svn/pristine/0d/0d956f63fbbf7875ed063f41ac9302b9fe1cf207.svn-base Binary files differ. diff --git a/.svn/pristine/0e/0e28155f5b2292fc65d23aa40950dd1126886b78.svn-base b/.svn/pristine/0e/0e28155f5b2292fc65d23aa40950dd1126886b78.svn-base Binary files differ. diff --git a/.svn/pristine/0e/0ec69de87d5e456add8dbdebed1b3ad9a7ba43bc.svn-base b/.svn/pristine/0e/0ec69de87d5e456add8dbdebed1b3ad9a7ba43bc.svn-base Binary files differ. diff --git a/.svn/pristine/10/101f47f8a697bcb4840e4d6883cc9d091a1de83e.svn-base b/.svn/pristine/10/101f47f8a697bcb4840e4d6883cc9d091a1de83e.svn-base Binary files differ. diff --git a/.svn/pristine/10/10870de670c962da7891592ce3879bd0df872e90.svn-base b/.svn/pristine/10/10870de670c962da7891592ce3879bd0df872e90.svn-base Binary files differ. diff --git a/.svn/pristine/10/10912af53b420c8540bf6613c884eda218f751e3.svn-base b/.svn/pristine/10/10912af53b420c8540bf6613c884eda218f751e3.svn-base Binary files differ. diff --git a/.svn/pristine/10/10a229ba906bc8ea869be96f769a12461c9f7861.svn-base b/.svn/pristine/10/10a229ba906bc8ea869be96f769a12461c9f7861.svn-base Binary files differ. diff --git a/.svn/pristine/11/1129183ab20b3ecf7efbc06e6b3116652b22e4f5.svn-base b/.svn/pristine/11/1129183ab20b3ecf7efbc06e6b3116652b22e4f5.svn-base Binary files differ. diff --git a/.svn/pristine/11/116da4183c48d64f674710a4205399bcfcb71e54.svn-base b/.svn/pristine/11/116da4183c48d64f674710a4205399bcfcb71e54.svn-base @@ -1,148 +0,0 @@ -#include "HUD.h" - -SDL_Rect CalcElementScreenPosition(Widget* wid, SDL_Rect elementRect) -{ - elementRect.x += wid->GetPos()->x; - elementRect.y += wid->GetPos()->y; - - return elementRect; -}; - -bool HUD::LogWidget(Widget* wid) -{ - assert(mIndex < 10); - mWidgets[mIndex] = wid; - mIndex += 1; - return true; -} - -bool HUD::UpdateWidgets() -{ - for (int i = 0; i < mIndex; i++) - { - mWidgets[i]->WidgetUpdate(); - } - return true; -} - -bool HUD::DrawWidgets() -{ - for (int i = 0; i < mIndex; i++) - { - mWidgets[i]->WidgetDraw(); - } - return true; -} - -LifeMeter::LifeMeter(Player* target, SDL_Rect pos, SDL_Renderer* ren, char* life_base, char* life_bar) : Widget(ren, pos) -{ - mHPmax = target->GetMaxHP(); - mHP = target->GetHP(); - - mBase.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(life_base)); - mLifebar.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(life_bar )); - - mBase.pos = mPos; - mLifebar.pos.x = 0; - mLifebar.pos.y = 0; - mLifebar.pos.h = mPos.h; - mLifebar.pos.w = mPos.w; -} - -bool LifeMeter::WidgetUpdate() -{ - mLifebar.pos.w = (int)( (mBase.pos.w)*(( (float)(*mHP) ) / ( (float)(*mHPmax)) ) ); - return true; -} - -bool LifeMeter::WidgetDraw() -{ - SDL_RenderCopy(mren, mBase.img, NULL, &mBase.pos); - SDL_RenderCopy(mren, mLifebar.img, NULL, &CalcElementScreenPosition(this, mLifebar.pos) ); - return true; -} -// - -//Fader -Fader::Fader(SDL_Renderer* ren, char* black, char* red) : Widget(ren, { 0,0,0,0 }) -{ - mDisplay = false; - - mBlack.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(black)); - mRed.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(red)); - - mBlack.pos = mPos; -} - -void Fader::PlayFade(int duration, int color, int opacity) -{ - mDisplay = true; - mOpacity = 0; - - mOpacityTarget = opacity; - mFadeColor = color; - mTimer = gTime->GetCurrentCycle(); - mFadeTime = duration / 2; -} - -bool Fader::WidgetUpdate() -{ - if (mDisplay == true) - { - if (gTime->GetCurrentCycle() - mTimer <= mFadeTime) //if the timer is less than the fade-in/out time - { - mOpacity = (int)( ((float)(gTime->GetCurrentCycle() - mTimer) / (float)mFadeTime) * (float)mOpacityTarget ); - } - else if (gTime->GetCurrentCycle() - mTimer <= 2 * mFadeTime) //if the time is not less then the fade time, but is less than the total time - { - mOpacity = (int)( ((float)mFadeTime / (float)(gTime->GetCurrentCycle() - mTimer)) * (float)mOpacityTarget ); - } - else //if the timer is over the fade time - { - mDisplay = false; - } - } - - return true; -} - -bool Fader::WidgetDraw() -{ - if (mDisplay == true) - { - switch (mFadeColor) - { - case FADE_BLACK: - SDL_RenderCopy(mren, mBlack.img, NULL, NULL); - SDL_SetTextureAlphaMod(mBlack.img, mOpacity); - break; - case FADE_RED: - SDL_RenderCopy(mren, mRed.img, NULL, NULL); - SDL_SetTextureAlphaMod(mRed.img, mOpacity); - break; - default: - gCons->ConsPrintf("Unknown fade color\n"); - } - } - return true; -} - -bool Fader::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case FADE: - PlayFade(eve.GetEventData()->fd.duration, eve.GetEventData()->fd.color, eve.GetEventData()->fd.opacity); - break; - case TERMINATE_DIALOGUE: - case SCROLL: - case DIALOGUE: - break; - default: - gCons->ConsPrintf("Fader received unrecognized event\n"); - return false; - break; - } - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/12/12067588569c8457bf11ad160f82416bf2863265.svn-base b/.svn/pristine/12/12067588569c8457bf11ad160f82416bf2863265.svn-base Binary files differ. diff --git a/.svn/pristine/12/123872eedae5d93aaa9c95199507f963a9de142d.svn-base b/.svn/pristine/12/123872eedae5d93aaa9c95199507f963a9de142d.svn-base @@ -1,758 +0,0 @@ -/* -Copyright (c) 2009 Dave Gamble -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* cJSON */ -/* JSON parser in C. */ - -#include <string.h> -#include <stdio.h> -#include <math.h> -#include <stdlib.h> -#include <float.h> -#include <limits.h> -#include <ctype.h> -#include "cJSON.h" - -static const char *global_ep; - -const char *cJSON_GetErrorPtr(void) { return global_ep; } - -static int cJSON_strcasecmp(const char *s1, const char *s2) -{ - if (!s1) return (s1 == s2) ? 0 : 1; if (!s2) return 1; - for (; tolower(*s1) == tolower(*s2); ++s1, ++s2) if (*s1 == 0) return 0; - return tolower(*(const unsigned char *)s1) - tolower(*(const unsigned char *)s2); -} - -static void *(*cJSON_malloc)(size_t sz) = malloc; -static void(*cJSON_free)(void *ptr) = free; - -static char* cJSON_strdup(const char* str) -{ - size_t len; - char* copy; - - len = strlen(str) + 1; - if (!(copy = (char*)cJSON_malloc(len))) return 0; - memcpy(copy, str, len); - return copy; -} - -void cJSON_InitHooks(cJSON_Hooks* hooks) -{ - if (!hooks) { /* Reset hooks */ - cJSON_malloc = malloc; - cJSON_free = free; - return; - } - - cJSON_malloc = (hooks->malloc_fn) ? hooks->malloc_fn : malloc; - cJSON_free = (hooks->free_fn) ? hooks->free_fn : free; -} - -/* Internal constructor. */ -static cJSON *cJSON_New_Item(void) -{ - cJSON* node = (cJSON*)cJSON_malloc(sizeof(cJSON)); - if (node) memset(node, 0, sizeof(cJSON)); - return node; -} - -/* Delete a cJSON structure. */ -void cJSON_Delete(cJSON *c) -{ - cJSON *next; - while (c) - { - next = c->next; - if (!(c->type&cJSON_IsReference) && c->child) cJSON_Delete(c->child); - if (!(c->type&cJSON_IsReference) && c->valuestring) cJSON_free(c->valuestring); - if (!(c->type&cJSON_StringIsConst) && c->string) cJSON_free(c->string); - cJSON_free(c); - c = next; - } -} - -/* Parse the input text to generate a number, and populate the result into item. */ -static const char *parse_number(cJSON *item, const char *num) -{ - double n = 0, sign = 1, scale = 0; int subscale = 0, signsubscale = 1; - - if (*num == '-') sign = -1, num++; /* Has sign? */ - if (*num == '0') num++; /* is zero */ - if (*num >= '1' && *num <= '9') do n = (n*10.0) + (*num++ - '0'); while (*num >= '0' && *num <= '9'); /* Number? */ - if (*num == '.' && num[1] >= '0' && num[1] <= '9') { num++; do n = (n*10.0) + (*num++ - '0'), scale--; while (*num >= '0' && *num <= '9'); } /* Fractional part? */ - if (*num == 'e' || *num == 'E') /* Exponent? */ - { - num++; if (*num == '+') num++; else if (*num == '-') signsubscale = -1, num++; /* With sign? */ - while (*num >= '0' && *num <= '9') subscale = (subscale * 10) + (*num++ - '0'); /* Number? */ - } - - n = sign*n*pow(10.0, (scale + subscale*signsubscale)); /* number = +/- number.fraction * 10^+/- exponent */ - - item->valuedouble = n; - item->valueint = (int)n; - item->type = cJSON_Number; - return num; -} - -static int pow2gt(int x) { --x; x |= x >> 1; x |= x >> 2; x |= x >> 4; x |= x >> 8; x |= x >> 16; return x + 1; } - -typedef struct { char *buffer; int length; int offset; } printbuffer; - -static char* ensure(printbuffer *p, int needed) -{ - char *newbuffer; int newsize; - if (!p || !p->buffer) return 0; - needed += p->offset; - if (needed <= p->length) return p->buffer + p->offset; - - newsize = pow2gt(needed); - newbuffer = (char*)cJSON_malloc(newsize); - if (!newbuffer) { cJSON_free(p->buffer); p->length = 0, p->buffer = 0; return 0; } - if (newbuffer) memcpy(newbuffer, p->buffer, p->length); - cJSON_free(p->buffer); - p->length = newsize; - p->buffer = newbuffer; - return newbuffer + p->offset; -} - -static int update(printbuffer *p) -{ - char *str; - if (!p || !p->buffer) return 0; - str = p->buffer + p->offset; - return p->offset + strlen(str); -} - -/* Render the number nicely from the given item into a string. */ -static char *print_number(cJSON *item, printbuffer *p) -{ - char *str = 0; - double d = item->valuedouble; - if (d == 0) - { - if (p) str = ensure(p, 2); - else str = (char*)cJSON_malloc(2); /* special case for 0. */ - if (str) strcpy(str, "0"); - } - else if (fabs(((double)item->valueint) - d) <= DBL_EPSILON && d <= INT_MAX && d >= INT_MIN) - { - if (p) str = ensure(p, 21); - else str = (char*)cJSON_malloc(21); /* 2^64+1 can be represented in 21 chars. */ - if (str) sprintf(str, "%d", item->valueint); - } - else - { - if (p) str = ensure(p, 64); - else str = (char*)cJSON_malloc(64); /* This is a nice tradeoff. */ - if (str) - { - if (fpclassify(d) != FP_ZERO && !isnormal(d)) sprintf(str, "null"); - else if (fabs(floor(d) - d) <= DBL_EPSILON && fabs(d)<1.0e60) sprintf(str, "%.0f", d); - else if (fabs(d)<1.0e-6 || fabs(d)>1.0e9) sprintf(str, "%e", d); - else sprintf(str, "%f", d); - } - } - return str; -} - -static unsigned parse_hex4(const char *str) -{ - unsigned h = 0; - if (*str >= '0' && *str <= '9') h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F') h += 10 + (*str) - 'A'; else if (*str >= 'a' && *str <= 'f') h += 10 + (*str) - 'a'; else return 0; - h = h << 4; str++; - if (*str >= '0' && *str <= '9') h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F') h += 10 + (*str) - 'A'; else if (*str >= 'a' && *str <= 'f') h += 10 + (*str) - 'a'; else return 0; - h = h << 4; str++; - if (*str >= '0' && *str <= '9') h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F') h += 10 + (*str) - 'A'; else if (*str >= 'a' && *str <= 'f') h += 10 + (*str) - 'a'; else return 0; - h = h << 4; str++; - if (*str >= '0' && *str <= '9') h += (*str) - '0'; else if (*str >= 'A' && *str <= 'F') h += 10 + (*str) - 'A'; else if (*str >= 'a' && *str <= 'f') h += 10 + (*str) - 'a'; else return 0; - return h; -} - -/* Parse the input text into an unescaped cstring, and populate item. */ -static const unsigned char firstByteMark[7] = { 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC }; -static const char *parse_string(cJSON *item, const char *str, const char **ep) -{ - const char *ptr = str + 1, *end_ptr = str + 1; char *ptr2; char *out; int len = 0; unsigned uc, uc2; - if (*str != '\"') { *ep = str; return 0; } /* not a string! */ - - while (*end_ptr != '\"' && *end_ptr && ++len) if (*end_ptr++ == '\\') end_ptr++; /* Skip escaped quotes. */ - - out = (char*)cJSON_malloc(len + 1); /* This is how long we need for the string, roughly. */ - if (!out) return 0; - item->valuestring = out; /* assign here so out will be deleted during cJSON_Delete() later */ - item->type = cJSON_String; - - ptr = str + 1; ptr2 = out; - while (ptr < end_ptr) - { - if (*ptr != '\\') *ptr2++ = *ptr++; - else - { - ptr++; - switch (*ptr) - { - case 'b': *ptr2++ = '\b'; break; - case 'f': *ptr2++ = '\f'; break; - case 'n': *ptr2++ = '\n'; break; - case 'r': *ptr2++ = '\r'; break; - case 't': *ptr2++ = '\t'; break; - case 'u': /* transcode utf16 to utf8. */ - uc = parse_hex4(ptr + 1); ptr += 4; /* get the unicode char. */ - if (ptr >= end_ptr) { *ep = str; return 0; } /* invalid */ - - if ((uc >= 0xDC00 && uc <= 0xDFFF) || uc == 0) { *ep = str; return 0; } /* check for invalid. */ - - if (uc >= 0xD800 && uc <= 0xDBFF) /* UTF16 surrogate pairs. */ - { - if (ptr + 6 > end_ptr) { *ep = str; return 0; } /* invalid */ - if (ptr[1] != '\\' || ptr[2] != 'u') { *ep = str; return 0; } /* missing second-half of surrogate. */ - uc2 = parse_hex4(ptr + 3); ptr += 6; - if (uc2<0xDC00 || uc2>0xDFFF) { *ep = str; return 0; } /* invalid second-half of surrogate. */ - uc = 0x10000 + (((uc & 0x3FF) << 10) | (uc2 & 0x3FF)); - } - - len = 4; if (uc<0x80) len = 1; else if (uc<0x800) len = 2; else if (uc<0x10000) len = 3; ptr2 += len; - - switch (len) { - case 4: *--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6; - case 3: *--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6; - case 2: *--ptr2 = ((uc | 0x80) & 0xBF); uc >>= 6; - case 1: *--ptr2 = (uc | firstByteMark[len]); - } - ptr2 += len; - break; - default: *ptr2++ = *ptr; break; - } - ptr++; - } - } - *ptr2 = 0; - if (*ptr == '\"') ptr++; - return ptr; -} - -/* Render the cstring provided to an escaped version that can be printed. */ -static char *print_string_ptr(const char *str, printbuffer *p) -{ - const char *ptr; char *ptr2, *out; int len = 0, flag = 0; unsigned char token; - - if (!str) - { - if (p) out = ensure(p, 3); - else out = (char*)cJSON_malloc(3); - if (!out) return 0; - strcpy(out, "\"\""); - return out; - } - - for (ptr = str; *ptr; ptr++) flag |= ((*ptr>0 && *ptr<32) || (*ptr == '\"') || (*ptr == '\\')) ? 1 : 0; - if (!flag) - { - len = ptr - str; - if (p) out = ensure(p, len + 3); - else out = (char*)cJSON_malloc(len + 3); - if (!out) return 0; - ptr2 = out; *ptr2++ = '\"'; - strcpy(ptr2, str); - ptr2[len] = '\"'; - ptr2[len + 1] = 0; - return out; - } - - ptr = str; while ((token = *ptr) && ++len) { if (strchr("\"\\\b\f\n\r\t", token)) len++; else if (token<32) len += 5; ptr++; } - - if (p) out = ensure(p, len + 3); - else out = (char*)cJSON_malloc(len + 3); - if (!out) return 0; - - ptr2 = out; ptr = str; - *ptr2++ = '\"'; - while (*ptr) - { - if ((unsigned char)*ptr>31 && *ptr != '\"' && *ptr != '\\') *ptr2++ = *ptr++; - else - { - *ptr2++ = '\\'; - switch (token = *ptr++) - { - case '\\': *ptr2++ = '\\'; break; - case '\"': *ptr2++ = '\"'; break; - case '\b': *ptr2++ = 'b'; break; - case '\f': *ptr2++ = 'f'; break; - case '\n': *ptr2++ = 'n'; break; - case '\r': *ptr2++ = 'r'; break; - case '\t': *ptr2++ = 't'; break; - default: sprintf(ptr2, "u%04x", token); ptr2 += 5; break; /* escape and print */ - } - } - } - *ptr2++ = '\"'; *ptr2++ = 0; - return out; -} -/* Invote print_string_ptr (which is useful) on an item. */ -static char *print_string(cJSON *item, printbuffer *p) { return print_string_ptr(item->valuestring, p); } - -/* Predeclare these prototypes. */ -static const char *parse_value(cJSON *item, const char *value, const char **ep); -static char *print_value(cJSON *item, int depth, int fmt, printbuffer *p); -static const char *parse_array(cJSON *item, const char *value, const char **ep); -static char *print_array(cJSON *item, int depth, int fmt, printbuffer *p); -static const char *parse_object(cJSON *item, const char *value, const char **ep); -static char *print_object(cJSON *item, int depth, int fmt, printbuffer *p); - -/* Utility to jump whitespace and cr/lf */ -static const char *skip(const char *in) { while (in && *in && (unsigned char)*in <= 32) in++; return in; } - -/* Parse an object - create a new root, and populate. */ -cJSON *cJSON_ParseWithOpts(const char *value, const char **return_parse_end, int require_null_terminated) -{ - const char *end = 0, **ep = return_parse_end ? return_parse_end : &global_ep; - cJSON *c = cJSON_New_Item(); - *ep = 0; - if (!c) return 0; /* memory fail */ - - end = parse_value(c, skip(value), ep); - if (!end) { cJSON_Delete(c); return 0; } /* parse failure. ep is set. */ - - /* if we require null-terminated JSON without appended garbage, skip and then check for a null terminator */ - if (require_null_terminated) { end = skip(end); if (*end) { cJSON_Delete(c); *ep = end; return 0; } } - if (return_parse_end) *return_parse_end = end; - return c; -} -/* Default options for cJSON_Parse */ -cJSON *cJSON_Parse(const char *value) { return cJSON_ParseWithOpts(value, 0, 0); } - -/* Render a cJSON item/entity/structure to text. */ -char *cJSON_Print(cJSON *item) { return print_value(item, 0, 1, 0); } -char *cJSON_PrintUnformatted(cJSON *item) { return print_value(item, 0, 0, 0); } - -char *cJSON_PrintBuffered(cJSON *item, int prebuffer, int fmt) -{ - printbuffer p; - p.buffer = (char*)cJSON_malloc(prebuffer); - p.length = prebuffer; - p.offset = 0; - return print_value(item, 0, fmt, &p); -} - - -/* Parser core - when encountering text, process appropriately. */ -static const char *parse_value(cJSON *item, const char *value, const char **ep) -{ - if (!value) return 0; /* Fail on null. */ - if (!strncmp(value, "null", 4)) { item->type = cJSON_NULL; return value + 4; } - if (!strncmp(value, "false", 5)) { item->type = cJSON_False; return value + 5; } - if (!strncmp(value, "true", 4)) { item->type = cJSON_True; item->valueint = 1; return value + 4; } - if (*value == '\"') { return parse_string(item, value, ep); } - if (*value == '-' || (*value >= '0' && *value <= '9')) { return parse_number(item, value); } - if (*value == '[') { return parse_array(item, value, ep); } - if (*value == '{') { return parse_object(item, value, ep); } - - *ep = value; return 0; /* failure. */ -} - -/* Render a value to text. */ -static char *print_value(cJSON *item, int depth, int fmt, printbuffer *p) -{ - char *out = 0; - if (!item) return 0; - if (p) - { - switch ((item->type) & 255) - { - case cJSON_NULL: {out = ensure(p, 5); if (out) strcpy(out, "null"); break; } - case cJSON_False: {out = ensure(p, 6); if (out) strcpy(out, "false"); break; } - case cJSON_True: {out = ensure(p, 5); if (out) strcpy(out, "true"); break; } - case cJSON_Number: out = print_number(item, p); break; - case cJSON_String: out = print_string(item, p); break; - case cJSON_Array: out = print_array(item, depth, fmt, p); break; - case cJSON_Object: out = print_object(item, depth, fmt, p); break; - } - } - else - { - switch ((item->type) & 255) - { - case cJSON_NULL: out = cJSON_strdup("null"); break; - case cJSON_False: out = cJSON_strdup("false"); break; - case cJSON_True: out = cJSON_strdup("true"); break; - case cJSON_Number: out = print_number(item, 0); break; - case cJSON_String: out = print_string(item, 0); break; - case cJSON_Array: out = print_array(item, depth, fmt, 0); break; - case cJSON_Object: out = print_object(item, depth, fmt, 0); break; - } - } - return out; -} - -/* Build an array from input text. */ -static const char *parse_array(cJSON *item, const char *value, const char **ep) -{ - cJSON *child; - if (*value != '[') { *ep = value; return 0; } /* not an array! */ - - item->type = cJSON_Array; - value = skip(value + 1); - if (*value == ']') return value + 1; /* empty array. */ - - item->child = child = cJSON_New_Item(); - if (!item->child) return 0; /* memory fail */ - value = skip(parse_value(child, skip(value), ep)); /* skip any spacing, get the value. */ - if (!value) return 0; - - while (*value == ',') - { - cJSON *new_item; - if (!(new_item = cJSON_New_Item())) return 0; /* memory fail */ - child->next = new_item; new_item->prev = child; child = new_item; - value = skip(parse_value(child, skip(value + 1), ep)); - if (!value) return 0; /* memory fail */ - } - - if (*value == ']') return value + 1; /* end of array */ - *ep = value; return 0; /* malformed. */ -} - -/* Render an array to text */ -static char *print_array(cJSON *item, int depth, int fmt, printbuffer *p) -{ - char **entries; - char *out = 0, *ptr, *ret; int len = 5; - cJSON *child = item->child; - int numentries = 0, i = 0, fail = 0; - size_t tmplen = 0; - - /* How many entries in the array? */ - while (child) numentries++, child = child->next; - /* Explicitly handle numentries==0 */ - if (!numentries) - { - if (p) out = ensure(p, 3); - else out = (char*)cJSON_malloc(3); - if (out) strcpy(out, "[]"); - return out; - } - - if (p) - { - /* Compose the output array. */ - i = p->offset; - ptr = ensure(p, 1); if (!ptr) return 0; *ptr = '['; p->offset++; - child = item->child; - while (child && !fail) - { - print_value(child, depth + 1, fmt, p); - p->offset = update(p); - if (child->next) { len = fmt ? 2 : 1; ptr = ensure(p, len + 1); if (!ptr) return 0; *ptr++ = ','; if (fmt)*ptr++ = ' '; *ptr = 0; p->offset += len; } - child = child->next; - } - ptr = ensure(p, 2); if (!ptr) return 0; *ptr++ = ']'; *ptr = 0; - out = (p->buffer) + i; - } - else - { - /* Allocate an array to hold the values for each */ - entries = (char**)cJSON_malloc(numentries * sizeof(char*)); - if (!entries) return 0; - memset(entries, 0, numentries * sizeof(char*)); - /* Retrieve all the results: */ - child = item->child; - while (child && !fail) - { - ret = print_value(child, depth + 1, fmt, 0); - entries[i++] = ret; - if (ret) len += strlen(ret) + 2 + (fmt ? 1 : 0); else fail = 1; - child = child->next; - } - - /* If we didn't fail, try to malloc the output string */ - if (!fail) out = (char*)cJSON_malloc(len); - /* If that fails, we fail. */ - if (!out) fail = 1; - - /* Handle failure. */ - if (fail) - { - for (i = 0; i<numentries; i++) if (entries[i]) cJSON_free(entries[i]); - cJSON_free(entries); - return 0; - } - - /* Compose the output array. */ - *out = '['; - ptr = out + 1; *ptr = 0; - for (i = 0; i<numentries; i++) - { - tmplen = strlen(entries[i]); memcpy(ptr, entries[i], tmplen); ptr += tmplen; - if (i != numentries - 1) { *ptr++ = ','; if (fmt)*ptr++ = ' '; *ptr = 0; } - cJSON_free(entries[i]); - } - cJSON_free(entries); - *ptr++ = ']'; *ptr++ = 0; - } - return out; -} - -/* Build an object from the text. */ -static const char *parse_object(cJSON *item, const char *value, const char **ep) -{ - cJSON *child; - if (*value != '{') { *ep = value; return 0; } /* not an object! */ - - item->type = cJSON_Object; - value = skip(value + 1); - if (*value == '}') return value + 1; /* empty array. */ - - item->child = child = cJSON_New_Item(); - if (!item->child) return 0; - value = skip(parse_string(child, skip(value), ep)); - if (!value) return 0; - child->string = child->valuestring; child->valuestring = 0; - if (*value != ':') { *ep = value; return 0; } /* fail! */ - value = skip(parse_value(child, skip(value + 1), ep)); /* skip any spacing, get the value. */ - if (!value) return 0; - - while (*value == ',') - { - cJSON *new_item; - if (!(new_item = cJSON_New_Item())) return 0; /* memory fail */ - child->next = new_item; new_item->prev = child; child = new_item; - value = skip(parse_string(child, skip(value + 1), ep)); - if (!value) return 0; - child->string = child->valuestring; child->valuestring = 0; - if (*value != ':') { *ep = value; return 0; } /* fail! */ - value = skip(parse_value(child, skip(value + 1), ep)); /* skip any spacing, get the value. */ - if (!value) return 0; - } - - if (*value == '}') return value + 1; /* end of array */ - *ep = value; return 0; /* malformed. */ -} - -/* Render an object to text. */ -static char *print_object(cJSON *item, int depth, int fmt, printbuffer *p) -{ - char **entries = 0, **names = 0; - char *out = 0, *ptr, *ret, *str; int len = 7, i = 0, j; - cJSON *child = item->child; - int numentries = 0, fail = 0; - size_t tmplen = 0; - /* Count the number of entries. */ - while (child) numentries++, child = child->next; - /* Explicitly handle empty object case */ - if (!numentries) - { - if (p) out = ensure(p, fmt ? depth + 4 : 3); - else out = (char*)cJSON_malloc(fmt ? depth + 4 : 3); - if (!out) return 0; - ptr = out; *ptr++ = '{'; - if (fmt) { *ptr++ = '\n'; for (i = 0; i<depth; i++) *ptr++ = '\t'; } - *ptr++ = '}'; *ptr++ = 0; - return out; - } - if (p) - { - /* Compose the output: */ - i = p->offset; - len = fmt ? 2 : 1; ptr = ensure(p, len + 1); if (!ptr) return 0; - *ptr++ = '{'; if (fmt) *ptr++ = '\n'; *ptr = 0; p->offset += len; - child = item->child; depth++; - while (child) - { - if (fmt) - { - ptr = ensure(p, depth); if (!ptr) return 0; - for (j = 0; j<depth; j++) *ptr++ = '\t'; - p->offset += depth; - } - print_string_ptr(child->string, p); - p->offset = update(p); - - len = fmt ? 2 : 1; - ptr = ensure(p, len); if (!ptr) return 0; - *ptr++ = ':'; if (fmt) *ptr++ = '\t'; - p->offset += len; - - print_value(child, depth, fmt, p); - p->offset = update(p); - - len = (fmt ? 1 : 0) + (child->next ? 1 : 0); - ptr = ensure(p, len + 1); if (!ptr) return 0; - if (child->next) *ptr++ = ','; - if (fmt) *ptr++ = '\n'; *ptr = 0; - p->offset += len; - child = child->next; - } - ptr = ensure(p, fmt ? (depth + 1) : 2); if (!ptr) return 0; - if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t'; - *ptr++ = '}'; *ptr = 0; - out = (p->buffer) + i; - } - else - { - /* Allocate space for the names and the objects */ - entries = (char**)cJSON_malloc(numentries * sizeof(char*)); - if (!entries) return 0; - names = (char**)cJSON_malloc(numentries * sizeof(char*)); - if (!names) { cJSON_free(entries); return 0; } - memset(entries, 0, sizeof(char*)*numentries); - memset(names, 0, sizeof(char*)*numentries); - - /* Collect all the results into our arrays: */ - child = item->child; depth++; if (fmt) len += depth; - while (child && !fail) - { - names[i] = str = print_string_ptr(child->string, 0); - entries[i++] = ret = print_value(child, depth, fmt, 0); - if (str && ret) len += strlen(ret) + strlen(str) + 2 + (fmt ? 2 + depth : 0); else fail = 1; - child = child->next; - } - - /* Try to allocate the output string */ - if (!fail) out = (char*)cJSON_malloc(len); - if (!out) fail = 1; - - /* Handle failure */ - if (fail) - { - for (i = 0; i<numentries; i++) { if (names[i]) cJSON_free(names[i]); if (entries[i]) cJSON_free(entries[i]); } - cJSON_free(names); cJSON_free(entries); - return 0; - } - - /* Compose the output: */ - *out = '{'; ptr = out + 1; if (fmt)*ptr++ = '\n'; *ptr = 0; - for (i = 0; i<numentries; i++) - { - if (fmt) for (j = 0; j<depth; j++) *ptr++ = '\t'; - tmplen = strlen(names[i]); memcpy(ptr, names[i], tmplen); ptr += tmplen; - *ptr++ = ':'; if (fmt) *ptr++ = '\t'; - strcpy(ptr, entries[i]); ptr += strlen(entries[i]); - if (i != numentries - 1) *ptr++ = ','; - if (fmt) *ptr++ = '\n'; *ptr = 0; - cJSON_free(names[i]); cJSON_free(entries[i]); - } - - cJSON_free(names); cJSON_free(entries); - if (fmt) for (i = 0; i<depth - 1; i++) *ptr++ = '\t'; - *ptr++ = '}'; *ptr++ = 0; - } - return out; -} - -/* Get Array size/item / object item. */ -int cJSON_GetArraySize(cJSON *array) { cJSON *c = array->child; int i = 0; while (c)i++, c = c->next; return i; } -cJSON *cJSON_GetArrayItem(cJSON *array, int item) { cJSON *c = array ? array->child : 0; while (c && item>0) item--, c = c->next; return c; } -cJSON *cJSON_GetObjectItem(cJSON *object, const char *string) { cJSON *c = object ? object->child : 0; while (c && cJSON_strcasecmp(c->string, string)) c = c->next; return c; } -int cJSON_HasObjectItem(cJSON *object, const char *string) { return cJSON_GetObjectItem(object, string) ? 1 : 0; } - -/* Utility for array list handling. */ -static void suffix_object(cJSON *prev, cJSON *item) { prev->next = item; item->prev = prev; } -/* Utility for handling references. */ -static cJSON *create_reference(cJSON *item) { cJSON *ref = cJSON_New_Item(); if (!ref) return 0; memcpy(ref, item, sizeof(cJSON)); ref->string = 0; ref->type |= cJSON_IsReference; ref->next = ref->prev = 0; return ref; } - -/* Add item to array/object. */ -void cJSON_AddItemToArray(cJSON *array, cJSON *item) { cJSON *c = array->child; if (!item) return; if (!c) { array->child = item; } else { while (c && c->next) c = c->next; suffix_object(c, item); } } -void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item) { if (!item) return; if (item->string) cJSON_free(item->string); item->string = cJSON_strdup(string); cJSON_AddItemToArray(object, item); } -void cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item) { if (!item) return; if (!(item->type&cJSON_StringIsConst) && item->string) cJSON_free(item->string); item->string = (char*)string; item->type |= cJSON_StringIsConst; cJSON_AddItemToArray(object, item); } -void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item) { cJSON_AddItemToArray(array, create_reference(item)); } -void cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item) { cJSON_AddItemToObject(object, string, create_reference(item)); } - -cJSON *cJSON_DetachItemFromArray(cJSON *array, int which) { - cJSON *c = array->child; while (c && which>0) c = c->next, which--; if (!c) return 0; - if (c->prev) c->prev->next = c->next; if (c->next) c->next->prev = c->prev; if (c == array->child) array->child = c->next; c->prev = c->next = 0; return c; -} -void cJSON_DeleteItemFromArray(cJSON *array, int which) { cJSON_Delete(cJSON_DetachItemFromArray(array, which)); } -cJSON *cJSON_DetachItemFromObject(cJSON *object, const char *string) { int i = 0; cJSON *c = object->child; while (c && cJSON_strcasecmp(c->string, string)) i++, c = c->next; if (c) return cJSON_DetachItemFromArray(object, i); return 0; } -void cJSON_DeleteItemFromObject(cJSON *object, const char *string) { cJSON_Delete(cJSON_DetachItemFromObject(object, string)); } - -/* Replace array/object items with new ones. */ -void cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem) { - cJSON *c = array->child; while (c && which>0) c = c->next, which--; if (!c) { cJSON_AddItemToArray(array, newitem); return; } - newitem->next = c; newitem->prev = c->prev; c->prev = newitem; if (c == array->child) array->child = newitem; else newitem->prev->next = newitem; -} -void cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem) { - cJSON *c = array->child; while (c && which>0) c = c->next, which--; if (!c) return; - newitem->next = c->next; newitem->prev = c->prev; if (newitem->next) newitem->next->prev = newitem; - if (c == array->child) array->child = newitem; else newitem->prev->next = newitem; c->next = c->prev = 0; cJSON_Delete(c); -} -void cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *newitem) { int i = 0; cJSON *c = object->child; while (c && cJSON_strcasecmp(c->string, string))i++, c = c->next; if (c) { newitem->string = cJSON_strdup(string); cJSON_ReplaceItemInArray(object, i, newitem); } } - -/* Create basic types: */ -cJSON *cJSON_CreateNull(void) { cJSON *item = cJSON_New_Item(); if (item)item->type = cJSON_NULL; return item; } -cJSON *cJSON_CreateTrue(void) { cJSON *item = cJSON_New_Item(); if (item)item->type = cJSON_True; return item; } -cJSON *cJSON_CreateFalse(void) { cJSON *item = cJSON_New_Item(); if (item)item->type = cJSON_False; return item; } -cJSON *cJSON_CreateBool(int b) { cJSON *item = cJSON_New_Item(); if (item)item->type = b ? cJSON_True : cJSON_False; return item; } -cJSON *cJSON_CreateNumber(double num) { cJSON *item = cJSON_New_Item(); if (item) { item->type = cJSON_Number; item->valuedouble = num; item->valueint = (int)num; }return item; } -cJSON *cJSON_CreateString(const char *string) { cJSON *item = cJSON_New_Item(); if (item) { item->type = cJSON_String; item->valuestring = cJSON_strdup(string); if (!item->valuestring) { cJSON_Delete(item); return 0; } }return item; } -cJSON *cJSON_CreateArray(void) { cJSON *item = cJSON_New_Item(); if (item)item->type = cJSON_Array; return item; } -cJSON *cJSON_CreateObject(void) { cJSON *item = cJSON_New_Item(); if (item)item->type = cJSON_Object; return item; } - -/* Create Arrays: */ -cJSON *cJSON_CreateIntArray(const int *numbers, int count) { int i; cJSON *n = 0, *p = 0, *a = cJSON_CreateArray(); for (i = 0; a && i<count; i++) { n = cJSON_CreateNumber(numbers[i]); if (!n) { cJSON_Delete(a); return 0; }if (!i)a->child = n; else suffix_object(p, n); p = n; }return a; } -cJSON *cJSON_CreateFloatArray(const float *numbers, int count) { int i; cJSON *n = 0, *p = 0, *a = cJSON_CreateArray(); for (i = 0; a && i<count; i++) { n = cJSON_CreateNumber(numbers[i]); if (!n) { cJSON_Delete(a); return 0; }if (!i)a->child = n; else suffix_object(p, n); p = n; }return a; } -cJSON *cJSON_CreateDoubleArray(const double *numbers, int count) { int i; cJSON *n = 0, *p = 0, *a = cJSON_CreateArray(); for (i = 0; a && i<count; i++) { n = cJSON_CreateNumber(numbers[i]); if (!n) { cJSON_Delete(a); return 0; }if (!i)a->child = n; else suffix_object(p, n); p = n; }return a; } -cJSON *cJSON_CreateStringArray(const char **strings, int count) { int i; cJSON *n = 0, *p = 0, *a = cJSON_CreateArray(); for (i = 0; a && i<count; i++) { n = cJSON_CreateString(strings[i]); if (!n) { cJSON_Delete(a); return 0; }if (!i)a->child = n; else suffix_object(p, n); p = n; }return a; } - -/* Duplication */ -cJSON *cJSON_Duplicate(cJSON *item, int recurse) -{ - cJSON *newitem, *cptr, *nptr = 0, *newchild; - /* Bail on bad ptr */ - if (!item) return 0; - /* Create new item */ - newitem = cJSON_New_Item(); - if (!newitem) return 0; - /* Copy over all vars */ - newitem->type = item->type&(~cJSON_IsReference), newitem->valueint = item->valueint, newitem->valuedouble = item->valuedouble; - if (item->valuestring) { newitem->valuestring = cJSON_strdup(item->valuestring); if (!newitem->valuestring) { cJSON_Delete(newitem); return 0; } } - if (item->string) { newitem->string = cJSON_strdup(item->string); if (!newitem->string) { cJSON_Delete(newitem); return 0; } } - /* If non-recursive, then we're done! */ - if (!recurse) return newitem; - /* Walk the ->next chain for the child. */ - cptr = item->child; - while (cptr) - { - newchild = cJSON_Duplicate(cptr, 1); /* Duplicate (with recurse) each item in the ->next chain */ - if (!newchild) { cJSON_Delete(newitem); return 0; } - if (nptr) { nptr->next = newchild, newchild->prev = nptr; nptr = newchild; } /* If newitem->child already set, then crosswire ->prev and ->next and move on */ - else { newitem->child = newchild; nptr = newchild; } /* Set newitem->child and move to it */ - cptr = cptr->next; - } - return newitem; -} - -void cJSON_Minify(char *json) -{ - char *into = json; - while (*json) - { - if (*json == ' ') json++; - else if (*json == '\t') json++; /* Whitespace characters. */ - else if (*json == '\r') json++; - else if (*json == '\n') json++; - else if (*json == '/' && json[1] == '/') while (*json && *json != '\n') json++; /* double-slash comments, to end of line. */ - else if (*json == '/' && json[1] == '*') { while (*json && !(*json == '*' && json[1] == '/')) json++; json += 2; } /* multiline comments. */ - else if (*json == '\"') { *into++ = *json++; while (*json && *json != '\"') { if (*json == '\\') *into++ = *json++; *into++ = *json++; }*into++ = *json++; } /* string literals, which are \" sensitive. */ - else *into++ = *json++; /* All other characters. */ - } - *into = 0; /* and null-terminate. */ -}- \ No newline at end of file diff --git a/.svn/pristine/13/130ee6614e0806f528d646e8eeadff68a408f39b.svn-base b/.svn/pristine/13/130ee6614e0806f528d646e8eeadff68a408f39b.svn-base Binary files differ. diff --git a/.svn/pristine/13/1374727540ad8f0a6c8898efedd33ded926ccc4c.svn-base b/.svn/pristine/13/1374727540ad8f0a6c8898efedd33ded926ccc4c.svn-base Binary files differ. diff --git a/.svn/pristine/13/138686a7943b7d768ec6f6540fc37d5d7a3a36ed.svn-base b/.svn/pristine/13/138686a7943b7d768ec6f6540fc37d5d7a3a36ed.svn-base @@ -1,710 +0,0 @@ -#ifndef ACTOR_H -#define ACTOR_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "AnimationGraph.h" -#include "Physics.h" -#include "Terrain.h" -//#include "ActorHandle.h" - -//Actor State Defines -//#define IDLE 10 -//#define RUN 20 -//#define IDLE_BEGIN 30 -//#define JUMP 40 -//#define WANDER 50 -//#define PURSUE 60 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 -// - -struct Trajectory -{ - float slope; - int dir; -}; - -class ActorHandleManager; -class SpatialMonitor; - -//consider making a lower level class for objects that have position and animate but don't interact with environment or other objects - -class Actor : public EventReceiver -{ -public: - - Actor() : mOpacity(255) {} - - Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - virtual bool UpdateAnimation() = 0; - - virtual bool ActorUpdate() = 0; - - int GetX() - { - return mPosData.x; - } - - int GetY() - { - return mPosData.y; - } - - int GetHeight() - { - return mPosData.h; - } - - int GetWidth() - { - return mPosData.w; - } - - int GetDrawX() - { - return mDrawPos.x; - } - - int GetDrawY() - { - return mDrawPos.y; - } - - int GetDrawHeight() - { - return mDrawPos.h; - } - - int GetDrawWidth() - { - return mDrawPos.w; - } - - SDL_Rect* GetPosition() - { - return &mPosData; - } - - SDL_Rect* GetDrawPosition() - { - return &mDrawPos; - } - - SDL_Rect CalcDrawRect() - { - if (mDir == RIGHT) - { - mDrawPos.x = mOff_x; - } - else //mDir = LEFT - { - mDrawPos.x = -(mDrawPos.w + (mOff_x - mPosData.w) ); - } - return mDrawPos; - } - - int GetOpacity() - { - return mOpacity; - } - - int SetOpacity(int i) - { - return mOpacity = i; - } - - Frame* GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - - BinaryTree* GetHats() - { - return &mHats; - } - - int AttachHat(Actor* hat) - { - mHats.Insert(hat->GetHandle(), hat); - return hat->GetHandle(); - } - - int SetHandle(int i) - { - return mHandle = i; - } - - int GetHandle() - { - return mHandle; - } - - int SetSpatCell(int i) - { - return mSpatCell = i; - } - - int GetSpatCell () - { - return mSpatCell; - } - - AnimGraph* GetAnimGraph() - { - return mAnimGraph; - } - - void PassAnimGraphState() - { - mAnimGraph->GiveActorState(&mAnimID); - } - - int GetAnimID() - { - return mAnimID; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool IsBlocking() - { - return mBlocking; - } - - EventFeed mFeed; - -protected: - - AnimGraph* mAnimGraph; - Frame* mFrame; - int mOpacity; - - int mState; - int mDir; - int mAnimID; - - SDL_Rect mPosData; //Where the actors collision box is - SDL_Rect mDrawPos; //Where the actor is drawn relative to its physical position (mPosData) - - int mOff_x; - int mOff_y; - - BinaryTree mHats; - - ActorHandleManager* mAHM; - int mHandle; - - SpatialMonitor* mSpat; //SpatialMonitor deals with actor collision and other region checking (like LoS) - int mSpatCell; - - EventReceiver* mParticleLib; //Deals with the spawning of particles - - EventReceiver* mSoundLib; //Deals with sounds and the spawning of point sounds - int mSoundChannel; //used to play sounds directly from the actor - - bool mBlocking; //determines if an actor blocks other actors from passing through it -}; - -class Winch : public Actor -{ -public: - Winch(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, Actor* gate, int dir) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mGate(gate) - { - mState = IDLE; - mDir = dir; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mGate; -}; - -class Blocker : public Actor -{ -public: - Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Test_Blocker : public Blocker -{ -public: - Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Gate : public Blocker -{ -public: - Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir = RIGHT); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Interactable : public Actor -{ -public: - - Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Talker : public Interactable -{ -public: - Talker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mStr(str) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - char* mStr; -}; - -class Gateman : public Talker -{ -public: - - //Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, EventReceiver* gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGate(gate) - Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) - { - mLOS = Pos; - mLOS.w = 250; - mLOS.x = mLOS.x - 125 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mLOS; - - int mGateH; //handle for paired gate - - bool mTalked; -}; - -class Door : public Interactable -{ -public: - - Door(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int x_off, int y_off) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTele_Pos = mPosData; - mTele_Pos.x += x_off; - mTele_Pos.y += y_off; - } - - SDL_Rect* GetTelePos() - { - return &mTele_Pos; - } - - void SetTeleDest(SDL_Rect* dest) - { - mTele_Dest = dest; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mTele_Pos; - SDL_Rect* mTele_Dest; -}; - -class Mobile : public Actor -{ -public: - - Mobile() : mXspd(0), mYspd(0) {} - - Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - void SetPosition(SDL_Rect* Dest); - - bool ModifyActorPosition(int x, int y); - - SDL_Rect MoveActor(int xspd, int yspd); - - int MoveActorDirect(float xspd, float yspd); - -protected: - float mXspd; - float mYspd; - int mXmove; - int mYmove; -}; - -class Hat : public Mobile -{ -public: - Hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mTarget(tar), Mobile(AnimData, *tar->GetPosition(), *tar->GetDrawPosition(), AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool IsEnabled() - { - return mEnabled; - } - - void ToggleHat(bool state) - { - mEnabled = state; - } - - bool EventProcess(Event eve) - { - return true; - } - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - bool mEnabled; -}; - -class bad_hat : public Hat -{ -public: - - bad_hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - } - - bool UpdateAnimation() - { - switch (mState) - { - case RUN: - default: - mAnimID = IDLE; - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class sword : public Hat -{ -public: - - sword(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool UpdateAnimation() - { - mAnimID = mTarget->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class Character : public Mobile -{ -public: - - Character() {} - - Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool DetectFalling(); - - bool UpdatePhysics(); - - bool UpdateFireables(); - - Trajectory GetTrajectory(SDL_Rect Dest, SDL_Rect Init); - - SDL_Rect RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount = 0); - - bool HandleDirectionalCollisions(SDL_Rect& Destination); - - bool UpdatePosition(); - - TerrainCollisionManager* getColMan() - { - return &mColMan; - } - -protected: - - SDL_Rect mDestData; - colman_Character mColMan; - PhysicsManager mPhysMan; -}; - -class Player : public Character -{ -public: - Player() {} - - Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - - int* GetHP() - { - return &mHP; - } - - int* GetMaxHP() - { - return &mHPmax; - } - - void SetSword(int index) - { - mHatIndex_Sword = index; - } - -protected: - -// bool mTalking; - int mTalkerID; - - bool mWielded; - int mHatIndex_Sword; - - int mHP; - int mHPmax; - - int mRecover; //Timer to force recovery pause between jumps - - SDL_Rect mTouch; //Rect that deterimes what can be interacted with -}; - -class Sludge_Seal : public Character -{ -public: - - Sludge_Seal(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mState = IDLE; - - mTarget = -1; - - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - - mHPmax = 3; - mHP = mHPmax; - - mDamage = 1; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mTarget; - int mRestTimer; - SDL_Rect mLOS; - - int mHP; - int mHPmax; - int mDamage; -}; - -class Loyal_Bug : public Character -{ -public: - Loyal_Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mMounted(false), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - bool mMounted; -}; - -class Bug : public Character -{ -public: - Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - -protected: - - int mTimer; - -}; - -class Wanderer : public Character -{ -public: - - Wanderer() : mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) {} - - Wanderer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWanderTimer(0), mWanderLimit(0), mWaitTimer(0), mWaitLimit(0) - { - } - - bool Wander(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -class Pursuer : public Character -{ -public: - Pursuer() {} - - Pursuer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mRestTimer(0) - { - mState = IDLE; - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - int mRestTimer; - SDL_Rect mLOS; -}; - -class Rabbit : public Character -{ -public: - Rabbit() {} - - Rabbit(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) - { - } - - bool Hop(); - - bool Wander(); - - bool Behave(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/13/13a943ba4d572ff711ce98221537d83f52c0c850.svn-base b/.svn/pristine/13/13a943ba4d572ff711ce98221537d83f52c0c850.svn-base Binary files differ. diff --git a/.svn/pristine/13/13ad73c15c09e4c23dc70c171064775a2785dd26.svn-base b/.svn/pristine/13/13ad73c15c09e4c23dc70c171064775a2785dd26.svn-base Binary files differ. diff --git a/.svn/pristine/13/13b4bf9b05d448c37167ca6a2e8709ac04b8c755.svn-base b/.svn/pristine/13/13b4bf9b05d448c37167ca6a2e8709ac04b8c755.svn-base Binary files differ. diff --git a/.svn/pristine/14/14479d04c947fcab2e8af8ba1ebaac3790d830e6.svn-base b/.svn/pristine/14/14479d04c947fcab2e8af8ba1ebaac3790d830e6.svn-base Binary files differ. diff --git a/.svn/pristine/15/1530f66818ab1ac3a395651c6a50083797ea7e91.svn-base b/.svn/pristine/15/1530f66818ab1ac3a395651c6a50083797ea7e91.svn-base @@ -1,171 +0,0 @@ -#include "Particle.h" -#include "Emitter.h" - -//Manager Functions -bool ParticleManager::SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata) -{ - ParticleData* pd = GetParticleData(name); - - SDL_Rect pos; - pos.h = pd->Height; - pos.w = pd->Width; - pos.x = x; - pos.y = y; - - if (!strcmp(type, "P_static")) - { - Particle* prt = new P_static(pd->AnimData, pos, int(mParticles.size()), NULL, pd->spat); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else if (!strcmp(type, "P_drift")) - { - Particle* prt = new P_drift(pd->AnimData, pos, int(mParticles.size()), NULL, pd->spat, ptdata.drift); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else - { - gCons->ConsPrintf("Unrecognized particle type\n"); - } - - return true; -} - -bool ParticleManager::ClearParticle(Particle* prt) -{ - mParticles.erase(mParticles.begin() + prt->GetID()); - for (int i = 0; i < (int)(mParticles.size()); i++) - { - mParticles.at(i)->setID(i); - } - - return false; -} - -bool ParticleManager::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case EMIT_PARTICLE: - { - Emitter* emit = (Emitter*)eve.GetEventData()->p; - SpawnParticle(emit->GetType(), emit->GetName(), emit->GetX(), emit->GetY(), emit->GetData()); - return true; - break; - } - case CREATE_PARTICLE: - SpawnParticle(eve.GetEventData()->psd.type, eve.GetEventData()->psd.name, eve.GetEventData()->psd.x, eve.GetEventData()->psd.y); - return true; - break; - case DEATH: - ClearParticle((Particle*)eve.GetEventData()->p); - particlesKilled += 1; - //gCons->ConsPrintf("Particles killed: %i\n", particlesKilled); - return true; - break; - default: - gCons->ConsPrintf("Particle Manager Received Unrecognized Event\n"); - return false; - break; - } -} - -//Particle Functions -Particle::Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, EventReceiver* spat) : Mobile(AnimData, Pos, Pos, AHM, spat, NULL, NULL) //Could enable particles to play sounds by replacing second null; worth considering -{ - mAnimGraph->GetAnimPack()->GetAnimation(PARTICLE)->mFeed.Subscribe(this); - mDrawPos.x = 0; - mDrawPos.y = 0; - mState = ALIVE; - mDir = 0; - mID = ID; -} - -//P_Static -bool P_static::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_static::UpdateAnimation() -{ - return false; -} - -bool P_static::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// - -//P_drift -P_drift::P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, EventReceiver* spat, drift_data data) : Particle(AnimData, Pos, ID, AHM, spat), mData(data) -{ -} - -bool P_drift::Drift() -{ - return true; -} - -bool P_drift::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_drift::UpdateAnimation() -{ - return false; -} - -bool P_drift::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - Drift(); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// diff --git a/.svn/pristine/15/15a3e3b72c1c8ebe3c1faf763fd9a61f08c91a71.svn-base b/.svn/pristine/15/15a3e3b72c1c8ebe3c1faf763fd9a61f08c91a71.svn-base @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS></DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/16/16040557145380efb4496acdc8575f8e0b9eebea.svn-base b/.svn/pristine/16/16040557145380efb4496acdc8575f8e0b9eebea.svn-base Binary files differ. diff --git a/.svn/pristine/16/165a3be5da949e52fea6a125c7dd685bc9dbed77.svn-base b/.svn/pristine/16/165a3be5da949e52fea6a125c7dd685bc9dbed77.svn-base Binary files differ. diff --git a/.svn/pristine/16/166c34c7a6f9af980d6a2dcca21b35b804804a28.svn-base b/.svn/pristine/16/166c34c7a6f9af980d6a2dcca21b35b804804a28.svn-base @@ -1,97 +0,0 @@ -#ifndef LEVEL_H -#define LEVEL_H - -#include "Utils.h" -#include "Console.h" -#include "Context.h" - -#include "Actor.h" -#include "ActorCollision.h" -#include "Particle.h" -#include "Camera.h" -#include "Event.h" -#include "Input.h" -#include "symbol.h" -#include "MiscDraw.h" -#include "sound.h" -#include "HUD.h" -#include "Dialogue.h" - -struct ActorName -{ - char* name; - Actor* act; -}; - -Actor* FindRef(std::vector<ActorName*> refs, char* name); - -class Level : public Context, public EventReceiver -{ -public: - - Level() {} - - Level(SDL_Renderer* ren, Control* ctrl) - { - mRen = ren; - mInput = ctrl; - } - - bool LoadWorld(cJSON* level); - - bool LoadCamera(cJSON* level); - - bool LoadAnimations(cJSON* level); - - bool LoadAnimGraph(cJSON* anim_pack); - - bool LoadActors(cJSON* level); - - bool LoadParticles(cJSON* level); - - bool LoadSounds(cJSON* level); - - bool LoadHud(cJSON* level); - - bool Load(const char* filename); - - bool Update(); - - bool EventProcess(Event eve); - - ActorHandleManager mAHM; - SpatialMonitor mSpatMon; - Control* mInput; - ParticleManager mPrtLib; - SoundManager mSoundLib; - - - int mHeight; - int mWidth; - Camera mCam; - - SDL_Surface* mColMap; - - std::vector<AnimDataPack*> mAnimData; - std::vector<AnimGraphData*> mAnimGraphs; - - std::vector<Actor*> mCast; //does this do anything? - - std::vector<SDL_Texture*> mBack; - std::vector<float> mParallax_back; - - std::vector<SDL_Texture*> mFore; - - std::vector<SDL_Texture*> mOver; - std::vector<float> mParallax_over; - - HUD mHUD; - -protected: - - char** mAnim_names; - Player* mPlayer; - -}; - -#endif diff --git a/.svn/pristine/17/17b5b87406d610bc71c61ae520fc4d980fc016a1.svn-base b/.svn/pristine/17/17b5b87406d610bc71c61ae520fc4d980fc016a1.svn-base Binary files differ. diff --git a/.svn/pristine/17/17ed574cd67886b78b215d46d47768cd7f04328d.svn-base b/.svn/pristine/17/17ed574cd67886b78b215d46d47768cd7f04328d.svn-base Binary files differ. diff --git a/.svn/pristine/18/189798440fb727c9cf9211992b0b2cb216d02307.svn-base b/.svn/pristine/18/189798440fb727c9cf9211992b0b2cb216d02307.svn-base Binary files differ. diff --git a/.svn/pristine/18/18b71ce7b89a672cd5834600cf6476e14a4009df.svn-base b/.svn/pristine/18/18b71ce7b89a672cd5834600cf6476e14a4009df.svn-base @@ -1,100 +0,0 @@ -{ - "loading": - { - "splash" : "Loading.bmp" - }, - - "level": - { - "world": - { - "world_h": 250, - "world_w": 1000, - "terrain" : "scenecolmap.bmp", - "backgrounds" : - [ - {"back" : "desert_hills_expand.bmp", "parallax_factor" : 2, "alpha" : 0} - ], - "foregrounds" : - [ - {"fore" : "scene_fore.bmp", "alpha" : 0} - ], - "overlays" : - [ - {"over" : "scene_waterOverlay.bmp", "parallax_factor" : 1, "alpha" : 175} - ] - }, - - "camera": - { - "h": 225, - "w": 450, - "x": 0, - "y": 0 - }, - - "sounds": - [ - {"filename" : "Dhaka.mp3" , "name" : "dhaka" }, - {"filename" : "splash_sound.wav", "name" : "splash_sound"}, - {"filename" : "footstep.wav" , "name" : "footstep" } - ], - - "animations" : - [ - { - "pack_name" : "splash", - "anim_set": - [ - {"filename" : "splash.bmp", "frame_count" : 5 , "frame_rate" : 25 , "h" : 26, "w" : 72, "id" : "SPLASH" } - ] - }, - { - "pack_name" : "player_pack", - "anim_set": - [ - {"filename" : "player_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "h" : 23, "w" : 14, "id" : "IDLE_BEGIN", "transition" : 1 }, - {"filename" : "player_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "h" : 23, "w" : 14, "id" : "IDLE" , "transition" : 0 }, - {"filename" : "player_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "h" : 23, "w" : 14, "id" : "RUN" , "transition" : 0 } - ] - }, - { - "pack_name" : "red_pack", - "anim_set": - [ - {"filename" : "red_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "h" : 23, "w" : 14, "id" : "IDLE_BEGIN", "transition" : 1 }, - {"filename" : "red_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "h" : 23, "w" : 14, "id" : "IDLE" , "transition" : 0 }, - {"filename" : "red_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "h" : 23, "w" : 14, "id" : "RUN" , "transition" : 0 } - ] - }, - { - "pack_name" : "yella_pack", - "anim_set": - [ - {"filename" : "yella_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "h" : 23, "w" : 14, "id" : "IDLE_BEGIN", "transition" : 1 }, - {"filename" : "yella_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "h" : 23, "w" : 14, "id" : "IDLE" , "transition" : 0 }, - {"filename" : "yella_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "h" : 23, "w" : 14, "id" : "RUN" , "transition" : 0 } - ] - } - ], - - "actors" : - [ - {"type" : "pursuer" , "anim_pack" : "red_pack" , "x" : 180, "y" : 140, "h":23, "w":14}, - {"type" : "wanderer", "anim_pack" : "yella_pack" , "x" : 300, "y" : 140, "h":23, "w":14}, - {"type" : "player" , "anim_pack" : "player_pack", "x" : 0, "y" : 0, "h":23, "w":14} - ], - - "hud_textures" : - { - "life_base" : "life_base.bmp", - "life_bar" : "life_bar.bmp" - }, - - "Particles" : - [ - {"anim_pack" : "splash", "h":3, "w":9} - ] - - } -} diff --git a/.svn/pristine/18/18ed4d4a9457fe2c540c84d1cc19823480ee2c5b.svn-base b/.svn/pristine/18/18ed4d4a9457fe2c540c84d1cc19823480ee2c5b.svn-base Binary files differ. diff --git a/.svn/pristine/19/193541e6c2e59e7835c8de99c66d28cd245b0283.svn-base b/.svn/pristine/19/193541e6c2e59e7835c8de99c66d28cd245b0283.svn-base Binary files differ. diff --git a/.svn/pristine/19/19ba4781b5d7690488d8b573ad84158ac0aba6e7.svn-base b/.svn/pristine/19/19ba4781b5d7690488d8b573ad84158ac0aba6e7.svn-base @@ -1,681 +0,0 @@ -#ifndef ACTOR_H -#define ACTOR_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "AnimationGraph.h" -#include "Physics.h" -#include "Terrain.h" -#include "ActorHandle.h" - -//Actor State Defines -#define IDLE 10 -#define RUN 20 -#define IDLE_BEGIN 30 -#define JUMP 40 -#define WANDER 50 -#define PURSUE 60 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 -// - -struct Trajectory -{ - float slope; - int dir; -}; - -class Actor : public EventReceiver -{ -public: - - Actor() : mOpacity(255) {} - - Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - virtual bool UpdateAnimation() = 0; - - virtual bool ActorUpdate() = 0; - - int GetX() - { - return mPosData.x; - } - - int GetY() - { - return mPosData.y; - } - - int GetHeight() - { - return mPosData.h; - } - - int GetWidth() - { - return mPosData.w; - } - - int GetDrawX() - { - return mDrawPos.x; - } - - int GetDrawY() - { - return mDrawPos.y; - } - - int GetDrawHeight() - { - return mDrawPos.h; - } - - int GetDrawWidth() - { - return mDrawPos.w; - } - - SDL_Rect* GetPosition() - { - return &mPosData; - } - - SDL_Rect* GetDrawPosition() - { - return &mDrawPos; - } - - SDL_Rect CalcDrawRect() - { - if (mDir == RIGHT) - { - mDrawPos.x = mOff_x; - } - else //mDir = LEFT - { - mDrawPos.x = -(mDrawPos.w + (mOff_x - mPosData.w) ); - } - return mDrawPos; - } - - int GetOpacity() - { - return mOpacity; - } - - int SetOpacity(int i) - { - return mOpacity = i; - } - - Frame* GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - - std::vector<Actor*> GetHats() - { - return mHats; - } - - int AttachHat(Actor* hat) - { - mHats.push_back(hat); - return ((int)mHats.size() - 1); - } - - int SetHandle(int i) - { - return mHandle = i; - } - - int GetHandle() - { - return mHandle; - } - - int SetSpatID(int i) - { - return mSpatID = i; - } - - int GetSpatID() - { - return mSpatID; - } - - AnimGraph* GetAnimGraph() - { - return mAnimGraph; - } - - void PassAnimGraphState() - { - mAnimGraph->GiveActorState(&mAnimID); - } - - int GetAnimID() - { - return mAnimID; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool IsBlocking() - { - return mBlocking; - } - - EventFeed mFeed; - -protected: - - AnimGraph* mAnimGraph; - Frame* mFrame; - int mOpacity; - - int mState; - int mDir; - int mAnimID; - - SDL_Rect mPosData; //Where the actors collision box is - SDL_Rect mDrawPos; //Where the actor is drawn relative to its physical position (mPosData) - - int mOff_x; - int mOff_y; - - std::vector<Actor*> mHats; - - ActorHandleManager* mAHM; - int mHandle; - - EventReceiver* mSpat; //SpatialMonitor deals with actor collision and other region checking (like LoS) - int mSpatID; //!This should become the same as mHandle! Used by mSpat to ID this actor - - EventReceiver* mParticleLib; //Deal with the spawning of particles - - EventReceiver* mSoundLib; //Deals with sounds and the spawning or point sounds - int mSoundChannel; //used to play sounds directly from the actor - - bool mBlocking; -}; - -class Winch : public Actor -{ -public: - Winch(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, Actor* gate, int dir) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mGate(gate) - { - mState = IDLE; - mDir = dir; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mGate; -}; - -class Blocker : public Actor -{ -public: - Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Test_Blocker : public Blocker -{ -public: - Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Gate : public Blocker -{ -public: - Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Interactable : public Actor -{ -public: - - Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Talker : public Interactable -{ -public: - Talker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mStr(str) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - char* mStr; -}; - -class Gateman : public Talker -{ -public: - - //Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, EventReceiver* gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGate(gate) - Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) - { - mLOS = Pos; - mLOS.w = 250; - mLOS.x = mLOS.x - 125 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mLOS; - //EventReceiver* mGate; - int mGateH; - - bool mTalked; -}; - -class Door : public Interactable -{ -public: - - Door(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int x_off, int y_off) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTele_Pos = mPosData; - mTele_Pos.x += x_off; - mTele_Pos.y += y_off; - } - - SDL_Rect* GetTelePos() - { - return &mTele_Pos; - } - - void SetTeleDest(SDL_Rect* dest) - { - mTele_Dest = dest; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mTele_Pos; - SDL_Rect* mTele_Dest; -}; - -class Mobile : public Actor -{ -public: - - Mobile() : mXspd(0), mYspd(0) {} - - Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - void SetPosition(SDL_Rect* Dest); - - bool ModifyActorPosition(int x, int y); - - SDL_Rect MoveActor(int xspd, int yspd); - - int MoveActorDirect(float xspd, float yspd); - -protected: - float mXspd; - float mYspd; - int mXmove; - int mYmove; -}; - -class Hat : public Mobile -{ -public: - Hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mTarget(tar), Mobile(AnimData, *tar->GetPosition(), *tar->GetDrawPosition(), AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool IsEnabled() - { - return mEnabled; - } - - void ToggleHat(bool state) - { - mEnabled = state; - } - - bool EventProcess(Event eve) - { - return true; - } - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - bool mEnabled; -}; - -class bad_hat : public Hat -{ -public: - - bad_hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - } - - bool UpdateAnimation() - { - switch (mState) - { - case RUN: - default: - mAnimID = IDLE; - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class sword : public Hat -{ -public: - - sword(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - mEnabled = false; - } - - bool UpdateAnimation() - { - mAnimID = mTarget->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class Character : public Mobile -{ -public: - - Character() {} - - Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool DetectFalling() - { - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mSpatID)) == false)) - { - return true; - } - else - { - return false; - } - } - - bool UpdatePhysics(); - - bool UpdateFireables(); - - Trajectory GetTrajectory(SDL_Rect Dest, SDL_Rect Init); - - SDL_Rect RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount = 0); - - bool HandleDirectionalCollisions(SDL_Rect& Destination); - - bool UpdatePosition(); - - TerrainCollisionManager* getColMan() - { - return &mColMan; - } - -protected: - - SDL_Rect mDestData; - colman_Character mColMan; - PhysicsManager mPhysMan; -}; - -class Player : public Character -{ -public: - Player() {} - - Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalker(NULL), mHP(100), mHPmax(100), mRecover(0), mTouch(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTouch.h = Pos.h; - mTouch.w = 18; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - - int* GetHP() - { - return &mHP; - } - - int* GetMaxHP() - { - return &mHPmax; - } - - void SetSword(int index) - { - mHatIndex_Sword = index; - } - -protected: - -// bool mTalking; - EventReceiver* mTalker; - - bool mWielded; - int mHatIndex_Sword; - - int mHP; - int mHPmax; - - int mRecover; //Timer to force recovery pause between jumps - - SDL_Rect mTouch; //Rect that deterimes what can be interacted with -}; - -class Loyal_Bug : public Character -{ -public: - Loyal_Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mMounted(false), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - bool mMounted; -}; - -class Bug : public Character -{ -public: - Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - -protected: - - int mTimer; - -}; - -class Wanderer : public Character -{ -public: - - Wanderer() : mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) {} - - Wanderer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWanderTimer(0), mWanderLimit(0), mWaitTimer(0), mWaitLimit(0) - { - } - - bool Wander(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -class Pursuer : public Character -{ -public: - Pursuer() {} - - Pursuer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mRestTimer(0) - { - mState = IDLE; - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - int mRestTimer; - SDL_Rect mLOS; -}; - -class Rabbit : public Character -{ -public: - Rabbit() {} - - Rabbit(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) - { - } - - bool Hop(); - - bool Wander(); - - bool Behave(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/1a/1af3b2d67597f5eede4f8f0e7997ce169412fef4.svn-base b/.svn/pristine/1a/1af3b2d67597f5eede4f8f0e7997ce169412fef4.svn-base Binary files differ. diff --git a/.svn/pristine/1b/1b3982b706174f626c8d97b13e7bf67857b8a60d.svn-base b/.svn/pristine/1b/1b3982b706174f626c8d97b13e7bf67857b8a60d.svn-base Binary files differ. diff --git a/.svn/pristine/1b/1b42aa4ad985c136aa696dde9a0138298eea8ac5.svn-base b/.svn/pristine/1b/1b42aa4ad985c136aa696dde9a0138298eea8ac5.svn-base @@ -1,53 +0,0 @@ -#ifndef DIAGNOSTICDRAW_H -#define DIAGNOSTICDRAW_H - -#include "Utils.h" -#include "Console.h" -#include "Camera.h" -//#include "MiscDraw.h" - - -class DiagnosticDraw -{ -public: - - DiagnosticDraw(SDL_Renderer* ren, Camera& cam) : mRen(ren), mCam(cam) {}; - - void LogDiagRect(SDL_Rect rect) - { - mRectQueue.push_back(rect); - } - - void LogPixel(int x, int y) - { - SDL_Rect pix; - pix.h = 1; - pix.w = 1; - pix.x = x; - pix.y = y; - LogDiagRect(pix); - } - - bool Update() - { - for (unsigned int i = 0; i < mRectQueue.size(); i++) - { - DrawRect(mRectQueue.at(i)); - } - mRectQueue.clear(); - return true; - } - - -protected: - - bool DrawRect(SDL_Rect WrldPos); - - std::vector<SDL_Rect> mRectQueue; - Camera& mCam; - SDL_Renderer* mRen; -}; - -extern DiagnosticDraw* gDiagDraw; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/1b/1b8a509362d34fb83e67a4f10a7fafaeb4f0678c.svn-base b/.svn/pristine/1b/1b8a509362d34fb83e67a4f10a7fafaeb4f0678c.svn-base Binary files differ. diff --git a/.svn/pristine/1c/1c128ac875bfbbc9cf97202da57bd5c8e61b39d4.svn-base b/.svn/pristine/1c/1c128ac875bfbbc9cf97202da57bd5c8e61b39d4.svn-base Binary files differ. diff --git a/.svn/pristine/1c/1cc6e236932bba707899b87a0f1851955319c397.svn-base b/.svn/pristine/1c/1cc6e236932bba707899b87a0f1851955319c397.svn-base Binary files differ. diff --git a/.svn/pristine/1c/1cfcbf323bf32cc8e924777b65255e5503118815.svn-base b/.svn/pristine/1c/1cfcbf323bf32cc8e924777b65255e5503118815.svn-base Binary files differ. diff --git a/.svn/pristine/1d/1d846f39fc8d17ea573d74bcdb0714e4121320b7.svn-base b/.svn/pristine/1d/1d846f39fc8d17ea573d74bcdb0714e4121320b7.svn-base Binary files differ. diff --git a/.svn/pristine/1e/1e07ca83c53cec52f0eba10e2bdaf9dd57638c86.svn-base b/.svn/pristine/1e/1e07ca83c53cec52f0eba10e2bdaf9dd57638c86.svn-base Binary files differ. diff --git a/.svn/pristine/1e/1e9e815a80a89d81879d36b8f1bfd91a90c50357.svn-base b/.svn/pristine/1e/1e9e815a80a89d81879d36b8f1bfd91a90c50357.svn-base @@ -1,203 +0,0 @@ -#include "ActorCollision.h" - -bool SpatialMonitor::PartitionCells(int worldH, int worldW) -{ - int cellW = (worldW / CELLS_X); - int cellH = (worldH / CELLS_Y); - - for (int i = 0; i < CELLS_Y; i++) - { - for (int j = 0; j < CELLS_X; j++) - { - SDL_Rect cell; - cell.w = cellW; - cell.h = cellH; - cell.x = cellW * j; - cell.y = cellH * i; - - mCells[i*CELLS_X + j] = cell; - - } - } - return true; -} - -bool SpatialMonitor::LogActor(Actor& act) -{ - if (mActorCount < MAX_ACTORS) - { - mActors[mActorCount] = &act; - act.SetSpatID(mActorCount); - UpdateActorCell(mActorCount); - mActorCount += 1; - return true; - } - else - { - gCons->ConsPrintf("Failed to Log Actor. Spatial Monitor actor capacity reached! \n"); - return false; - } -} - -int SpatialMonitor::UpdateActorCell(int id) -{ - for (int i = 0; i < CELL_COUNT; i++) - { - if (DetectCenterPointIntersect(&mCells[i], mActors[id]->GetPosition())) - { - //gCons->ConsPrintf("Actor entering cell %i\n", i); - mActorCells[id] = i; - return i; - } - } - gCons->ConsPrintf("Could not find Actor cell\n"); - return -1; -} - -int* SpatialMonitor::GetAdjacentCells(int cellnum, int cells[9]) -{ - cells[0] = (cellnum - CELLS_X - 1); - cells[1] = (cellnum - CELLS_X); - cells[2] = (cellnum - CELLS_X + 1); - - cells[3] = (cellnum - 1); - cells[4] = (cellnum); - cells[5] = (cellnum + 1); - - cells[6] = (cellnum + CELLS_X - 1); - cells[7] = (cellnum + CELLS_X); - cells[8] = (cellnum + CELLS_X + 1); - - return cells; -} - -bool SpatialMonitor::GetActorsInCell(int cellnum) -{ - for (int i = 0; i < MAX_ACTORS; i++) - { - if (mActorCells[i] == cellnum) - { - //gCons->ConsPrintf("Actor %i is in adjacent cell\n", i); - mAdjacentActorIDs[mAdjacentActorCount] = i; - mAdjacentActorCount++; - } - } - return true; -} - -bool SpatialMonitor::GetAdjacentActors(int cellnum) -{ - mAdjacentActorCount = 0; - mAdjacentActorIDs[MAX_ACTORS] = { 0 }; - - int cells[9]; - GetAdjacentCells(cellnum, cells); - - for (int i = 0; i < 9; i++) - { - GetActorsInCell(cells[i]); - //gDiagDraw->LogDiagRect(mCells[cells[i]]); - } - return true; -} - -bool SpatialMonitor::DetectActorCollision(int id1, int id2) -{ - if (id1 != id2) - { - //gDiagDraw->LogDiagRect(*mActors[id2]->GetPosition()); - return DetectRectIntersect(mActors[id1]->GetPosition(), mActors[id2]->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::DetectRectSensors(SDL_Rect* sensor, int DetectorID, int foreignID) -{ - if (DetectorID != foreignID) - { - //gDiagDraw->LogDiagRect(*sensor); - //gDiagDraw->LogDiagRect(*mActors[foreignID]->GetPosition()); - return DetectRectIntersect(sensor, mActors[foreignID]->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::HandleCollisions(int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - GetAdjacentActors(CallerCell); - - for (int i = 0; i < mAdjacentActorCount; i++) - { - if (DetectActorCollision(CallerID, mAdjacentActorIDs[i]) == true) //i is the wrong value - { - mActors[CallerID]->EventProcess(Event(ACTOR_COLLISION, mActors[mAdjacentActorIDs[i]])); - } - } - return true; -} - -bool SpatialMonitor::HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType) -{ - int CallerCell = GetActorCell(CallerID); - GetAdjacentActors(CallerCell); - - for (int i = 0; i < mAdjacentActorCount; i++) - { - if (DetectRectSensors(sensor, CallerID, mAdjacentActorIDs[i]) == true) - { - mActors[CallerID]->EventProcess(Event(SENSOR_COLLISION, SeType, mActors[mAdjacentActorIDs[i]])); - } - } - return true; -} - -bool SpatialMonitor::TestBlockers(SDL_Rect* sensor, int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - GetAdjacentActors(CallerCell); - - for (int i = 0; i < mAdjacentActorCount; i++) - { - if (DetectRectSensors(sensor, CallerID, mAdjacentActorIDs[i]) == true) - { - if (mActors[mAdjacentActorIDs[i]]->IsBlocking() == true) - { - return true; - } - //mActors[CallerID]->EventProcess(Event(SENSOR_COLLISION, SeType, mActors[i])); - } - } - return false; -} - -bool SpatialMonitor::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case MOVED_THIS_FRAME: - UpdateActorCell(eve.GetEventData()->i); - HandleCollisions(eve.GetEventData()->i); - return true; - break; - case CHECK_RECT_SENSOR: - HandleRectSensors(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.ID, eve.GetEventData()->sd.st); - return true; - break; - case CHECK_BLOCKERS: - return TestBlockers(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.ID); - break; - default: - gCons->ConsPrintf("Spatial Monitor Received Invalid Event Type\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/1e/1ee39fe7dd81c3a3713bf0db0e090e1329ba0cc2.svn-base b/.svn/pristine/1e/1ee39fe7dd81c3a3713bf0db0e090e1329ba0cc2.svn-base Binary files differ. diff --git a/.svn/pristine/1f/1f2df7e544e13774f04ef522985ec77b907f5bac.svn-base b/.svn/pristine/1f/1f2df7e544e13774f04ef522985ec77b907f5bac.svn-base Binary files differ. diff --git a/.svn/pristine/1f/1fa9b238bdad4b0aefd988781af0b197e1a9cf72.svn-base b/.svn/pristine/1f/1fa9b238bdad4b0aefd988781af0b197e1a9cf72.svn-base Binary files differ. diff --git a/.svn/pristine/1f/1fab6fed29a1e3c6bf696a17e1d5c465696275e7.svn-base b/.svn/pristine/1f/1fab6fed29a1e3c6bf696a17e1d5c465696275e7.svn-base @@ -1,76 +0,0 @@ -#ifndef TERRAIN_H -#define TERRAIN_H - -#include "Utils.h" -#include "Console.h" - -//now defined in utils.h -//#define AIR 0x00 -//#define GROUND 0x01 -//#define PLATFORM 0x02 -//#define WATER 0x03 - -//BUG: Diagonal Stretch occurs when world H and world W are not multiples - -class TerrainCollisionManager -{ -public: - - TerrainCollisionManager() : mCol_Map(NULL) {} - - TerrainCollisionManager(SDL_Surface* Col_Map); - - bool DetectTerrainIntersect(SDL_Rect* Bounds, int ttype1, int ttype2 = -1); - - bool DetectWorldEscape(SDL_Rect* Bounds); - - void DrawTerrain(); //scans the entire collison map and draws each pixel, utterly obliterates framerate - -protected: - SDL_Surface* mCol_Map; -}; - -class colman_Character : public TerrainCollisionManager -{ -public: - - colman_Character() {} - - colman_Character(SDL_Surface* Col_Map, SDL_Rect* PosData, SDL_Rect* DestData, int EdgeThickness); - - bool DetectEdgeCollision(SDL_Rect* Bounds); - - int DetectIncline(int StepSizeLimit); - - bool DetectFalling(); - - bool DetectDirectionalCollision(SDL_Rect* bounds, int dir); - - bool DetectSideCollision(SDL_Rect* Bounds); - - bool DetectSwim(); - - bool DetectSurface(); - - int FindSurface(); - - bool DetectWade(); - - bool SetPlaformCollision(bool b) - { - //gCons->ConsPrintf("Platform Collisions %i\n", b); - return mPlatformCollision = b; - } - -protected: - - bool mPlatformCollision; - - SDL_Rect* mPosition; - SDL_Rect* mDestination; - - int mWallThickness; - -}; - -#endif diff --git a/.svn/pristine/1f/1fcc6efe61230c0da2ba97313ba69dbba316c7ef.svn-base b/.svn/pristine/1f/1fcc6efe61230c0da2ba97313ba69dbba316c7ef.svn-base Binary files differ. diff --git a/.svn/pristine/1f/1fd4da558ed4745cffe7bf32db2f78217fc8e6ab.svn-base b/.svn/pristine/1f/1fd4da558ed4745cffe7bf32db2f78217fc8e6ab.svn-base Binary files differ. diff --git a/.svn/pristine/20/205a2080270800b1073a9d4a45a9df09c4c2694b.svn-base b/.svn/pristine/20/205a2080270800b1073a9d4a45a9df09c4c2694b.svn-base Binary files differ. diff --git a/.svn/pristine/20/20a51d66abc839a4ea4833a2307ecda496b9c257.svn-base b/.svn/pristine/20/20a51d66abc839a4ea4833a2307ecda496b9c257.svn-base Binary files differ. diff --git a/.svn/pristine/20/20c643cd373c7a6f6002e7e62083471def01f73f.svn-base b/.svn/pristine/20/20c643cd373c7a6f6002e7e62083471def01f73f.svn-base Binary files differ. diff --git a/.svn/pristine/21/2113433dc2b7973506117582a95f3d3493f04ec6.svn-base b/.svn/pristine/21/2113433dc2b7973506117582a95f3d3493f04ec6.svn-base @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TapestryEngine", "TapestryEngine\TapestryEngine.vcxproj", "{7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}.Debug|Win32.ActiveCfg = Debug|Win32 - {7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}.Debug|Win32.Build.0 = Debug|Win32 - {7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}.Release|Win32.ActiveCfg = Release|Win32 - {7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/.svn/pristine/21/216a9b28d2fa38d54afe991aeb264705a0b5f0ed.svn-base b/.svn/pristine/21/216a9b28d2fa38d54afe991aeb264705a0b5f0ed.svn-base Binary files differ. diff --git a/.svn/pristine/21/21f6bef80bec8c3f3af81670071069ed17ab1882.svn-base b/.svn/pristine/21/21f6bef80bec8c3f3af81670071069ed17ab1882.svn-base @@ -1,235 +0,0 @@ -#include "Utils.h" -#include "DiagnosticDraw.h" -#include "Console.h" - -ParticleTypeData NullPTdata() -{ - ParticleTypeData ptData; - ptData.NoData = true; - return ptData; -} - -Time* gTime = NULL; -Random* gRandom = NULL; - -//int GetTimeF() //measures in frames -//{ -// int time = (clock() / CLOCKS_PER_FRAME); -// return time; -//} - -int GetRealTimeMS() //measures in milliseconds -{ - int time = (clock() / (CLOCKS_PER_SEC / 1000)); - return time; -} - -SDL_Surface* LoadSurfaceBMP(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\imgs\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\imgs\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - SDL_Surface* surface = SDL_LoadBMP(strcat(pathbuffer, filename)); - if (surface == NULL) - { - gCons->ConsPrintf("SDL_LoadBMP Error: %s", SDL_GetError()); - } - - SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF)); - - return surface; -} - -TTF_Font* LoadFont(char* filename, int ptsize) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\fonts\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\fonts\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - char* fullpath = strcat(pathbuffer, filename); - - TTF_Font* font = TTF_OpenFont(fullpath, ptsize); - - const char* error = TTF_GetError(); - -// int msgboxID = MessageBox( -// NULL, -// (LPCSTR)error, -// (LPCSTR)L"Account Details", -// MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2 -// ); - - assert(font != NULL); - - //gCons->ConsPrintf(fullpath); - - return font; -} -cJSON * LoadJSON(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\json\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\json\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - strcat(pathbuffer, filename); - - struct stat filestats; - stat(pathbuffer, &filestats); - - char* filecontent = (char*)malloc( (filestats.st_size + 1) ); - - FILE* fp; - fp = fopen(pathbuffer, "rt"); - - size_t size = fread(filecontent, 1, filestats.st_size, fp); - fclose(fp); - - filecontent[size] = 0; - - //gCons->ConsPrintf("%s\n", filecontent); - - return cJSON_Parse(filecontent); -} - -void PrintJSON(cJSON* json) -{ - gCons->ConsPrintf(cJSON_Print(json)); -} - -float GetSign(float x) -{ - if (x > 0) { return 1; } - if (x < 0) { return -1; } - return 0; -} - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2) -{ - //if ( ((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ( (r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w)) )) //if r1 and r2 intersect in x - - int r1x1 = r1->x; - int r1x2 = r1->x + r1->w; - int r2x1 = r2->x; - int r2x2 = r2->x + r2->w; - - int r1y1 = r1->y; - int r1y2 = r1->y + r1->h; - int r2y1 = r2->y; - int r2y2 = r2->y + r2->h; - - //if (((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ((r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w))) || ((r1->x <= r2->x) && (r2->x + r2->w) >= (r1->x + r1->w)) || ( (r1->x >= r2->x)&&( (r1->x + r1->w) >= (r2->x + r2->w) ) ) ) //if r1 and r2 intersect in x - if - ( - (r1x1 <= r2x2 && r1x1 >= r2x1) || - (r1x2 <= r2x2 && r1x2 >= r2x1) || - (r1x1 <= r2x1 && r1x2 >= r2x2) - ) - { - if - ( - (r1y1 <= r2y2 && r1y1 >= r2y1) || - (r1y2 <= r2y2 && r1y2 >= r2y1) || - (r1y1 <= r2y1 && r1y2 >= r2y2) - ) - { - //gCons->ConsPrintf("Rect Intersect Detected!\n"); - return true; - } - } - //gCons->ConsPrintf("No Rect Intersect Detected!\n"); - return false; -} - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point) -{ - //gDiagDraw->LogDiagRect(*point); - int pointX = point->x + (int)((float)point->w / 2); - int pointY = point->y + (int)((float)point->h / 2); - if ( (zone->x <= pointX) && (pointX <= (zone->x + zone->w)) ) - { - if ((zone->y <= pointY) && (pointY <= (zone->y + zone->h))) - { - //gCons->ConsPrintf("Center point intersect detected\n"); - return true; - } - } - //gCons->ConsPrintf("center point not intersecting\n"); - return false; -} - -int CalcDistance(int x1, int y1, int x2, int y2) -{ - int Xdelt = abs(x1 - x2); - int Ydelt = abs(y1 - y2); - - return (int)sqrt((Xdelt*Xdelt) + (Ydelt*Ydelt)); -} - -int EvenOutcomes(int NumberofOutcomes) -{ - int i = (rand() % (NumberofOutcomes)) + 1; - //gCons->ConsPrintf("Roll : %i\n", i); - return i; -} - -Random::Random() -{ - mSeed = (int)time(NULL); - srand(mSeed); -} - -int Random::RandRange(int v1, int v2) -{ - int i; - if (v1 < v2) //v1 is min - { - i = (v1 + (rand() % (1 + v2 - v1)) ); - assert(i <= v2); - assert(i >= v1); - } - else if (v2 < v1) //v2 is min - { - i = (v2 + (rand() % (1 + v1 - v2)) ); - assert(i <= v1); - assert(i >= v2); - } - else// v1 == v2 - { - i = v1; - } - //gCons->ConsPrintf("Range Roll : %i\n", i); - return i; -} - - -bool IsEven(int i) //Not working alawys return true -{ - if ( (i % 2) == 0) - { - return true; - } - else - { - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/22/222f2a14f80545af9cc26e1f9fc45985f6a1b334.svn-base b/.svn/pristine/22/222f2a14f80545af9cc26e1f9fc45985f6a1b334.svn-base Binary files differ. diff --git a/.svn/pristine/22/22b7b65bdc0fe4e7eb48697bde82c90ee0b6166b.svn-base b/.svn/pristine/22/22b7b65bdc0fe4e7eb48697bde82c90ee0b6166b.svn-base @@ -1,33 +0,0 @@ - Utils.cpp - Terrain.cpp - symbol.cpp - sound.cpp - Sequence.cpp - Physics.cpp - Particle.cpp - MiscDraw.cpp - Main.cpp - Loading.cpp - Level.cpp - Layer.cpp - Input.cpp - HUD.cpp - Event.cpp - Emitter.cpp - Dialogue.cpp - DiagnosticDraw.cpp - Context.cpp - Console.cpp - Generating Code... - Compiling... - cJSON.cpp - Camera.cpp - BinaryTree.cpp - AnimationGraph.cpp - Animation.cpp - ActorHandle.cpp - ActorCollision.cpp - Actor.cpp - Generating Code... - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/22/22c5848e4263acd37100edbb0a4ef89722e3e06f.svn-base b/.svn/pristine/22/22c5848e4263acd37100edbb0a4ef89722e3e06f.svn-base Binary files differ. diff --git a/.svn/pristine/22/22c849e77d84c3536f9d499833330d0856288845.svn-base b/.svn/pristine/22/22c849e77d84c3536f9d499833330d0856288845.svn-base Binary files differ. diff --git a/.svn/pristine/22/22e96a1a45e6503a29a566c44ca4b4b577191ef6.svn-base b/.svn/pristine/22/22e96a1a45e6503a29a566c44ca4b4b577191ef6.svn-base Binary files differ. diff --git a/.svn/pristine/23/234b2330b40c5322a99503b351822263be2b7d35.svn-base b/.svn/pristine/23/234b2330b40c5322a99503b351822263be2b7d35.svn-base @@ -1,144 +0,0 @@ -#include "BinaryTree.h" -#include "Utils.h" - -bool Node::nInsert(int i, void* data) -{ - return nInsertNode(new Node(this, i, data)); -} - -Node* Node::nSearch(int i) -{ - if (mItem == i) { return this; } - else if (i < mItem && mLeft != NULL ) { return mLeft->nSearch(i); } - else if (mItem < i && mRight != NULL) { return mRight->nSearch(i); } - else //Item Could not be found - { - return NULL; - } -} - -int Node::nSize(int i) -{ - i++; - if (mLeft != NULL) { i = mLeft->nSize(i); } - if (mRight != NULL) { i = mRight->nSize(i); } - return i; -} - -Node** Node::nDump(int* index, Node** contents) -{ - if (contents == 0) - { - contents = new Node*[nSize()]; - } - contents[*index] = this; - *index = (*index + 1); - - - if (mLeft != NULL ) { mLeft->nDump(index, contents); } - if (mRight != NULL) { mRight->nDump(index, contents); } - - return contents; -} - -bool Node::nInsertNode(Node* n) -{ - - if (n->mItem < mItem) - { - if (mLeft == NULL) - { - mLeft = n; - n->mParent = this; - return true; - } - else { return mLeft->nInsertNode(n); } - } - - else if (mItem < n->mItem) - { - if (mRight == NULL) - { - mRight = n; - n->mParent = this; - return true; - } - else { return mRight->nInsertNode(n); } - } - else// i==mItem this should never happen - { - //error - return false; - } -} - -bool Node::nInsertNodeAtRoot(Node* n) -{ - if (mParent != NULL) - { - return mParent->nInsertNodeAtRoot(n); - } - else - { - bool r = nInsertNode(n); - return r; - } -} - -void Node::nDelete() -{ - if (mParent == NULL) - { - assert(false); - } - else if (mParent->mLeft == this) { mParent->mLeft = NULL; } - else if (mParent->mRight == this) { mParent->mRight = NULL; } - else - { - assert(false); - return; //node listed as parent is does not have this node as a child. Tree broken. - } - if (mLeft != NULL) - { - nInsertNodeAtRoot(mLeft); - //mParent->nInsertNode(mLeft); - mLeft->nDelete(); - } - if (mRight != NULL) - { - nInsertNodeAtRoot(mRight); - //mParent->nInsertNode(mRight); - mRight->nDelete(); - } - //delete this; -} - -void Node::rotate_left() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(left_i); } - else if (mParent->mRight == this) { mParent->AttachRight(left_i); } - - Node* orphan = left_i->mLeft; - left_i->AttachLeft(this); - - mRight->AttachRight(orphan); -} - -void Node::rotate_right() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(right_i); } - else if (mParent->mRight == this) { mParent->AttachRight(right_i); } - - Node* orphan = right_i->mRight; - left_i->AttachRight(this); - - mRight->AttachLeft(orphan); -} diff --git a/.svn/pristine/23/23d17ce56f69c803c31fe133bceee52c59373e43.svn-base b/.svn/pristine/23/23d17ce56f69c803c31fe133bceee52c59373e43.svn-base Binary files differ. diff --git a/.svn/pristine/24/2425f1236643d0aeaf0b09ed53c497c7e727b1a9.svn-base b/.svn/pristine/24/2425f1236643d0aeaf0b09ed53c497c7e727b1a9.svn-base Binary files differ. diff --git a/.svn/pristine/24/248968dc6a84462f6e7a328ae29a67571366f1bc.svn-base b/.svn/pristine/24/248968dc6a84462f6e7a328ae29a67571366f1bc.svn-base Binary files differ. diff --git a/.svn/pristine/24/248e00a65ca454cad039186ef54c1da44b84285b.svn-base b/.svn/pristine/24/248e00a65ca454cad039186ef54c1da44b84285b.svn-base Binary files differ. diff --git a/.svn/pristine/24/248e4b73ddead71c5f2f67dfe55a37a10f6d7250.svn-base b/.svn/pristine/24/248e4b73ddead71c5f2f67dfe55a37a10f6d7250.svn-base @@ -1,714 +0,0 @@ -#ifndef ACTOR_H -#define ACTOR_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "AnimationGraph.h" -#include "Physics.h" -#include "Terrain.h" -//#include "ActorHandle.h" - -#define SPLASH 90 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 -// - -struct Trajectory -{ - float slope; - int dir; -}; - -class ActorHandleManager; -class SpatialMonitor; - -//consider making a lower level class for objects that have position and animate but don't interact with environment or other objects - -class Actor : public EventReceiver -{ -public: - - Actor() : mOpacity(255) {} - - Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - virtual bool UpdateAnimation() = 0; - - virtual bool ActorUpdate() = 0; - - int GetX() - { - return mPosData.x; - } - - int GetY() - { - return mPosData.y; - } - - int GetHeight() - { - return mPosData.h; - } - - int GetWidth() - { - return mPosData.w; - } - - int GetDrawX() - { - return mDrawPos.x; - } - - int GetDrawY() - { - return mDrawPos.y; - } - - int GetDrawHeight() - { - return mDrawPos.h; - } - - int GetDrawWidth() - { - return mDrawPos.w; - } - - SDL_Rect* GetPosition() - { - return &mPosData; - } - - SDL_Rect* GetDrawPosition() - { - return &mDrawPos; - } - - SDL_Rect CalcDrawRect() - { - mDrawPos.h = mFrame->FrameRect.h; - mDrawPos.w = mFrame->FrameRect.w; - if (mDir == RIGHT) - { - mDrawPos.x = mOff_x; - } - else //mDir = LEFT - { - mDrawPos.x = -(mDrawPos.w + (mOff_x - mPosData.w) ); - } - return mDrawPos; - } - - int GetOpacity() - { - return mOpacity; - } - - int SetOpacity(int i) - { - return mOpacity = i; - } - - Frame* GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - - BinaryTree* GetHats() - { - return &mHats; - } - - int AttachHat(Actor* hat) - { - mHats.Insert(hat->GetHandle(), hat); - return hat->GetHandle(); - } - - int SetHandle(int i) - { - return mHandle = i; - } - - int GetHandle() - { - return mHandle; - } - - int SetSpatCell(int i) - { - return mSpatCell = i; - } - - int GetSpatCell () - { - return mSpatCell; - } - - AnimGraph* GetAnimGraph() - { - return mAnimGraph; - } - - void PassAnimGraphState() - { - mAnimGraph->GiveActorState(&mAnimID); - } - - int GetAnimID() - { - return mAnimID; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool IsBlocking() - { - return mBlocking; - } - - EventFeed mFeed; - -protected: - - AnimGraph* mAnimGraph; - Frame* mFrame; - int mOpacity; - - int mState; - int mDir; - int mAnimID; - - SDL_Rect mPosData; //Where the actors collision box is - SDL_Rect mDrawPos; //Where the actor is drawn relative to its physical position (mPosData) - - int mOff_x; - int mOff_y; - - BinaryTree mHats; - - ActorHandleManager* mAHM; - int mHandle; - - SpatialMonitor* mSpat; //SpatialMonitor deals with actor collision and other region checking (like LoS) - int mSpatCell; - - EventReceiver* mParticleLib; //Deals with the spawning of particles - - EventReceiver* mSoundLib; //Deals with sounds and the spawning of point sounds - int mSoundChannel; //used to play sounds directly from the actor - - bool mBlocking; //determines if an actor blocks other actors from passing through it -}; - -class Winch : public Actor -{ -public: - Winch(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, Actor* gate, int dir) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mGate(gate) - { - mState = IDLE; - mDir = dir; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mGate; -}; - -class Blocker : public Actor -{ -public: - Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Test_Blocker : public Blocker -{ -public: - Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Gate : public Blocker -{ -public: - Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir = RIGHT); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Interactable : public Actor -{ -public: - - Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Talker : public Interactable -{ -public: - Talker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mStr(str) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - char* mStr; -}; - -class Gateman : public Talker -{ -public: - - //Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, EventReceiver* gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGate(gate) - Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mLOS; - - int mGateH; //handle for paired gate - - bool mTalked; -}; - -class Door : public Interactable -{ -public: - - Door(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int x_off, int y_off) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTele_Pos = mPosData; - mTele_Pos.x += x_off; - mTele_Pos.y += y_off; - } - - SDL_Rect* GetTelePos() - { - return &mTele_Pos; - } - - void SetTeleDest(SDL_Rect* dest) - { - mTele_Dest = dest; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mTele_Pos; - SDL_Rect* mTele_Dest; -}; - -class Mobile : public Actor -{ -public: - - Mobile() : mXspd(0), mYspd(0) {} - - Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - void SetPosition(SDL_Rect* Dest); - - //bool ModifyActorPosition(int x, int y); - - SDL_Rect MoveActor(int xspd, int yspd); - - int MoveActorDirect(float xspd, float yspd); - -protected: - float mXspd; - float mYspd; - int mXmove; - int mYmove; -}; - -class Hat : public Mobile -{ -public: - Hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mTarget(tar), Mobile(AnimData, *tar->GetPosition(), *tar->GetDrawPosition(), AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool IsEnabled() - { - return mEnabled; - } - - void ToggleHat(bool state) - { - mEnabled = state; - } - - bool EventProcess(Event eve) - { - return true; - } - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - bool mEnabled; -}; - -class bad_hat : public Hat -{ -public: - - bad_hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - } - - bool UpdateAnimation() - { - switch (mState) - { - case RUN: - default: - mAnimID = IDLE; - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class sword : public Hat -{ -public: - - sword(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool UpdateAnimation() - { - mAnimID = mTarget->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - mDrawPos.h = mFrame->FrameRect.h; - mDrawPos.w = mFrame->FrameRect.w; - - return false; - } -protected: -}; - -class Character : public Mobile -{ -public: - - Character() {} - - Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool DetectFalling(); - - bool UpdatePhysics(); - - bool UpdateFireables(); - - Trajectory GetTrajectory(SDL_Rect Dest, SDL_Rect Init); - - SDL_Rect RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount = 0); - - bool HandleDirectionalCollisions(SDL_Rect& Destination); - - bool UpdatePosition(); - - TerrainCollisionManager* getColMan() - { - return &mColMan; - } - -protected: - - SDL_Rect mDestData; - colman_Character mColMan; - PhysicsManager mPhysMan; -}; - -class Player : public Character -{ -public: - Player() {} - - Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - - int* GetHP() - { - return &mHP; - } - - int* GetMaxHP() - { - return &mHPmax; - } - - void SetSword(int index) - { - mHatIndex_Sword = index; - } - -protected: - -// bool mTalking; - int mTalkerID; - - bool mWielded; - int mHatIndex_Sword; - - //HP module - int mHP; - int mHPmax; - int mHPtimer; - // - - //blink module - //int mBlinkDuration; - //int mBlinkPeriod; - // - - SDL_Rect mAttackZone; - - int mTimer; - - int mRecover; //Timer to force recovery pause between jumps - - SDL_Rect mTouch; //Rect that deterimes what can be interacted with -}; - -class Sludge_Seal : public Character -{ -public: - - Sludge_Seal(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mDamagedTimer(0), mWanderLimit(0), mWanderTimer(0) - { - mState = IDLE; - - mTarget = -1; - - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - - mHPmax = 30; - mHP = mHPmax; - - mDamage = 10; - } - - bool Pursue(); - - bool Wander(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mTarget; - int mRestTimer; - SDL_Rect mLOS; - - int mHP; - int mHPmax; - int mDamage; - - int mDamagedTimer; - - int mWanderTimer; - int mWanderLimit; -}; - -class Loyal_Bug : public Character -{ -public: - Loyal_Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mMounted(false), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - bool mMounted; -}; - -class Bug : public Character -{ -public: - Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - -protected: - - int mTimer; - -}; - -class Wanderer : public Character -{ -public: - - Wanderer() : mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) {} - - Wanderer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWanderTimer(0), mWanderLimit(0), mWaitTimer(0), mWaitLimit(0) - { - } - - bool Wander(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -class Pursuer : public Character -{ -public: - Pursuer() {} - - Pursuer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mRestTimer(0) - { - mState = IDLE; - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - int mRestTimer; - SDL_Rect mLOS; -}; - -class Rabbit : public Character -{ -public: - Rabbit() {} - - Rabbit(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) - { - } - - bool Hop(); - - bool Wander(); - - bool Behave(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/24/249597943de1e6b22a82137187df7291a1b52a5a.svn-base b/.svn/pristine/24/249597943de1e6b22a82137187df7291a1b52a5a.svn-base Binary files differ. diff --git a/.svn/pristine/24/24c51bea67b98238e1404a22c633daa02a80e12c.svn-base b/.svn/pristine/24/24c51bea67b98238e1404a22c633daa02a80e12c.svn-base Binary files differ. diff --git a/.svn/pristine/24/24d887981e0541248730f6dec827eff8ffbed726.svn-base b/.svn/pristine/24/24d887981e0541248730f6dec827eff8ffbed726.svn-base @@ -1,175 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -//#define RELEASE -#define DEBUG - - -#include <vector> -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include <stdlib.h> -#include <math.h> -//#include <windows.h> -#include "cJSON.h" -#include "SDL.h" -#include "SDL_ttf.h" -#include "SDL_Mixer.h" -#include "BinaryTree.h" - -//Screen size defines //These must be a whole multiple of the camera size otherwise pixel stretching occurs -#define SCREEN_W 1344 -#define SCREEN_H 756 -// - -//Direction Defines. Used by actor and terrain systems -#define DOWN 3 -#define UP 2 -#define LEFT 1 // must be 1 because of SDL draw function -#define RIGHT 0 // must be 0 because of SDL draw function -// - -//Time Defines -#define MS_PER_FRAME 16 //this is normal speed -//#define MS_PER_FRAME 40 //useful slow speed -#define FRAMES_PER_SECOND (1/MS_PER_FRAME)*1000 //62.5 @16ms - -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -// - - -//Actor State Defines -#define IDLE 10 -#define IDLE_DRAWN 11 -#define STUN 12 -#define FALL 20 -#define FALL_DRAWN 21 -#define JUMP_TO_FALL 30 -#define JUMP_TO_FALL_DRAWN 31 -#define RUN 40 -#define RUN_DRAWN 41 -#define IDLE_BEGIN 50 -#define IDLE_BEGIN_DRAWN 51 -#define JUMP 60 -#define JUMP_DRAWN 61 -#define WANDER 70 -#define PURSUE 80 -#define SWIM 110 -#define SWIM_BEGIN 111 -#define TREAD 120 -#define LOOK 121 -#define EAT 122 -#define SLEEP 123 -#define PARTICLE 124 -#define ATTACK 130 -#define ALIVE 140 -#define DEAD 150 -#define DIE 151 - -#define SWIM_LEFT 160 -#define SWIM_RIGHT 161 -#define SWIM_DOWN 162 -#define SWIM_UP 163 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 - -#define WALK_LEFT 0x5 -#define WALK_RIGHT 0x06 -#define WALK_DOWN 0x007 -#define WALK_UP 0x0008 - -#define GATE_UP 201 -#define GATE_DOWN 202 -#define GATE_LOWER 203 -#define GATE_LOWER_BEGIN 204 -#define GATE_RAISE 205 - -#define SPLASH 90 -#define HAZE 100 - -#define FADE_BLACK 210 -#define FADE_RED 211 -// - -//This is a strange place for this stuff. Should maybe be its own ParticleTypeData.h -struct drift_data -{ - int mXspd; - int mYspd; -}; - -union ParticleTypeData -{ - bool NoData; - drift_data drift; -}; - -ParticleTypeData NullPTdata(); -// - -//struct ActHandle -//{ -// int id; -//}; - -typedef int ActHandle; - -class Time -{ -public: - - Time() : mCycle(0) {}; - - int ProgressCycle() - { - mCycle = (mCycle + 1); - return mCycle; - } - - int GetCurrentCycle() - { - return mCycle; - } - - int GetCurrentMS() - { - return (mCycle*MS_PER_FRAME); - } -protected: - - int mCycle; -}; - -int GetRealTimeMS(); - -SDL_Surface* LoadSurfaceBMP(const char* filename); - -TTF_Font* LoadFont(char* file, int ptsize); - -cJSON * LoadJSON(const char* filename); - -void PrintJSON(cJSON* json); - -float GetSign(float x); - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2); - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point); //Detects if the center of rectangle "point" is within rectangle "zone" - -int CalcDistance(int x1, int y1, int x2, int y2); - -int EvenOutcomes(int NumberofOutcomes); - -int RandRange(int min, int max); - -bool IsEven(int i); - -extern Time* gTime; - -#endif diff --git a/.svn/pristine/24/24dd2faf3a26428e59a0eb86a64b4917540828f3.svn-base b/.svn/pristine/24/24dd2faf3a26428e59a0eb86a64b4917540828f3.svn-base @@ -1,607 +0,0 @@ -#include "Level.h" - -Actor* FindRef(std::vector<ActorName*> refs, char* name) -{ - for (int i = 0; i < (int)refs.size(); i++) - { - if (strcmp(refs.at(i)->name, name) == false) - { - return refs.at(i)->act; - } - } - - return NULL; -} - -bool Level::LoadWorld(cJSON* level) -{ - cJSON* world = cJSON_GetObjectItem(level, "world"); - mHeight = cJSON_GetObjectItem(world, "world_h")->valueint; - mWidth = cJSON_GetObjectItem(world, "world_w")->valueint; - - - - char * ter = cJSON_GetObjectItem(world, "terrain")->valuestring; - mColMap = LoadSurfaceBMP(ter); - - cJSON* backs = cJSON_GetObjectItem(world, "backgrounds"); - for (int i = 0; i < cJSON_GetArraySize(backs); i++) - { - cJSON* layer = cJSON_GetArrayItem(backs, i); - char* back = cJSON_GetObjectItem(layer, "back")->valuestring; - - SDL_Texture* back_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(back)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(back_tex, alpha); - } - - mBack.push_back(back_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_back.push_back(p_factor); - } - - cJSON* fores = cJSON_GetObjectItem(world, "foregrounds"); - for (int i = 0; i < cJSON_GetArraySize(fores); i++) - { - cJSON* layer = cJSON_GetArrayItem(fores, i); - char* fore = cJSON_GetObjectItem(layer, "fore")->valuestring; - - SDL_Texture* fore_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(fore)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(fore_tex, alpha); - } - - mFore.push_back(fore_tex); - } - - cJSON* overs = cJSON_GetObjectItem(world, "overlays"); - for (int i = 0; i < cJSON_GetArraySize(overs); i++) - { - cJSON* layer = cJSON_GetArrayItem(overs, i); - char* overs = cJSON_GetObjectItem(layer, "over")->valuestring; - - SDL_Texture* over_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(overs)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(over_tex, alpha); - } - - mOver.push_back(over_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_over.push_back(p_factor); - } - return true; -} - -bool Level::LoadCamera(cJSON* level) -{ - cJSON* camera = cJSON_GetObjectItem(level, "camera"); - int camx = cJSON_GetObjectItem(camera, "x")->valueint; - int camy = cJSON_GetObjectItem(camera, "y")->valueint; - int camh = cJSON_GetObjectItem(camera, "h")->valueint; - int camw = cJSON_GetObjectItem(camera, "w")->valueint; - - mCam = Camera(camh, camw, camx, camy, mHeight, mWidth); - - cJSON* blockers = cJSON_GetObjectItem(camera, "blockers"); - - for (int i = 0; i < cJSON_GetArraySize(blockers); i++) - { - cJSON* blocker = cJSON_GetArrayItem(blockers, i); - SDL_Rect* r = new SDL_Rect; - r->h = cJSON_GetObjectItem(blocker, "h")->valueint; - r->w = cJSON_GetObjectItem(blocker, "w")->valueint; - r->x = cJSON_GetObjectItem(blocker, "x")->valueint; - r->y = cJSON_GetObjectItem(blocker, "y")->valueint; - - mCam.LogBlocker(r); - } - - return true; -} - -bool Level::LoadAnimations(cJSON* level) -{ - cJSON* animations = cJSON_GetObjectItem(level, "animations"); - mAnim_names = (char**)malloc(cJSON_GetArraySize(animations) * sizeof(char*)); - for (int i = 0; i < cJSON_GetArraySize(animations); i++) - { - cJSON* anim_pack = cJSON_GetArrayItem(animations, i); - mAnim_names[i] = cJSON_GetObjectItem(anim_pack, "pack_name")->valuestring; - //gCons->ConsPrintf("Animation Pack Name: %s\n", anim_names[i]); - - cJSON* frame_size = cJSON_GetObjectItem(anim_pack, "frame_size"); - int h = cJSON_GetObjectItem(frame_size, "h")->valueint; - int w = cJSON_GetObjectItem(frame_size, "w")->valueint; - - cJSON* col_data = cJSON_GetObjectItem(anim_pack, "col_data"); - int off_x = cJSON_GetObjectItem(col_data, "off_x")->valueint; - int off_y = cJSON_GetObjectItem(col_data, "off_y")->valueint; - int col_h = cJSON_GetObjectItem(col_data, "col_h")->valueint; - int col_w = cJSON_GetObjectItem(col_data, "col_w")->valueint; - - cJSON* anim_set = cJSON_GetObjectItem(anim_pack, "anim_set"); - - FrameSet* frame_data = (FrameSet*)malloc(cJSON_GetArraySize(anim_set) * sizeof(FrameSet)); - int* Index = (int*)malloc(cJSON_GetArraySize(anim_set) * sizeof(int)); - - for (int j = 0; j < cJSON_GetArraySize(anim_set); j++) - { - cJSON* anim = cJSON_GetArrayItem(anim_set, j); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - //int h = cJSON_GetObjectItem(anim, "h")->valueint; - //int w = cJSON_GetObjectItem(anim, "w")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - frame_data[j] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - Index[j] = id; - } - AnimDataPack* pack = new AnimDataPack(cJSON_GetArraySize(anim_set), frame_data, Index); - pack->SetColData(off_x, off_y, col_h, col_w); - mAnimData.push_back(pack); - - - LoadAnimGraph(anim_pack); - } - - return true; -} - -bool Level::LoadAnimGraph(cJSON* anim_pack) -{ - AnimGraphData* anim_g = new AnimGraphData( *mAnimData.back() ); - - cJSON* loop_ids = cJSON_GetObjectItem(anim_pack, "loop_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(loop_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(loop_ids, i)->valuestring); - anim_g->DefineLoop(id); - } - anim_g->CreateTranisitionMatrix(); - - cJSON* transition_ids = cJSON_GetObjectItem(anim_pack, "transition_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(transition_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(transition_ids, i)->valuestring); - anim_g->DefineTransitions(id); - } - - cJSON* anim_graph = cJSON_GetObjectItem(anim_pack, "anim_graph"); - for (int i = 0; i < (int)cJSON_GetArraySize(anim_graph); i++) - { - cJSON* loop = cJSON_GetArrayItem(anim_graph, i); - char* loop_name = cJSON_GetObjectItem(loop, "loop_name")->valuestring; - int init_id = ConvertStringToSymbol(loop_name); - - cJSON* transitions = cJSON_GetObjectItem(loop, "transitions"); - for(int j = 0; j < (int)cJSON_GetArraySize(transitions); j++) - { - char* transition = cJSON_GetArrayItem(transitions, j)->valuestring; - int trans_id = ConvertStringToSymbol(transition); - - int target_id = anim_g->GetLoopIDIndex(j); - - anim_g->PopulateTransitionMatrix(init_id, target_id, trans_id); - } - } - mAnimGraphs.push_back(anim_g); - - return false; -} - -bool Level::LoadActors(cJSON* level) -{ - cJSON* actors = cJSON_GetObjectItem(level, "actors"); - std::vector<ActorName*> ActorRefs; - - mAHM = ActorHandleManager(); - mSpatMon = SpatialMonitor(mHeight, mWidth, &mAHM); - - for (int i = 0; i < cJSON_GetArraySize(actors); i++) - { - cJSON* act = cJSON_GetArrayItem(actors, i); - - char* anim_pack = cJSON_GetObjectItem(act, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - AnimGraph* actor_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp(anim_pack, mAnim_names[j])) - { - actor_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(actor_pack != NULL); -#endif - - - SDL_Rect PosRect; - PosRect.x = cJSON_GetObjectItem(act, "x")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y")->valueint; - PosRect.h = actor_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = actor_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - SDL_Rect DrawRect; - DrawRect.x = actor_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = actor_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = actor_pack->GetH(); - DrawRect.w = actor_pack->GetW(); - - ActorName* ref = new ActorName; - ref->name = cJSON_GetObjectItem(act, "name")->valuestring; - - char* type = cJSON_GetObjectItem(act, "type")->valuestring; - if (!strcmp(type, "player")) - { - Player* actor = new Player(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); //needs a delete - ref->act = actor; - //mSpatMon.LogActor(*actor); - mInput->mFeed.Subscribe(actor); - - - mCam.SetFollowTarget(actor); - mCast.push_back(actor); - mPlayer = actor; - - AnimGraph* hat_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("sword", mAnim_names[j])) - { - hat_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - actor->SetSword(actor->AttachHat(new sword(hat_pack, actor, &mAHM, NULL, &mPrtLib, &mSoundLib))); - } - else if (!strcmp(type, "test_blocker")) - { - Test_Blocker* actor = new Test_Blocker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "gate")) //Gate is a multiactor entity. - { - int dir = ConvertStringToSymbol(cJSON_GetObjectItem(act, "dir")->valuestring); - Gate* actor = new Gate(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, dir); - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - actor_pack->mFeed.Subscribe(actor); - - AnimGraph* winch_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("winch", mAnim_names[j])) - { - winch_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - PosRect.h = winch_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = winch_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - PosRect.y -= 29; - if (dir == LEFT) - { - PosRect.x += 7; - } - else //dir == right - { - PosRect.x -= (21); - } - - DrawRect.x = winch_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = winch_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = winch_pack->GetH(); - DrawRect.w = winch_pack->GetW(); - Winch* actor2 = new Winch(winch_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, actor, dir); - ref->act = actor2; //Gate ref refers to the paired winch because its more useful - actor2->mFeed.Subscribe(actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor2); - } - else if (!strcmp(type, "gateman")) //Gateman must be attached to a gate. currently hardcoded to actor name "gate0" - { - Gateman* actor = new Gateman(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring, FindRef(ActorRefs, "gate0")->GetHandle()); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "talker")) - { - Talker* actor = new Talker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "door")) - { - int x_off = cJSON_GetObjectItem(act, "x_off")->valueint; - int y_off = cJSON_GetObjectItem(act, "y_off")->valueint; - Door* actor = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - ref->act = actor; - PosRect.x = cJSON_GetObjectItem(act, "x2")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y2")->valueint; - Door* actor2 = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - actor->SetTeleDest(actor2->GetTelePos()); - actor2->SetTeleDest(actor->GetTelePos()); - SDL_Rect* r = new SDL_Rect; - r->h = 0; - r->w = 0; - r->x = 100; - r->y = 100; - //actor->SetTeleDest(r); - //mSpatMon.LogActor(*actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor); - mCast.push_back(actor2); - } - else if (!strcmp(type, "sludge_seal")) - { - Pursuer* actor = new Pursuer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "pursuer")) - { - Sludge_Seal* actor = new Sludge_Seal(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "wanderer")) - { - Wanderer* actor = new Wanderer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "rabbit")) - { - Rabbit* actor = new Rabbit(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else - { - gCons->ConsPrintf("Failed to load actor: %s is an unrecognized actor type\n", type); - } - ActorRefs.push_back(ref); - } - - return true; -} - -bool Level::LoadParticles(cJSON* level) -{ - cJSON* particles = cJSON_GetObjectItem(level, "particles"); - for (int i = 0; i < cJSON_GetArraySize(particles); i++) - { - cJSON* prt = cJSON_GetArrayItem(particles, i); - - char* anim_pack = cJSON_GetObjectItem(prt, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - //AnimDataPack* particle_anims = NULL; - AnimGraph* particle_anims = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - //gCons->ConsPrintf("stored set name: %s\n", anim_names[j]); - if (!strcmp(anim_pack, mAnim_names[j])) - { - particle_anims = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(particle_anims != NULL); -#endif - int prth = particle_anims->GetH(); - int prtw = particle_anims->GetW(); - - ParticleData* pd = new ParticleData; - pd->AnimData = particle_anims; - pd->Height = prth; - pd->Width = prtw; - pd->spat = &mSpatMon; - - mPrtLib.LogParticleData(pd, anim_pack); - return true; - } - return false; -} - -bool Level::LoadSounds(cJSON* level) -{ - cJSON* sounds = cJSON_GetObjectItem(level, "sounds"); - - for (int i = 0; i < cJSON_GetArraySize(sounds); i++) - { - cJSON* sound = cJSON_GetArrayItem(sounds, i); - char* fname = cJSON_GetObjectItem(sound, "filename")->valuestring; - char* name = cJSON_GetObjectItem(sound, "name" )->valuestring; - int vol = cJSON_GetObjectItem(sound, "vol" )->valueint; - - Mix_Chunk* snd = new Mix_Chunk; - snd = LoadSound(fname); - Mix_VolumeChunk(snd, vol); - - mSoundLib.LogSoundData(snd, name); - } - - cJSON* sound_regions = cJSON_GetObjectItem(level, "sound_regions"); - - for (int i = 0; i < cJSON_GetArraySize(sound_regions); i++) - { - cJSON* region = cJSON_GetArrayItem(sound_regions, i); - SDL_Rect reg_rect; - reg_rect.x = cJSON_GetObjectItem(region, "x")->valueint; - reg_rect.y = cJSON_GetObjectItem(region, "y")->valueint; - reg_rect.h = cJSON_GetObjectItem(region, "h")->valueint; - reg_rect.w = cJSON_GetObjectItem(region, "w")->valueint; - - RegionSound* rs = mSoundLib.SpawnRegionSound(reg_rect); - - cJSON* tracks = cJSON_GetObjectItem(region, "tracks"); - for (int j = 0; j < cJSON_GetArraySize(tracks); j++) - { - char* track = cJSON_GetArrayItem(tracks, j)->valuestring; - rs->LogTrack(mSoundLib.GetSoundData(track)); - } - } - - return false; -} - -bool Level::LoadHud(cJSON* level) -{ - cJSON* texs = cJSON_GetObjectItem(level, "hud_textures"); - - //Load LifeMeter Widget - char* life_base = cJSON_GetObjectItem(texs, "life_base")->valuestring; - char* life_bar = cJSON_GetObjectItem(texs, "life_bar" )->valuestring; - - SDL_Rect LifePos; - LifePos.h = 15; - LifePos.w = 250; - LifePos.x = 25; - LifePos.y = 25; - mHUD.LogWidget( new LifeMeter(mPlayer, LifePos, mRen, life_base, life_bar) ); - // - - //Load Fader widget - char* black = cJSON_GetObjectItem(texs, "fader")->valuestring; - - Fader* f = new Fader(mRen, black); - mPlayer->mFeed.Subscribe(f); - mHUD.LogWidget(f); - // - - //Load Dialogue Widget - char* text_box = cJSON_GetObjectItem(texs, "text_box")->valuestring; - - SDL_Rect DialoguePos; - DialoguePos.h = 0; - DialoguePos.w = 0; - DialoguePos.x = 300; - DialoguePos.y = 200; - - SDL_Color fg = {0,0,0}; - - Dialogue* d = new Dialogue(DialoguePos, mRen, "Tapestry.ttf", text_box, fg, mPlayer); - mPlayer->mFeed.Subscribe(d); - - mHUD.LogWidget(d); - // - - return true; -} - -bool Level::Load(const char* filename) -{ - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* level = cJSON_GetObjectItem(root, "level"); - - LoadWorld(level); - - LoadCamera(level); - - gDiagDraw = new DiagnosticDraw(mRen, mCam); - - LoadAnimations(level); - - LoadActors(level); - - LoadParticles(level); - - LoadSounds(level); - - LoadHud(level); - -// int cells[9]; - -// mSpatMon.GetAdjacentCells(36, cells); - - return true; -} - -bool Level::Update() -{ - ///Update Actors - for (int i = 0; i < (int)(mCast.size()); i++) - { - mCast.at(i)->ActorUpdate(); - } - ///Update Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - mPrtLib.GetParticles()->at(i)->ActorUpdate(); - } - - ///Draw HUD - mHUD.UpdateWidgets(); - - mCam.ActorFollow(mRen, 150, 75); - - ///Draw Backgrounds - for (int i = 0; i < (int)mBack.size(); i++) - { - DrawParallax(mRen, mBack.at(i), mCam, mParallax_back.at(i), mHeight, mWidth); - } - ///Draw Foregrounds - for (int i = 0; i < (int)mFore.size(); i++) - { - SDL_RenderCopy(mRen, mFore.at(i), mCam.GetCamView(), NULL); - } - - ///Draw Actors - for (int i = 0; i < (int)mCast.size(); i++) - { - DrawActor(mRen, *mCast.at(i), mCam); - } - - ///Draw Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - DrawActor(mRen, *mPrtLib.GetParticles()->at(i), mCam); - } - - ///Draw overlays - for (int l = 0; l < (int)mOver.size(); l++) - { - DrawParallax(mRen, mOver.at(l), mCam, mParallax_over.at(l), mHeight, mWidth); - } - - mHUD.DrawWidgets(); - - ///Play Sounds - mSoundLib.UpdateRegionSounds(mPlayer->GetPosition()); - mSoundLib.UpdatePointSounds(mCam.GetCenterX(), mCam.GetCenterY()); - - //gCons->ConsPrintf("%d channels are playing\n", Mix_Playing(-1)); - - ///Draw Diagnositic rectangles - gDiagDraw->Update(); - - return true; -} - -bool Level::EventProcess(Event eve) -{ - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/24/24dfe1de993920eac801b39de37249690810a6d0.svn-base b/.svn/pristine/24/24dfe1de993920eac801b39de37249690810a6d0.svn-base @@ -1,58 +0,0 @@ -#ifndef ACTORHANDLE_H -#define ACTORHANDLE_H - -#include "Console.h" -#include "Event.h" -#include "Utils.h" - -struct HandleBind -{ - int mHandle; - EventReceiver* mAct; -}; - -class ActorHandleManager : public EventReceiver -{ -public: - - ActorHandleManager() : mNextID(0) - { - mHandleTree = new Node(); - //mHandleTree = &Node(mNextID); - } - - int AssignHandle(EventReceiver* act) - { - //HandleBind hb = { mNextID, act }; - //mHandles.push_back(hb); //record the handle and Actor/EventReceiverPointer - - //Node* Bind = new Node(mNextID, act); - - mHandleTree->Insert(mNextID, act); - - mNextID++; - - return mNextID-1; - //return hb.mHandle; - } - - EventReceiver* GetActorAddress(int handle) - { - return (EventReceiver*)(mHandleTree->Search(handle))->GetData(); - //return mHandles.at(mNextID).mAct; - } - - bool EventProcess(Event eve) - { - return false; - } - -protected: - - int mNextID; - //std::vector<HandleBind> mHandles; - Node* mHandleTree; - -}; - -#endif - \ No newline at end of file diff --git a/.svn/pristine/25/254c9ffcc2b658c9bc7d873e526233dd6f5e7ee5.svn-base b/.svn/pristine/25/254c9ffcc2b658c9bc7d873e526233dd6f5e7ee5.svn-base Binary files differ. diff --git a/.svn/pristine/25/255f52ec029fae376155dba8f86ba6b5abee6c2e.svn-base b/.svn/pristine/25/255f52ec029fae376155dba8f86ba6b5abee6c2e.svn-base Binary files differ. diff --git a/.svn/pristine/25/25e21d9b6c88cece29e78c47950febdd0d1e53f4.svn-base b/.svn/pristine/25/25e21d9b6c88cece29e78c47950febdd0d1e53f4.svn-base @@ -1,245 +0,0 @@ -#ifndef EVENT_H -#define EVENT_H - -#include "Utils.h" -#include "Console.h" - -enum EventType -{ - UNSUBSCRIBE, - - //ASSIGN_HANDLE, - //GET_ACTOR_ADDRESS, - - ANIM_COMPLETE, - - KEY_DOWN, - KEY_UP, - - ACTOR_COLLISION, - SENSOR_COLLISION, - PLAYER_CHECK, - PLAYER_CONFIRM, - - MOVED_THIS_FRAME, - CHECK_RECT_SENSOR, - CHECK_BLOCKERS, - - CAMERA_TARGET, - - EMIT_PARTICLE, - CREATE_PARTICLE, - - CREATE_POINT_SOUND, - ACTOR_PLAY_SOUND, - SOUND_COMPLETE, - - SWITCH, - - DIALOGUE, - SCROLL, - TERMINATE_DIALOGUE, - - FADE, - - TELEPORT, - - INTERACT, - - DAMAGE, - - SPAWN, - DEATH, - - GAME_OVER -}; - -enum SensorType -{ - LOS, //Line Of Sight - Attack, - Touch, -}; - -struct SensorData -{ - SensorType st; - SDL_Rect* sensor; - int id; -}; - -struct SensorResponse -{ - SensorType st; - int id; -}; - -struct PointSpawnData -{ - int x; - int y; - char* name; - char* type; -}; - -struct DialogueData -{ - char* str; - int talkerID; -}; - -struct FadeData -{ - int duration; - int color; - int opacity; -}; - -struct DamageData -{ - int damage; - int attackerID; -}; - -union EventData -{ - int i; - void* p; - bool b; - char* str; - SDL_Rect* rect; - SensorData sd; - SensorResponse sr; - PointSpawnData psd; - DialogueData dd; - FadeData fd; - DamageData damd; -}; - -class EventReceiver; //Forward Declare event receiver - -class Event -{ -public: - Event() : mType(), mEvData() {} //, mReturnAddress(NULL) {} - - Event(EventType EvType) : mType(EvType), mEvData() {} - - //Event(EventType EvType, ActHandle ReturnAddress = NULL) : mType(EvType), mEvData(), mReturnAddress(ReturnAddress) {} - - Event(EventType EvType, EventData EvData, int ReturnAddress = NULL) : mType(EvType), mEvData(EvData), mReturnAddress(ReturnAddress) {} - - Event(EventType EvType, int i) : mType(EvType), mReturnAddress(NULL) - { - mEvData.i = i; - } - - Event(EventType EvType, void* P) : mType(EvType), mReturnAddress(NULL) - { - mEvData.p = P; - } - - Event(EventType EvType, char* str) : mType(EvType), mReturnAddress(NULL) - { - mEvData.str = str; - } - - Event(EventType EvType, SensorType SeType, SDL_Rect* sensor, int ID) : mType(EvType), mReturnAddress(NULL) //CHECK_RECT_SENSOR constructor - { - mEvData.sd.st = SeType; - mEvData.sd.sensor = sensor; - mEvData.sd.id = ID; - } - - Event(EventType EvType, SensorType SeType, ActHandle ID) : mType(EvType), mReturnAddress(NULL) //collision response constructor: SENSOR_COLLISION, - { - mEvData.sr.st = SeType; - mEvData.sr.id = ID; - } - - Event(EventType EvType, char* type, char* name, int x, int y) : mType(EvType), mReturnAddress(NULL) - { - mEvData.psd.x = x; - mEvData.psd.y = y; - mEvData.psd.name = name; - mEvData.psd.type = type; - } - - Event(EventType EvType, char* str, int talkID) : mType(EvType), mReturnAddress(NULL) - { - mEvData.dd.str = str; - mEvData.dd.talkerID = talkID; - } - - Event(EventType EvType, int duration, int color, int opacity) : mType(EvType), mReturnAddress(NULL) - { - mEvData.fd.duration = duration; - mEvData.fd.color = color; - mEvData.fd.opacity = opacity; - } - - Event(EventType EvType, int damage, int attacker_handle) : mType(EvType), mReturnAddress(NULL) - { - mEvData.damd.damage = damage; - mEvData.damd.attackerID = attacker_handle; - } - - EventType* GetEventType() - { - return &mType; - } - - EventData* GetEventData() - { - return &mEvData; - } - - int GetReturnAddress() - { - if(mReturnAddress != NULL) - { - return mReturnAddress; - } - gCons->ConsPrintf("No return address listed for this event\n"); - return NULL; - } - -protected: - - EventType mType; - EventData mEvData; - int mReturnAddress; -}; - -class EventReceiver -{ -public: - - virtual bool EventProcess(Event eve) = 0; -}; - -class EventFeed : EventReceiver -{ -public: - - EventFeed() : mSubs(), mNumberOfSubs(0) {} - - bool Subscribe(EventReceiver* sub); - - bool Unsubscribe(EventReceiver* sub); - - bool EventProcess(Event eve); - -protected: - - std::vector<EventReceiver*> mSubs; - int mNumberOfSubs; -}; - -class EventManager -{ -public: -protected: -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/25/25e29fa2f85c3f4290b6bc1c84602e97bf7de086.svn-base b/.svn/pristine/25/25e29fa2f85c3f4290b6bc1c84602e97bf7de086.svn-base Binary files differ. diff --git a/.svn/pristine/26/26c0ad05b0ef9fa6957e951635dbb74421d49399.svn-base b/.svn/pristine/26/26c0ad05b0ef9fa6957e951635dbb74421d49399.svn-base Binary files differ. diff --git a/.svn/pristine/27/2723c621ecbc01d8ad7b653c15f818a024d68a57.svn-base b/.svn/pristine/27/2723c621ecbc01d8ad7b653c15f818a024d68a57.svn-base Binary files differ. diff --git a/.svn/pristine/27/277989613d4ef02752c22c9316e4c2311da41355.svn-base b/.svn/pristine/27/277989613d4ef02752c22c9316e4c2311da41355.svn-base @@ -1,91 +0,0 @@ -#ifndef ACTORHANDLE_H -#define ACTORHANDLE_H - -#include "Console.h" -#include "Event.h" -#include "Utils.h" -#include "Actor.h" - -struct HandleBind -{ - ActHandle mID; - EventReceiver* mAct; -}; - -class ActorHandleManager : public EventReceiver -{ -public: - - ActorHandleManager() : mNextNewID(0) - { - mHandleTree = BinaryTree(); - //mHandleTree = &Node(mNextID); - } - - int AssignHandle(Actor* act) - { - //HandleBind hb = { mNextID, act }; - //mHandles.push_back(hb); //record the handle and Actor/EventReceiverPointer - - //Node* Bind = new Node(mNextID, act); - - mHandleTree.Insert(mNextNewID, act); - - mNextNewID++; - - return mNextNewID-1; - //return hb.mHandle; - } - - int ReclaimHandle(int id) //I'm not sure if recycling ID's makes sense or how to do it - { - //mHandleTree.Search(id)->Delete() - } - - Actor* GetActorAddress(int id) - { - Actor* Address = (Actor*)(mHandleTree.Search(id))->GetData(); - if (Address == NULL) - { - return NULL; - } - else - { - return Address; - } - //return mHandles.at(mNextID).mAct; - } - - bool EventProcess(Event eve) - { -// switch (*eve.GetEventType()) -// { -// case ASSIGN_HANDLE: -// -// gCons->ConsPrintf("Handle Assigned to actor\n"); -// return AssignHandle((Actor*)eve.GetReturnAddress()); -// break; -// case GET_ACTOR_ADDRESS: -// return GetActorAddress(eve.GetEventData()->i); -// break; -// default: -// gCons->ConsPrintf("Actor Handle Manager received unrecognized event\n"); -// return false; -// break; -// } - return true; - } - -protected: - - int UpdateNextHandle() // see reclaim handle - { - - } - - int mNextNewID; - BinaryTree mHandleTree; - -}; - -#endif - \ No newline at end of file diff --git a/.svn/pristine/27/278642650f009970a0a358cc7c376fa819206af3.svn-base b/.svn/pristine/27/278642650f009970a0a358cc7c376fa819206af3.svn-base Binary files differ. diff --git a/.svn/pristine/27/27c864eca6e547a3d1c33334c8bbfc56fdb22057.svn-base b/.svn/pristine/27/27c864eca6e547a3d1c33334c8bbfc56fdb22057.svn-base Binary files differ. diff --git a/.svn/pristine/28/2814d18907f0c7a97cf23dd700cef89dd55d0a35.svn-base b/.svn/pristine/28/2814d18907f0c7a97cf23dd700cef89dd55d0a35.svn-base Binary files differ. diff --git a/.svn/pristine/28/28512c1de3b4d58b2ba29a67df490751178551dc.svn-base b/.svn/pristine/28/28512c1de3b4d58b2ba29a67df490751178551dc.svn-base Binary files differ. diff --git a/.svn/pristine/29/294698a9effaea4bdce8ee30397f479a4b4f4970.svn-base b/.svn/pristine/29/294698a9effaea4bdce8ee30397f479a4b4f4970.svn-base Binary files differ. diff --git a/.svn/pristine/2a/2a94684b5a8b4fc7c625b5540fe6dbdf9be52c55.svn-base b/.svn/pristine/2a/2a94684b5a8b4fc7c625b5540fe6dbdf9be52c55.svn-base @@ -1,1310 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) -{ - mAnimGraph = AnimData; - mPosData = Pos; - mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - mAHM = AHM; - if (AHM != NULL) { mHandle = AHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself - - mSpat = spat; - mParticleLib = prtLib; - mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: - gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir = RIGHT) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(DIALOGUE, mStr, this)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(DIALOGUE, mStr, this)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - ((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - ((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(DIALOGUE, mStr, this)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - mAHM->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mSpatID)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; - CalcDrawRect(); - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mSpatID)); -} - -bool Mobile::ModifyActorPosition(int x, int y) -{ - mPosData.x = x + mPosData.x; - mPosData.y = y + mPosData.y; - mDrawPos = mPosData; - return false; -} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib ) , mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mSpatID)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mSpatID))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mSpatID))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mSpatID)); - return true; - } - else - { - return false; - } -} - -//Player Functions -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - ((EventReceiver*)(eve.GetReturnAddress()))->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalker = (EventReceiver*)eve.GetEventData()->dd.talker; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mTalker->EventProcess(eve); - mTalker = NULL; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - ((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(INTERACT, this)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->i; - gCons->ConsPrintf("Player has received a damage event!\n"); - gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalker != NULL) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalker != NULL) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalker != NULL) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalker != NULL) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalker != NULL) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mSpatID)); - } - break; - case SDL_SCANCODE_Q: - if (mTalker != NULL) { break; } - mWielded = !mWielded; - ((sword*)(mHats.at(mHatIndex_Sword)))->ToggleHat(mWielded); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWieled == false - { - mAnimID = RUN; - - } - break; - case JUMP: - mAnimID = JUMP; - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case IDLE: - default: - mAnimID = IDLE; - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) ) - { - mAnimID = FALL; - } - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Player::ActorUpdate() -{ - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - for (int i = 0; i < (int)mHats.size(); i++) - { - mHats.at(i)->ActorUpdate(); - } - - //SDL_Rect draw = mDrawPos; - //draw.x += mPosData.x; - //draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(draw); - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mSpatID) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/2a/2aa73cba46dca507692e00d45da40a21987803aa.svn-base b/.svn/pristine/2a/2aa73cba46dca507692e00d45da40a21987803aa.svn-base Binary files differ. diff --git a/.svn/pristine/2a/2ae6d435c6ba4acd92b0ecd9c561b870370b83d6.svn-base b/.svn/pristine/2a/2ae6d435c6ba4acd92b0ecd9c561b870370b83d6.svn-base Binary files differ. diff --git a/.svn/pristine/2b/2b38969857980961f9dec6b070aef31b38111fd0.svn-base b/.svn/pristine/2b/2b38969857980961f9dec6b070aef31b38111fd0.svn-base @@ -1,1348 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" -#include "ActorHandle.h" -#include "ActorCollision.h" - -void ActorBase::InitializeHandle(ActorHandleManager* AHM) -{ - mAHM = AHM; -// if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself -} - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* prtLib, EventReceiver* SoundLib) : mAnimGraph(AnimData), mPosData(Pos), mDrawPos(DrawPos), mParticleLib(prtLib), mSoundLib(SoundLib) -{ -// mAnimGraph = AnimData; -// mPosData = Pos; -// mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - InitializeHandle(AHM); //Get a unique handle from the AHM and register it with a pointer to yourself - if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } - -// mParticleLib = prtLib; -// mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -void Collider::InitializeCollider() -{ - if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collision system. -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: - gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, prtLib, SoundLib), Collider(spat) -{ - InitializeCollider(); -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, prtLib, SoundLib), Collider(spat) -{ - InitializeCollider(); - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - //((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DIALOGUE, mStr, mHandle)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - mAHM->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - //( mAHM->EventProcess(Event(GET_ACTOR_ADDRESS, mGateH)) ).EventProcess(Event(INTERACT)); //Event process can only return bools. Might change later. - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; - CalcDrawRect(); -// mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); -} - -bool Mobile::ModifyActorPosition(int x, int y) -{ - mPosData.x = x + mPosData.x; - mPosData.y = y + mPosData.y; - mDrawPos = mPosData; - return false; -} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, prtLib, SoundLib ), Collider(spat), mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ - InitializeCollider(); -} - -bool Character::DetectFalling() -{ - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mHandle)) == false)) - { - return true; - } - else - { - return false; - } -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mHandle)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) //this should probably be lower - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mHandle))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mHandle))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mHandle)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); - return true; - } - else - { - return false; - } -} - -//Player Functions -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - //((EventReceiver*)(eve.GetReturnAddress()))->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalkerID = eve.GetEventData()->dd.talkerID; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mAHM->GetActorAddress(mTalkerID)->EventProcess(eve); - mTalkerID = -1; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(INTERACT, mHandle)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->i; - gCons->ConsPrintf("Player has received a damage event!\n"); - gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalkerID != -1) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalkerID != -1) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalkerID != -1) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mHandle)); - } - break; - case SDL_SCANCODE_Q: - if (mTalkerID != -1) { break; } - mWielded = !mWielded; - //((sword*)(mHats.at(mHatIndex_Sword)))->ToggleHat(mWielded); - ((sword*)(mAHM->GetActorAddress(mHatIndex_Sword)))->ToggleHat(mWielded); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWieled == false - { - mAnimID = RUN; - - } - break; - case JUMP: - mAnimID = JUMP; - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case IDLE: - default: - mAnimID = IDLE; - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) ) - { - mAnimID = FALL; - } - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Player::ActorUpdate() -{ - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - - mAHM->GetActorAddress(mHatIndex_Sword)->ActorUpdate(); - -// Node** hat_array = mHats.Dump(); -// for (int i = 0; i < mHats.Size(); i++) -// { -// mAHM->GetActorAddress(hat_array[i]->GetItem())->ActorUpdate(); -// } - - //SDL_Rect draw = mDrawPos; - //draw.x += mPosData.x; - //draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(draw); - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/2b/2bfacf856734f54a5495515cc5adf08c40ddbc94.svn-base b/.svn/pristine/2b/2bfacf856734f54a5495515cc5adf08c40ddbc94.svn-base Binary files differ. diff --git a/.svn/pristine/2d/2d0a00799d6c075cb4d16bb4cf3d27c4f2f1cca1.svn-base b/.svn/pristine/2d/2d0a00799d6c075cb4d16bb4cf3d27c4f2f1cca1.svn-base Binary files differ. diff --git a/.svn/pristine/2d/2df5da0a979e71c24fcd506a9c12ff47f5b47784.svn-base b/.svn/pristine/2d/2df5da0a979e71c24fcd506a9c12ff47f5b47784.svn-base Binary files differ. diff --git a/.svn/pristine/2e/2e3338dac20d526ef6304286335a9e5e0e5d65ca.svn-base b/.svn/pristine/2e/2e3338dac20d526ef6304286335a9e5e0e5d65ca.svn-base @@ -1,118 +0,0 @@ -#ifndef ACTORCOLLISION_H -#define ACTORCOLLISION_H - -#include "Utils.h" -#include "Console.h" -#include "DiagnosticDraw.h" -#include "Event.h" -#include "Actor.h" -#include "ActorHandle.h" - -#define MAX_ACTORS 1024 - -#define CELLS_X 10 -#define CELLS_Y 2 -#define CELL_COUNT (CELLS_X*CELLS_Y) - -class Cell -{ -public: - Cell() : mCell_Rect() - { - mActors_In_Cell = BinaryTree(); - } - - Cell(SDL_Rect rect) : mCell_Rect(rect) - { - mActors_In_Cell = BinaryTree(); - } - - SDL_Rect* GetCellRect() - { - return &mCell_Rect; - } - - BinaryTree* GetActorTree() - { - return &mActors_In_Cell; - } -protected: - SDL_Rect mCell_Rect; - BinaryTree mActors_In_Cell; -}; - -class SpatialMonitor : public EventReceiver -{ -public: - - SpatialMonitor() - { - } - - SpatialMonitor(int worldH, int worldW, ActorHandleManager* AHM) : mAHM(AHM) - { - PartitionCells(worldH, worldW); - } - - int GetAdjacentCells(int cellnum, Cell* cells[9]); - - bool LogActor(int id); //Logs an actor with the spatial monitor. called on program startup - - bool EventProcess(Event eve); - - Cell* GetCell(int i) //Gets the cell from a cell number. - { - if ((0 <= i) && (i <= CELL_COUNT)) - { - return &mCells[i]; - } - else - { - //gCons->ConsPrintf("Cell %i does not exist\n", i) - return NULL; - } - } - -protected: - - bool PartitionCells(int worldH, int worldW); //divides the level into cells based on macro'd parameters - - //bool GetActorsInCell(int cellnum); - - //bool GetAdjacentActors(int cellnum); - - bool DetectActorCollision(int id1, int id2); //checks two logged actors for intersection - - bool DetectRectSensors(SDL_Rect* sensor, int detectorID, int foreignID); //Called in HandleRectSensors, checks given rectangle for intersects - - bool ClearActorCell(int id); - - int UpdateActorCell(int id); //Updates the the cell number that contains a logged actor, Called when an MOVED_THIS_FRAME event is processed - - int GetActorCell(int id) //Gets the cell number of an actor - { - return (mAHM->GetActorAddress(id)->GetSpatCell()); - - //return mActorCells[id]; - } - - //int* GetAdjacentCells(int cellnum, int cells[9]); //populates and returns cells[9] with the cell numbers of cellnum and the 8 surrounding cells - - bool HandleCollisions(int CallerID); //Called in event process, finds the actors in the cells adjacent to the cell of CallerID and checks them for collision with CallerID - - bool HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType); - - bool TestBlockers(SDL_Rect* sensor, int CallerID); - - - //BinaryTree mActors; - ActorHandleManager* mAHM; - //int mActorCells[MAX_ACTORS]; - Cell mCells[CELL_COUNT]; - //int mActorCount; - //int mAdjacentActorIDs[MAX_ACTORS]; - //int mAdjacentActorCount; -}; - -#endif - diff --git a/.svn/pristine/2e/2e8c09a2ec8b308688904fc07978ab916dd2c51f.svn-base b/.svn/pristine/2e/2e8c09a2ec8b308688904fc07978ab916dd2c51f.svn-base Binary files differ. diff --git a/.svn/pristine/2e/2eb066789ed95c193c582ba3d41ee4fc013a2ec5.svn-base b/.svn/pristine/2e/2eb066789ed95c193c582ba3d41ee4fc013a2ec5.svn-base Binary files differ. diff --git a/.svn/pristine/2e/2ec13c3403a73c189c7f19ea12b2fba69cf62eaa.svn-base b/.svn/pristine/2e/2ec13c3403a73c189c7f19ea12b2fba69cf62eaa.svn-base Binary files differ. diff --git a/.svn/pristine/2f/2f20f2c36052a7de4f6e4b67b5d47976e1f7bfec.svn-base b/.svn/pristine/2f/2f20f2c36052a7de4f6e4b67b5d47976e1f7bfec.svn-base Binary files differ. diff --git a/.svn/pristine/2f/2f68d73841c52a4ef43e6320346b18b3e2ed3fae.svn-base b/.svn/pristine/2f/2f68d73841c52a4ef43e6320346b18b3e2ed3fae.svn-base Binary files differ. diff --git a/.svn/pristine/30/30ae4bef54012f1e652d522d0550537eef461777.svn-base b/.svn/pristine/30/30ae4bef54012f1e652d522d0550537eef461777.svn-base Binary files differ. diff --git a/.svn/pristine/30/30cf7540d369b6fa3356b2a66e7fd9bc267e039a.svn-base b/.svn/pristine/30/30cf7540d369b6fa3356b2a66e7fd9bc267e039a.svn-base @@ -1,136 +0,0 @@ -#include "Animation.h" - -//FramesetFunctions -FrameSet::FrameSet(SDL_Renderer* ren, const char* SourcePath, int FrameCount, int FRate, int frameH, int frameW) -{ - memset(mFrames, 0, 256); -// gCons->ConsPrintf("image source path: %s\n", SourcePath); - mframesource = SDL_CreateTextureFromSurface(ren, LoadSurfaceBMP(SourcePath)); - mFrameCount = (FrameCount - 1); - mDefaultFrameRate = FRate; - - SDL_Rect framerect; - framerect.h = frameH; - framerect.w = frameW; - framerect.x = 0; - framerect.y = 0; - - int i = 0; - while (i <= mFrameCount) - { - - framerect.x = ((i)*frameW); - - mFrames[i] = framerect; - - i++; - } -} - -//animation Functions -animation::animation(FrameSet* set, int ID, bool flip) : mID(ID) -{ - mFrameSet = set; - mCurrentFrameNumber = 0; - mFrameRate = mFrameSet->GetDefaultFrameRate(); - mTimer = 0; - mIsFlippable = flip; - mIsPlaying = false; - mCurrentFrame.FrameSource = mFrameSet->GetFrameSource(); - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); -} - -Frame animation::GetCurrentFrame() -{ - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); - if (mIsPlaying == true) - { - if ((gTime->GetCurrentMS() - mTimer) >= mFrameRate) - { - if (mCurrentFrameNumber == mFrameSet->GetNumberOfFrames()) - { - if (mFlags == ONCE) - { - Stop(); - mFeed.EventProcess(Event(ANIM_COMPLETE, mID)); - //gCons->ConsPrintf("Animation Complete\n"); - } - - mCurrentFrameNumber = 0; - } - else - { - mCurrentFrameNumber = (mCurrentFrameNumber + 1); - } - mTimer = gTime->GetCurrentMS(); - } - } - return mCurrentFrame; -} - -//AnimDataPack Functions -AnimDataPack::AnimDataPack(int AnimCount, FrameSet* AnimData, int* Index) -{ - mAnimData = AnimData; - mIndexer = Index; - mAnimCount = AnimCount; -} - -FrameSet* AnimDataPack::GetAnimationData(int AnimationID) -{ - for (int i = 0; i < mAnimCount; i++) - { - if (mIndexer[i] == AnimationID) - { - return &mAnimData[i]; - } - } - gCons->ConsPrintf("Invalid Animation ID; Could not find Animation Data\n"); - return NULL; -} - -//AnimPack Functions -AnimPack::AnimPack(AnimDataPack* data) -{ - mData = data; - mLastIndex = 0; - - mAnims = new animation[mData->GetAnimCount()]; //needs a free? - for (int i = 0; i < mData->GetAnimCount(); i++) - { - mAnims[i] = animation( mData->GetAnimationData(mData->GetIndex(i)), mData->GetIndex(i) ); //make sure mData->GetIndex(i) returns correct ID - } -} - -animation* AnimPack::ActivateAnimation(int AnimationID, int flags) -{ - for (int i = 0; i < mData->GetAnimCount(); i++) - { - if (mData->GetIndex(i) == AnimationID) - { - if (mLastIndex != i) - { - mAnims[mLastIndex].Stop(); - mLastIndex = i; - } - - mAnims[i].Play(flags); - return &mAnims[i]; - } - } - gCons->ConsPrintf("Invalid Animation ID; Could not find Animation\n"); - return NULL; - -} - -bool FrameCompare(Frame f1, Frame f2) -{ - if (f1.FrameSource == f2.FrameSource) - { - if (f1.FrameRect.x == f2.FrameRect.x) - { - return true; - } - } - return false; -}- \ No newline at end of file diff --git a/.svn/pristine/31/313bdad44f0f0f92b5b1f843f6dc696594a9e702.svn-base b/.svn/pristine/31/313bdad44f0f0f92b5b1f843f6dc696594a9e702.svn-base Binary files differ. diff --git a/.svn/pristine/31/319d3a7a7b41f5ac0289faef055531a4e3de36f1.svn-base b/.svn/pristine/31/319d3a7a7b41f5ac0289faef055531a4e3de36f1.svn-base Binary files differ. diff --git a/.svn/pristine/31/31e5a34a6bb9718514bba6ff1447994a86307fa2.svn-base b/.svn/pristine/31/31e5a34a6bb9718514bba6ff1447994a86307fa2.svn-base Binary files differ. diff --git a/.svn/pristine/32/32405d1ae1a0b9edd06da2e015dcce470acd3001.svn-base b/.svn/pristine/32/32405d1ae1a0b9edd06da2e015dcce470acd3001.svn-base Binary files differ. diff --git a/.svn/pristine/32/326a8c2b1c6502094a462c01ff8211937f864e3b.svn-base b/.svn/pristine/32/326a8c2b1c6502094a462c01ff8211937f864e3b.svn-base Binary files differ. diff --git a/.svn/pristine/33/330a12ab586464f2436aba2478d0b4f5dc3c7d5b.svn-base b/.svn/pristine/33/330a12ab586464f2436aba2478d0b4f5dc3c7d5b.svn-base Binary files differ. diff --git a/.svn/pristine/33/33da0ecdb0ccb904dd29d16fa4d8d63b1e60dd0f.svn-base b/.svn/pristine/33/33da0ecdb0ccb904dd29d16fa4d8d63b1e60dd0f.svn-base Binary files differ. diff --git a/.svn/pristine/33/33ef6e523d474cf62ae40086467165d7a12fa942.svn-base b/.svn/pristine/33/33ef6e523d474cf62ae40086467165d7a12fa942.svn-base Binary files differ. diff --git a/.svn/pristine/34/348e9398794ad014bdaef7f7c6b1cf1c970efc6c.svn-base b/.svn/pristine/34/348e9398794ad014bdaef7f7c6b1cf1c970efc6c.svn-base Binary files differ. diff --git a/.svn/pristine/34/34a277129fa2017d1255f92a059217545915c49a.svn-base b/.svn/pristine/34/34a277129fa2017d1255f92a059217545915c49a.svn-base @@ -1,277 +0,0 @@ -#include "ActorCollision.h" - -bool SpatialMonitor::PartitionCells(int worldH, int worldW) -{ - int cellW = (worldW / CELLS_X); - int cellH = (worldH / CELLS_Y); - - for (int i = 0; i < CELLS_Y; i++) - { - for (int j = 0; j < CELLS_X; j++) - { - Cell new_cell; - new_cell.GetCellRect()->w = cellW; - new_cell.GetCellRect()->h = cellH; - new_cell.GetCellRect()->x = cellW * j; - new_cell.GetCellRect()->y = cellH * i; - - mCells[i*CELLS_X + j] = new_cell; - - } - } - return true; -} - -bool SpatialMonitor::LogActor(int id) -{ - //mActors[mActorCount] = &act; - //mActors.Insert(act.GetHandle(), &act); - //act.SetSpatID(mActorCount); - UpdateActorCell(id); - return true; -} - -bool SpatialMonitor::ClearActorCell(int id) -{ - if (GetActorCell(id) != -1) - { - mCells[GetActorCell(id)].GetActorTree()->Search(id)->Delete(); - return true; - } - return false; -} - - -int SpatialMonitor::UpdateActorCell(int id) -{ - Actor* act = (mAHM->GetActorAddress(id)); - for (int i = 0; i < CELL_COUNT; i++) - { - if (DetectCenterPointIntersect( mCells[i].GetCellRect(), act->GetPosition() ) ) - { - //gCons->ConsPrintf("Actor entering cell %i\n", i); - - if (i != act->GetSpatCell()) - { - mCells[i].GetActorTree()->Insert(id, NULL); - ClearActorCell(id); //this is causing the crash, delete function sucks. - //mCells[GetActorCell(id)].GetActorTree()->Search(id)->Delete(); - act->SetSpatCell(i); - } - - return i; - } - } - gCons->ConsPrintf("Could not find Actor cell\n"); - return -1; -} - -int SpatialMonitor::GetAdjacentCells(int cellnum, Cell* cells[9]) -{ - cells[0] = GetCell((cellnum - CELLS_X - 1)); - cells[1] = GetCell((cellnum - CELLS_X)); - cells[2] = GetCell((cellnum - CELLS_X + 1)); - - cells[3] = GetCell((cellnum - 1)); - cells[4] = GetCell((cellnum)); - cells[5] = GetCell((cellnum + 1)); - - cells[6] = GetCell((cellnum + CELLS_X - 1)); - cells[7] = GetCell((cellnum + CELLS_X)); - cells[8] = GetCell((cellnum + CELLS_X + 1)); - - return 0; -} - -//bool SpatialMonitor::GetActorsInCell(int cellnum) //uneeded now. Use Cell.GetActorTree() -//{ -// for (int i = 0; i < MAX_ACTORS; i++) //this is very bad. Basically defeats the function of cells by check each actor -// { -// if (mActorCells[i] == cellnum) -// { -// //gCons->ConsPrintf("Actor %i is in adjacent cell\n", i); -// mAdjacentActorIDs[mAdjacentActorCount] = i; -// mAdjacentActorCount++; -// } -// } -// return true; -//} - -//bool SpatialMonitor::GetAdjacentActors(int cellnum) -//{ -// mAdjacentActorCount = 0; -// mAdjacentActorIDs[MAX_ACTORS] = { 0 }; -// -// int cells[9]; -// GetAdjacentCells(cellnum, cells); -// -// for (int i = 0; i < 9; i++) -// { -// GetActorsInCell(cells[i]); -// //gDiagDraw->LogDiagRect(mCells[cells[i]]); -// } -// return true; -//} - -bool SpatialMonitor::DetectActorCollision(int id1, int id2) -{ - if (id1 != id2) - { - //gDiagDraw->LogDiagRect(*mActors[id2]->GetPosition()); - return DetectRectIntersect(mAHM->GetActorAddress(id1)->GetPosition(), mAHM->GetActorAddress(id2)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::DetectRectSensors(SDL_Rect* sensor, int DetectorID, int foreignID) -{ - if (DetectorID != foreignID) - { - //gDiagDraw->LogDiagRect(*sensor); - //gDiagDraw->LogDiagRect(*mActors[foreignID]->GetPosition()); - return DetectRectIntersect(sensor, mAHM->GetActorAddress(foreignID)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::HandleCollisions(int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectActorCollision(CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(ACTOR_COLLISION, ActorTreeArray[j]->GetItem())); - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - - return true; -} - -bool SpatialMonitor::HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - Node* debugtool = ActorTreeArray[j]; - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(SENSOR_COLLISION, SeType, ActorTreeArray[j]->GetItem())); //Used to pass actor* now passed ID number. receiver functions need to be updated - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return true; -} - -bool SpatialMonitor::TestBlockers(SDL_Rect* sensor, int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = ((AdjecentCellIndex[i]->GetActorTree())->Dump()); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - if (mAHM->GetActorAddress(ActorTreeArray[j]->GetItem())->IsBlocking() == true) - { - return true; - } - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return false; -} - -bool SpatialMonitor::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case MOVED_THIS_FRAME: - UpdateActorCell(eve.GetEventData()->i); - HandleCollisions(eve.GetEventData()->i); - return true; - break; - case CHECK_RECT_SENSOR: - HandleRectSensors(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id, eve.GetEventData()->sd.st); - return true; - break; - case CHECK_BLOCKERS: - return TestBlockers(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id); - break; - default: - gCons->ConsPrintf("Spatial Monitor Received Invalid Event Type\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/35/350e57fc27342c20dfd1b4510fc20727a861aa26.svn-base b/.svn/pristine/35/350e57fc27342c20dfd1b4510fc20727a861aa26.svn-base Binary files differ. diff --git a/.svn/pristine/35/353cd1fba8ae7ea0c53608baaee4ba7ebec2b70f.svn-base b/.svn/pristine/35/353cd1fba8ae7ea0c53608baaee4ba7ebec2b70f.svn-base Binary files differ. diff --git a/.svn/pristine/36/36a3c88e611d3185ebf8f8c6b7fba6037a5c6ac9.svn-base b/.svn/pristine/36/36a3c88e611d3185ebf8f8c6b7fba6037a5c6ac9.svn-base @@ -1,331 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'surface'. </DESCRIPTION> - <FUNCTION>LoadSurfaceBMP</FUNCTION> - <DECORATED>?LoadSurfaceBMP@@YAPAUSDL_Surface@@PBD@Z</DECORATED> - <FUNCLINE>26</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>37</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>39</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>40</LINE> - <COLUMN>13</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'surface' may be NULL (Enter this branch)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>42</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'surface' is an In/Out argument to 'SDL_SetColorKey' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\sdl2-2.0.4\include\sdl_surface.h:224)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'surface' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'filecontent' could be '0': this does not adhere to the specification for the function 'fread'. </DESCRIPTION> - <FUNCTION>LoadJSON</FUNCTION> - <DECORATED>?LoadJSON@@YAPAUcJSON@@PBD@Z</DECORATED> - <FUNCLINE>70</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>73</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>80</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>81</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>82</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>84</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>85</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>87</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>89</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>4</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'filecontent' is an In/Out argument to 'fread' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h:231)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' should not be NULL, because this is not consistent with the SAL annotation on 'fread'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>19</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'filecontent'. See line 92 for an earlier location where this can occur</DESCRIPTION> - <FUNCTION>LoadJSON</FUNCTION> - <DECORATED>?LoadJSON@@YAPAUcJSON@@PBD@Z</DECORATED> - <FUNCLINE>70</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>73</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>80</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>81</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>82</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>84</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>85</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>87</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>89</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>4</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'filecontent' is an In/Out argument to 'fread' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h:231)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>93</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/37/37045dffb2cebecc8eb9096ebb694b27024f9e1a.svn-base b/.svn/pristine/37/37045dffb2cebecc8eb9096ebb694b27024f9e1a.svn-base Binary files differ. diff --git a/.svn/pristine/37/374881a0ea8ee5ebeac4cd5f7c33be849301f85f.svn-base b/.svn/pristine/37/374881a0ea8ee5ebeac4cd5f7c33be849301f85f.svn-base Binary files differ. diff --git a/.svn/pristine/37/37e29029315b7f92e0f87a492d2cc3542c75eb3c.svn-base b/.svn/pristine/37/37e29029315b7f92e0f87a492d2cc3542c75eb3c.svn-base Binary files differ. diff --git a/.svn/pristine/38/3801885c4627d7d16c7b37b06bf21efe4f01aa5e.svn-base b/.svn/pristine/38/3801885c4627d7d16c7b37b06bf21efe4f01aa5e.svn-base Binary files differ. diff --git a/.svn/pristine/38/382c571b503cea1bf5b60e22020f57bee8fbd715.svn-base b/.svn/pristine/38/382c571b503cea1bf5b60e22020f57bee8fbd715.svn-base Binary files differ. diff --git a/.svn/pristine/38/384eeb43128e98f0c054a41dea3bc71cfd74bb16.svn-base b/.svn/pristine/38/384eeb43128e98f0c054a41dea3bc71cfd74bb16.svn-base Binary files differ. diff --git a/.svn/pristine/38/385c44c233f361b4588a424ca33f56fe3f88bb3c.svn-base b/.svn/pristine/38/385c44c233f361b4588a424ca33f56fe3f88bb3c.svn-base @@ -1,27 +0,0 @@ -#ifndef LAYER_H -#define LAYER_H - -#include "Utils.h" -#include "Console.h" - -class Layer -{ -public: - - SDL_Texture* mTex; - int mParallaxFactor; - -}; - -class SlidingLayer : public Layer -{ -public: - - int mXspd; - int mYspd; - - int mXoffset; - int mYoffeset; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/39/3971b1ca32073d379c5c8c8c03db2cdca3e14776.svn-base b/.svn/pristine/39/3971b1ca32073d379c5c8c8c03db2cdca3e14776.svn-base Binary files differ. diff --git a/.svn/pristine/3a/3a0f1e13bcde92e7e944f9b285c629d9638d7bc0.svn-base b/.svn/pristine/3a/3a0f1e13bcde92e7e944f9b285c629d9638d7bc0.svn-base @@ -1 +0,0 @@ -#include "ActorHandle.h"- \ No newline at end of file diff --git a/.svn/pristine/3a/3aaad2af917500ad951c68c65f9c5684683cf50a.svn-base b/.svn/pristine/3a/3aaad2af917500ad951c68c65f9c5684683cf50a.svn-base Binary files differ. diff --git a/.svn/pristine/3b/3b3c9ae60987f2daf659c13853e364c2d6a54129.svn-base b/.svn/pristine/3b/3b3c9ae60987f2daf659c13853e364c2d6a54129.svn-base Binary files differ. diff --git a/.svn/pristine/3b/3b6e567127b6d919eed864106e341366fc6f7c6f.svn-base b/.svn/pristine/3b/3b6e567127b6d919eed864106e341366fc6f7c6f.svn-base Binary files differ. diff --git a/.svn/pristine/3b/3bccb653cc443c53fb0fb257d5b641b1fe076892.svn-base b/.svn/pristine/3b/3bccb653cc443c53fb0fb257d5b641b1fe076892.svn-base @@ -1,68 +0,0 @@ -#ifndef CONSOLE_H -#define CONSOLE_H - -#include "Utils.h" - - -#define LINE_LIMIT 40 -#define LINE_SIZE 100 -#define CONSOLE_TEXT_LIMIT ((LINE_LIMIT+1)*LINE_SIZE) - -class ConsoleStringManager -{ -public: - ConsoleStringManager(); - - void AddLine(char* string, int CharCount); - - void ConsoleLog(char* msg); - - void ConsolePrintf(char* fmt, ...); - - char* GetLine(int x) - { - return mLines[x]; - } - - int GetNextLineIndex() - { - return mNextLineIndex; - } - -protected: - - char* mLines[LINE_LIMIT]; - int mNextLineIndex; - - char mText[CONSOLE_TEXT_LIMIT]; - char* mEndPointer; - - -}; - -class Console -{ -public: - Console() {} - - Console(char* filename, int ptsize, SDL_Color Text, SDL_Color BG); - - void ConsPrintf(char* fmt, ...); - - void DrawConsole(SDL_Renderer* ren); - - void DrawConsoleReadout(SDL_Renderer* ren, int x, int y); - -protected: - TTF_Font* mFont; - SDL_Color mText; - SDL_Color mBG; - SDL_Rect mTextRect; - SDL_Rect mLinePosRect; - ConsoleStringManager mCSM; -}; - - -extern Console* gCons; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/3c/3cc6d476a2e91d93c5f93faa38d7d00992cb7bad.svn-base b/.svn/pristine/3c/3cc6d476a2e91d93c5f93faa38d7d00992cb7bad.svn-base Binary files differ. diff --git a/.svn/pristine/3c/3ce27328f8b42f0496be41c64255890bad759d8b.svn-base b/.svn/pristine/3c/3ce27328f8b42f0496be41c64255890bad759d8b.svn-base Binary files differ. diff --git a/.svn/pristine/3c/3cfaf1b8739b6623395b3c02b1b8cb0df4839226.svn-base b/.svn/pristine/3c/3cfaf1b8739b6623395b3c02b1b8cb0df4839226.svn-base @@ -1,132 +0,0 @@ -#include"Utils.h" -#include"Console.h" -#include "MiscDraw.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)floor((float)(act.GetDrawHeight()) * ((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)floor((float)(act.GetDrawWidth()) * ((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)floor((float)(act.GetDrawX() + act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)floor((float)(act.GetDrawY() + act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - return ScreenPos; -} - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW) -{ - int imgH; - int imgW; - SDL_QueryTexture(img, NULL, NULL, &imgW, &imgH); - - SDL_Rect clip; - clip.h = (int)(cam.GetCamView()->h * scale); - clip.w = (int)(cam.GetCamView()->w * scale); - clip.x = (int)(cam.GetCamX() / ( (worldW - cam.GetCamView()->w) / ( imgW - (cam.GetCamView()->w)*scale) )); - clip.y = (int)(cam.GetCamY() / ( (worldH - cam.GetCamView()->h) / ( imgH - (cam.GetCamView()->h)*scale) )); - -// gCons->ConsPrintf("para bound x: %i - %i\n", clip.x, clip.w + clip.x); -// gCons->ConsPrintf("para bound y: %i - %i\n", clip.y, clip.h + clip.y); - - SDL_RenderCopy(ren, img, &clip, NULL); - - return true; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame* RenderFrame = act.GetFrame(); - - if (RenderFrame != NULL) - { - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); //this is why LEFT and RIGHT have thier specific definitions - SDL_SetTextureAlphaMod(RenderFrame->FrameSource, act.GetOpacity()); - - SDL_RenderCopyEx(ren, RenderFrame->FrameSource, &(RenderFrame->FrameRect), &ScreenPos, 0, NULL, flip); - Node** hat_array = act.GetHats()->Dump(); - for (int i = 0; i < act.GetHats()->Size(); i++) - { - if (((Hat*)( hat_array[i]->GetData() ))->IsEnabled()) - { - DrawActor(ren, *(Actor*)(hat_array[i]->GetData()), cam); - } - } - } - else - { - //gCons->ConsPrintf("Actor frame is null\n"); - } - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} - -bool DrawText(SDL_Renderer* ren, TTF_Font* font, char* text, SDL_Color Text_c, SDL_Color Back_c) -{ - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(font, text, Text_c, Back_c); - if (!LineSur) - { - error = SDL_GetError(); - } - - SDL_SetColorKey(LineSur, SDL_TRUE, SDL_MapRGB(LineSur->format, 0xFF, 0x00, 0xFF)); - - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - - SDL_Rect TextRect; - - if (SDL_QueryTexture(LineTex, NULL, NULL, &TextRect.w, &TextRect.h)) - { - error = SDL_GetError(); - } - - SDL_Rect LinePosRect; - - LinePosRect.w = TextRect.w; - LinePosRect.h = TextRect.h; - LinePosRect.x = 0; - LinePosRect.y = 0; - //Why comment? -// if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) -// { -// error = SDL_GetError(); -// } - SDL_DestroyTexture(LineTex); - - return false; -} diff --git a/.svn/pristine/3d/3d1c2770a54115f98760416b08c80d2d8ab98435.svn-base b/.svn/pristine/3d/3d1c2770a54115f98760416b08c80d2d8ab98435.svn-base Binary files differ. diff --git a/.svn/pristine/3d/3d1eead6c14ed232d033559d554ca38a7e7c0aa8.svn-base b/.svn/pristine/3d/3d1eead6c14ed232d033559d554ca38a7e7c0aa8.svn-base Binary files differ. diff --git a/.svn/pristine/3e/3eb4a92d74e69a9adb1cc639393cb29be3c958c7.svn-base b/.svn/pristine/3e/3eb4a92d74e69a9adb1cc639393cb29be3c958c7.svn-base @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>console.cpp</FILENAME> - <LINE>51</LINE> - <COLUMN>8</COLUMN> - </SFA> - <DEFECTCODE>6306</DEFECTCODE> - <DESCRIPTION>Incorrect call to 'sprintf': consider using 'vsprintf' which accepts a va_list as an argument.</DESCRIPTION> - <FUNCTION>ConsoleStringManager::ConsolePrintf</FUNCTION> - <DECORATED>?ConsolePrintf@ConsoleStringManager@@QAAXPADZZ</DECORATED> - <FUNCLINE>45</FUNCLINE> - <PATH></PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/3f/3f59b108f92f8357fe0e533161c328fecd39c416.svn-base b/.svn/pristine/3f/3f59b108f92f8357fe0e533161c328fecd39c416.svn-base @@ -1,643 +0,0 @@ -#include "Level.h" - -Actor* FindRef(std::vector<ActorName*> refs, char* name) -{ - for (int i = 0; i < (int)refs.size(); i++) - { - if (strcmp(refs.at(i)->name, name) == false) - { - return refs.at(i)->act; - } - } - - return NULL; -} - -bool Level::LoadWorld(cJSON* level) -{ - cJSON* world = cJSON_GetObjectItem(level, "world"); - mHeight = cJSON_GetObjectItem(world, "world_h")->valueint; - mWidth = cJSON_GetObjectItem(world, "world_w")->valueint; - - - - char * ter = cJSON_GetObjectItem(world, "terrain")->valuestring; - mColMap = LoadSurfaceBMP(ter); - - cJSON* backs = cJSON_GetObjectItem(world, "backgrounds"); - for (int i = 0; i < cJSON_GetArraySize(backs); i++) - { - cJSON* layer = cJSON_GetArrayItem(backs, i); - char* back = cJSON_GetObjectItem(layer, "back")->valuestring; - - SDL_Texture* back_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(back)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(back_tex, alpha); - } - - mBack.push_back(back_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_back.push_back(p_factor); - } - - cJSON* fores = cJSON_GetObjectItem(world, "foregrounds"); - for (int i = 0; i < cJSON_GetArraySize(fores); i++) - { - cJSON* layer = cJSON_GetArrayItem(fores, i); - char* fore = cJSON_GetObjectItem(layer, "fore")->valuestring; - - SDL_Texture* fore_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(fore)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(fore_tex, alpha); - } - - mFore.push_back(fore_tex); - } - - cJSON* overs = cJSON_GetObjectItem(world, "overlays"); - for (int i = 0; i < cJSON_GetArraySize(overs); i++) - { - cJSON* layer = cJSON_GetArrayItem(overs, i); - char* overs = cJSON_GetObjectItem(layer, "over")->valuestring; - - SDL_Texture* over_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(overs)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(over_tex, alpha); - } - - mOver.push_back(over_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_over.push_back(p_factor); - } - return true; -} - -bool Level::LoadCamera(cJSON* level) -{ - cJSON* camera = cJSON_GetObjectItem(level, "camera"); - int camx = cJSON_GetObjectItem(camera, "x")->valueint; - int camy = cJSON_GetObjectItem(camera, "y")->valueint; - int camh = cJSON_GetObjectItem(camera, "h")->valueint; - int camw = cJSON_GetObjectItem(camera, "w")->valueint; - - mCam = Camera(camh, camw, camx, camy, mHeight, mWidth); - - cJSON* blockers = cJSON_GetObjectItem(camera, "blockers"); - - for (int i = 0; i < cJSON_GetArraySize(blockers); i++) - { - cJSON* blocker = cJSON_GetArrayItem(blockers, i); - SDL_Rect* r = new SDL_Rect; - r->h = cJSON_GetObjectItem(blocker, "h")->valueint; - r->w = cJSON_GetObjectItem(blocker, "w")->valueint; - r->x = cJSON_GetObjectItem(blocker, "x")->valueint; - r->y = cJSON_GetObjectItem(blocker, "y")->valueint; - - mCam.LogBlocker(r); - } - - return true; -} - -bool Level::LoadAnimations(cJSON* level) -{ - cJSON* animations = cJSON_GetObjectItem(level, "animations"); - mAnim_names = (char**)malloc(cJSON_GetArraySize(animations) * sizeof(char*)); - for (int i = 0; i < cJSON_GetArraySize(animations); i++) - { - cJSON* anim_pack = cJSON_GetArrayItem(animations, i); - mAnim_names[i] = cJSON_GetObjectItem(anim_pack, "pack_name")->valuestring; - //gCons->ConsPrintf("Animation Pack Name: %s\n", anim_names[i]); - - cJSON* frame_size = cJSON_GetObjectItem(anim_pack, "frame_size"); - int h = cJSON_GetObjectItem(frame_size, "h")->valueint; - int w = cJSON_GetObjectItem(frame_size, "w")->valueint; - - cJSON* col_data = cJSON_GetObjectItem(anim_pack, "col_data"); - int off_x = cJSON_GetObjectItem(col_data, "off_x")->valueint; - int off_y = cJSON_GetObjectItem(col_data, "off_y")->valueint; - int col_h = cJSON_GetObjectItem(col_data, "col_h")->valueint; - int col_w = cJSON_GetObjectItem(col_data, "col_w")->valueint; - - cJSON* anim_set = cJSON_GetObjectItem(anim_pack, "anim_set"); - cJSON* special_anims = cJSON_GetObjectItem(anim_pack, "special_anims"); - - int anim_count = cJSON_GetArraySize(anim_set); - int special_anim_count = cJSON_GetArraySize(special_anims); - int total_anims = (anim_count + special_anim_count); - - - FrameSet* frame_data = (FrameSet*)malloc( (total_anims)* sizeof(FrameSet)); - int* Index = (int*)malloc( (total_anims) * sizeof(int)); - - //int j; - for (int j = 0; j < anim_count; j++) - { - cJSON* anim = cJSON_GetArrayItem(anim_set, j); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - //int h = cJSON_GetObjectItem(anim, "h")->valueint; - //int w = cJSON_GetObjectItem(anim, "w")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - frame_data[j] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - Index[j] = id; - } - - for (int k= 0; k < (special_anim_count); k++) - { - cJSON* anim = cJSON_GetArrayItem(special_anims, k); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - h = cJSON_GetObjectItem(anim, "custom_h")->valueint; - w = cJSON_GetObjectItem(anim, "custom_W")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - - frame_data[anim_count + k] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - - Index[anim_count + k] = id; - - } - - AnimDataPack* pack = new AnimDataPack(total_anims, frame_data, Index); - pack->SetColData(off_x, off_y, col_h, col_w); - mAnimData.push_back(pack); - - - LoadAnimGraph(anim_pack); - } - - return true; -} - -bool Level::LoadAnimGraph(cJSON* anim_pack) -{ - AnimGraphData* anim_g = new AnimGraphData( *mAnimData.back() ); - - cJSON* loop_ids = cJSON_GetObjectItem(anim_pack, "loop_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(loop_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(loop_ids, i)->valuestring); - anim_g->DefineLoop(id); - } - anim_g->CreateTranisitionMatrix(); - - cJSON* transition_ids = cJSON_GetObjectItem(anim_pack, "transition_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(transition_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(transition_ids, i)->valuestring); - anim_g->DefineTransitions(id); - } - - cJSON* fireables_ids = cJSON_GetObjectItem(anim_pack, "fireables_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(fireables_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(fireables_ids, i)->valuestring); - anim_g->DefineFireables(id); - } - - cJSON* anim_graph = cJSON_GetObjectItem(anim_pack, "anim_graph"); - for (int i = 0; i < (int)cJSON_GetArraySize(anim_graph); i++) - { - cJSON* loop = cJSON_GetArrayItem(anim_graph, i); - char* loop_name = cJSON_GetObjectItem(loop, "loop_name")->valuestring; - int init_id = ConvertStringToSymbol(loop_name); - - cJSON* transitions = cJSON_GetObjectItem(loop, "transitions"); - for(int j = 0; j < (int)cJSON_GetArraySize(transitions); j++) - { - char* transition = cJSON_GetArrayItem(transitions, j)->valuestring; - int trans_id = ConvertStringToSymbol(transition); - - int target_id = anim_g->GetLoopIDIndex(j); - - anim_g->PopulateTransitionMatrix(init_id, target_id, trans_id); - } - } - mAnimGraphs.push_back(anim_g); - - return false; -} - -bool Level::LoadActors(cJSON* level) -{ - cJSON* actors = cJSON_GetObjectItem(level, "actors"); - std::vector<ActorName*> ActorRefs; - - mAHM = ActorHandleManager(); - mSpatMon = SpatialMonitor(mHeight, mWidth, &mAHM); - - for (int i = 0; i < cJSON_GetArraySize(actors); i++) - { - cJSON* act = cJSON_GetArrayItem(actors, i); - - char* anim_pack = cJSON_GetObjectItem(act, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - AnimGraph* actor_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp(anim_pack, mAnim_names[j])) - { - actor_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(actor_pack != NULL); -#endif - - - SDL_Rect PosRect; - PosRect.x = cJSON_GetObjectItem(act, "x")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y")->valueint; - PosRect.h = actor_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = actor_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - SDL_Rect DrawRect; - DrawRect.x = actor_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = actor_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = actor_pack->GetH(); - DrawRect.w = actor_pack->GetW(); - - ActorName* ref = new ActorName; - ref->name = cJSON_GetObjectItem(act, "name")->valuestring; - - char* type = cJSON_GetObjectItem(act, "type")->valuestring; - if (!strcmp(type, "player")) - { - Player* actor = new Player(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); //needs a delete - ref->act = actor; - //mSpatMon.LogActor(*actor); - mInput->mFeed.Subscribe(actor); - - mCam.SetFollowTarget(actor); - mCast.push_back(actor); - mPlayer = actor; - - AnimGraph* hat_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("sword", mAnim_names[j])) - { - hat_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - actor->SetSword(actor->AttachHat(new sword(hat_pack, actor, &mAHM, NULL, &mPrtLib, &mSoundLib))); - } - else if (!strcmp(type, "test_blocker")) - { - Test_Blocker* actor = new Test_Blocker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "gate")) //Gate is a multiactor entity. - { - int dir = ConvertStringToSymbol(cJSON_GetObjectItem(act, "dir")->valuestring); - Gate* actor = new Gate(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, dir); - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - actor_pack->mFeed.Subscribe(actor); - - AnimGraph* winch_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("winch", mAnim_names[j])) - { - winch_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - PosRect.h = winch_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = winch_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - PosRect.y -= 29; - if (dir == LEFT) - { - PosRect.x += 7; - } - else //dir == right - { - PosRect.x -= (21); - } - - DrawRect.x = winch_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = winch_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = winch_pack->GetH(); - DrawRect.w = winch_pack->GetW(); - Winch* actor2 = new Winch(winch_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, actor, dir); - ref->act = actor2; //Gate ref refers to the paired winch because its more useful - actor2->mFeed.Subscribe(actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor2); - } - else if (!strcmp(type, "gateman")) //Gateman must be attached to a gate. currently hardcoded to actor name "gate0" - { - Gateman* actor = new Gateman(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring, FindRef(ActorRefs, "gate0")->GetHandle()); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "talker")) - { - Talker* actor = new Talker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "door")) - { - int x_off = cJSON_GetObjectItem(act, "x_off")->valueint; - int y_off = cJSON_GetObjectItem(act, "y_off")->valueint; - Door* actor = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - ref->act = actor; - PosRect.x = cJSON_GetObjectItem(act, "x2")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y2")->valueint; - Door* actor2 = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - actor->SetTeleDest(actor2->GetTelePos()); - actor2->SetTeleDest(actor->GetTelePos()); - SDL_Rect* r = new SDL_Rect; - r->h = 0; - r->w = 0; - r->x = 100; - r->y = 100; - //actor->SetTeleDest(r); - //mSpatMon.LogActor(*actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor); - mCast.push_back(actor2); - } - else if (!strcmp(type, "sludge_seal")) - { - Sludge_Seal* actor = new Sludge_Seal(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "pursuer")) - { - Pursuer* actor = new Pursuer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "wanderer")) - { - Wanderer* actor = new Wanderer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "rabbit")) - { - Rabbit* actor = new Rabbit(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else - { - gCons->ConsPrintf("Failed to load actor: %s is an unrecognized actor type\n", type); - } - ActorRefs.push_back(ref); - } - - return true; -} - -bool Level::LoadParticles(cJSON* level) -{ - cJSON* particles = cJSON_GetObjectItem(level, "particles"); - for (int i = 0; i < cJSON_GetArraySize(particles); i++) - { - cJSON* prt = cJSON_GetArrayItem(particles, i); - - char* anim_pack = cJSON_GetObjectItem(prt, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - //AnimDataPack* particle_anims = NULL; - AnimGraph* particle_anims = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - //gCons->ConsPrintf("stored set name: %s\n", anim_names[j]); - if (!strcmp(anim_pack, mAnim_names[j])) - { - particle_anims = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(particle_anims != NULL); -#endif - int prth = particle_anims->GetH(); - int prtw = particle_anims->GetW(); - - ParticleData* pd = new ParticleData; - pd->AnimData = particle_anims; - pd->Height = prth; - pd->Width = prtw; - pd->spat = &mSpatMon; - - mPrtLib.LogParticleData(pd, anim_pack); - return true; - } - return false; -} - -bool Level::LoadSounds(cJSON* level) -{ - cJSON* sounds = cJSON_GetObjectItem(level, "sounds"); - - for (int i = 0; i < cJSON_GetArraySize(sounds); i++) - { - cJSON* sound = cJSON_GetArrayItem(sounds, i); - char* fname = cJSON_GetObjectItem(sound, "filename")->valuestring; - char* name = cJSON_GetObjectItem(sound, "name" )->valuestring; - int vol = cJSON_GetObjectItem(sound, "vol" )->valueint; - - Mix_Chunk* snd = new Mix_Chunk; - snd = LoadSound(fname); - Mix_VolumeChunk(snd, vol); - - mSoundLib.LogSoundData(snd, name); - } - - cJSON* sound_regions = cJSON_GetObjectItem(level, "sound_regions"); - - for (int i = 0; i < cJSON_GetArraySize(sound_regions); i++) - { - cJSON* region = cJSON_GetArrayItem(sound_regions, i); - SDL_Rect reg_rect; - reg_rect.x = cJSON_GetObjectItem(region, "x")->valueint; - reg_rect.y = cJSON_GetObjectItem(region, "y")->valueint; - reg_rect.h = cJSON_GetObjectItem(region, "h")->valueint; - reg_rect.w = cJSON_GetObjectItem(region, "w")->valueint; - - RegionSound* rs = mSoundLib.SpawnRegionSound(reg_rect); - - cJSON* tracks = cJSON_GetObjectItem(region, "tracks"); - for (int j = 0; j < cJSON_GetArraySize(tracks); j++) - { - char* track = cJSON_GetArrayItem(tracks, j)->valuestring; - rs->LogTrack(mSoundLib.GetSoundData(track)); - } - } - - return false; -} - -bool Level::LoadHud(cJSON* level) -{ - cJSON* texs = cJSON_GetObjectItem(level, "hud_textures"); - - //Load LifeMeter Widget - char* life_base = cJSON_GetObjectItem(texs, "life_base")->valuestring; - char* life_bar = cJSON_GetObjectItem(texs, "life_bar" )->valuestring; - - SDL_Rect LifePos; - LifePos.h = 15; - LifePos.w = 250; - LifePos.x = 25; - LifePos.y = 25; - mHUD.LogWidget( new LifeMeter(mPlayer, LifePos, mRen, life_base, life_bar) ); - // - - //Load Fader widget - char* black = cJSON_GetObjectItem(texs, "fader_black")->valuestring; - char* red = cJSON_GetObjectItem(texs, "fader_red")->valuestring; - Fader* f = new Fader(mRen, black, red); - mPlayer->mFeed.Subscribe(f); - mHUD.LogWidget(f); - // - - //Load Dialogue Widget - char* text_box = cJSON_GetObjectItem(texs, "text_box")->valuestring; - - SDL_Rect DialoguePos; - DialoguePos.h = 0; - DialoguePos.w = 0; - DialoguePos.x = 300; - DialoguePos.y = 200; - - SDL_Color fg = {0,0,0}; - - Dialogue* d = new Dialogue(DialoguePos, mRen, "Tapestry.ttf", text_box, fg, mPlayer); - mPlayer->mFeed.Subscribe(d); - - mHUD.LogWidget(d); - // - - return true; -} - -bool Level::Load(const char* filename) -{ - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* level = cJSON_GetObjectItem(root, "level"); - - LoadWorld(level); - - LoadCamera(level); - - gDiagDraw = new DiagnosticDraw(mRen, mCam); - - LoadAnimations(level); - - LoadActors(level); - - LoadParticles(level); - - LoadSounds(level); - - LoadHud(level); - -// int cells[9]; - -// mSpatMon.GetAdjacentCells(36, cells); - - return true; -} - -bool Level::Update() -{ - ///Update Actors - for (int i = 0; i < (int)(mCast.size()); i++) - { - mCast.at(i)->ActorUpdate(); - } - ///Update Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - mPrtLib.GetParticles()->at(i)->ActorUpdate(); - } - - ///Draw HUD - mHUD.UpdateWidgets(); - - mCam.ActorFollow(mRen, 150, 75); - - ///Draw Backgrounds - for (int i = 0; i < (int)mBack.size(); i++) - { - DrawParallax(mRen, mBack.at(i), mCam, mParallax_back.at(i), mHeight, mWidth); - } - - ///Draw Foregrounds - for (int i = 0; i < (int)mFore.size(); i++) - { - SDL_RenderCopy(mRen, mFore.at(i), mCam.GetCamView(), NULL); - } - - ///Draw Actors - for (int i = 0; i < (int)mCast.size(); i++) - { - DrawActor(mRen, *mCast.at(i), mCam); - } - - ///Draw Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - DrawActor(mRen, *mPrtLib.GetParticles()->at(i), mCam); - } - - ///Draw overlays - for (int l = 0; l < (int)mOver.size(); l++) - { - DrawParallax(mRen, mOver.at(l), mCam, mParallax_over.at(l), mHeight, mWidth); - } - - mHUD.DrawWidgets(); - - ///Play Sounds - mSoundLib.UpdateRegionSounds(mPlayer->GetPosition()); - mSoundLib.UpdatePointSounds(mCam.GetCenterX(), mCam.GetCenterY()); - - //gCons->ConsPrintf("%d channels are playing\n", Mix_Playing(-1)); - - ///Draw Diagnositic rectangles - #ifdef DEBUG - gDiagDraw->Update(); - #endif - - return true; -} - -bool Level::EventProcess(Event eve) -{ - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/3f/3fa05afabb072e25cbcdd9ce534ac8dd347931e4.svn-base b/.svn/pristine/3f/3fa05afabb072e25cbcdd9ce534ac8dd347931e4.svn-base Binary files differ. diff --git a/.svn/pristine/3f/3fc2f2da29c50145a8bb19e2fa1cc956594990a8.svn-base b/.svn/pristine/3f/3fc2f2da29c50145a8bb19e2fa1cc956594990a8.svn-base @@ -1,216 +0,0 @@ -#ifndef EVENT_H -#define EVENT_H - -#include "Utils.h" -#include "Console.h" - -enum EventType -{ - UNSUBSCRIBE, - - //ASSIGN_HANDLE, - //GET_ACTOR_ADDRESS, - - ANIM_COMPLETE, - - KEY_DOWN, - KEY_UP, - - ACTOR_COLLISION, - SENSOR_COLLISION, - PLAYER_CHECK, - PLAYER_CONFIRM, - - MOVED_THIS_FRAME, - CHECK_RECT_SENSOR, - CHECK_BLOCKERS, - - CAMERA_TARGET, - - EMIT_PARTICLE, - CREATE_PARTICLE, - - CREATE_POINT_SOUND, - ACTOR_PLAY_SOUND, - SOUND_COMPLETE, - - SWITCH, - - DIALOGUE, - SCROLL, - TERMINATE_DIALOGUE, - - FADE, - - TELEPORT, - - INTERACT, - - DAMAGE, - - SPAWN, - DEATH - -}; - -enum SensorType -{ - LOS, //Line Of Sight - Attack, - Touch, -}; - -struct SensorData -{ - SensorType st; - SDL_Rect* sensor; - int id; -}; - -struct SensorResponse -{ - SensorType st; - int id; -}; - -struct PointSpawnData -{ - int x; - int y; - char* name; - char* type; -}; - -struct DialogueData -{ - char* str; - int talkerID; -}; - -union EventData -{ - int i; - void* p; - bool b; - char* str; - SDL_Rect* rect; - SensorData sd; - SensorResponse sr; - PointSpawnData psd; - DialogueData dd; -}; - -class EventReceiver; //Forward Declare event receiver - -class Event -{ -public: - Event() : mType(), mEvData() {} //, mReturnAddress(NULL) {} - - Event(EventType EvType) : mType(EvType), mEvData() {} - - //Event(EventType EvType, ActHandle ReturnAddress = NULL) : mType(EvType), mEvData(), mReturnAddress(ReturnAddress) {} - - Event(EventType EvType, EventData EvData, int ReturnAddress = NULL) : mType(EvType), mEvData(EvData) {}//, mReturnAddress(ReturnAddress) {} - - Event(EventType EvType, int i) : mType(EvType)//, mReturnAddress(NULL) - { - mEvData.i = i; - } - - Event(EventType EvType, void* P) : mType(EvType)//, mReturnAddress(NULL) - { - mEvData.p = P; - } - - Event(EventType EvType, char* str) : mType(EvType)//, mReturnAddress(NULL) - { - mEvData.str = str; - } - - Event(EventType EvType, SensorType SeType, SDL_Rect* sensor, int ID) : mType(EvType)//, mReturnAddress(NULL) //CHECK_RECT_SENSOR constructor - { - mEvData.sd.st = SeType; - mEvData.sd.sensor = sensor; - mEvData.sd.id = ID; - } - - Event(EventType EvType, SensorType SeType, ActHandle ID) : mType(EvType)//, mReturnAddress(NULL) //collision response constructor: SENSOR_COLLISION, - { - mEvData.sr.st = SeType; - mEvData.sr.id = ID; - } - - Event(EventType EvType, char* type, char* name, int x, int y) : mType(EvType)//, mReturnAddress(NULL) - { - mEvData.psd.x = x; - mEvData.psd.y = y; - mEvData.psd.name = name; - mEvData.psd.type = type; - } - - Event(EventType EvType, char* str, int talkID) : mType(EvType)//, mReturnAddress(NULL) - { - mEvData.dd.str = str; - mEvData.dd.talkerID = talkID; - } - - EventType* GetEventType() - { - return &mType; - } - - EventData* GetEventData() - { - return &mEvData; - } - -// int GetReturnAddress() -// { -// if(mReturnAddress != NULL) -// { -// return mReturnAddress; -// } -// gCons->ConsPrintf("No return address listed for this event\n"); -// return NULL; -// } - -protected: - - EventType mType; - EventData mEvData; -// ActHandle mReturnAddress; -}; - -class EventReceiver -{ -public: - - virtual bool EventProcess(Event eve) = 0; -}; - -class EventFeed : EventReceiver -{ -public: - - EventFeed() : mSubs(), mNumberOfSubs(0) {} - - bool Subscribe(EventReceiver* sub); - - bool Unsubscribe(EventReceiver* sub); - - bool EventProcess(Event eve); - -protected: - - std::vector<EventReceiver*> mSubs; - int mNumberOfSubs; -}; - -class EventManager -{ -public: -protected: -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/3f/3fc8a29c7030acceedce784e4463070234da853c.svn-base b/.svn/pristine/3f/3fc8a29c7030acceedce784e4463070234da853c.svn-base Binary files differ. diff --git a/.svn/pristine/3f/3fceae0bc8bf639efbfd465de17c2c2db6df418d.svn-base b/.svn/pristine/3f/3fceae0bc8bf639efbfd465de17c2c2db6df418d.svn-base Binary files differ. diff --git a/.svn/pristine/3f/3fd084be6aa6c7042511dab80406b0d207aa514c.svn-base b/.svn/pristine/3f/3fd084be6aa6c7042511dab80406b0d207aa514c.svn-base Binary files differ. diff --git a/.svn/pristine/3f/3fe9c91750f82c3f82efe8af3fe1246c4fce905e.svn-base b/.svn/pristine/3f/3fe9c91750f82c3f82efe8af3fe1246c4fce905e.svn-base Binary files differ. diff --git a/.svn/pristine/40/403ad69ceb469f37242c5551a52f797e5893d0f4.svn-base b/.svn/pristine/40/403ad69ceb469f37242c5551a52f797e5893d0f4.svn-base Binary files differ. diff --git a/.svn/pristine/40/403ee99d58af967f2ddbeae01e0816a62e755f1e.svn-base b/.svn/pristine/40/403ee99d58af967f2ddbeae01e0816a62e755f1e.svn-base Binary files differ. diff --git a/.svn/pristine/40/40a3713f071de8ce5d7d670d12e88f055e755417.svn-base b/.svn/pristine/40/40a3713f071de8ce5d7d670d12e88f055e755417.svn-base Binary files differ. diff --git a/.svn/pristine/40/40cfe0400580ae24eb511be746e3d45bf4155927.svn-base b/.svn/pristine/40/40cfe0400580ae24eb511be746e3d45bf4155927.svn-base Binary files differ. diff --git a/.svn/pristine/41/413c6610da6793e4a6efc64b97379c1ed1a33e3b.svn-base b/.svn/pristine/41/413c6610da6793e4a6efc64b97379c1ed1a33e3b.svn-base Binary files differ. diff --git a/.svn/pristine/41/41958e4272ef3be394bca65342bcfb69cd66b2b1.svn-base b/.svn/pristine/41/41958e4272ef3be394bca65342bcfb69cd66b2b1.svn-base Binary files differ. diff --git a/.svn/pristine/41/41e69a270bbce93b47e2c592b391785b3717c5da.svn-base b/.svn/pristine/41/41e69a270bbce93b47e2c592b391785b3717c5da.svn-base Binary files differ. diff --git a/.svn/pristine/42/425bb869e72b681bb6157c077e2de8bb03a569a1.svn-base b/.svn/pristine/42/425bb869e72b681bb6157c077e2de8bb03a569a1.svn-base Binary files differ. diff --git a/.svn/pristine/42/42e693c8333e9be82b863019e8f841886ee35f1b.svn-base b/.svn/pristine/42/42e693c8333e9be82b863019e8f841886ee35f1b.svn-base Binary files differ. diff --git a/.svn/pristine/42/42e9bdf04815ecd16ff51561355da9d899fceaec.svn-base b/.svn/pristine/42/42e9bdf04815ecd16ff51561355da9d899fceaec.svn-base Binary files differ. diff --git a/.svn/pristine/43/439173fbd745c507d6ebdc3055307a4fdb35b1b7.svn-base b/.svn/pristine/43/439173fbd745c507d6ebdc3055307a4fdb35b1b7.svn-base Binary files differ. diff --git a/.svn/pristine/43/43a6fc7d6f7f58fbfaa2e184158ce6b97c0300ec.svn-base b/.svn/pristine/43/43a6fc7d6f7f58fbfaa2e184158ce6b97c0300ec.svn-base @@ -1,600 +0,0 @@ -#include "Level.h" - -Actor* FindRef(std::vector<ActorName*> refs, char* name) -{ - for (int i = 0; i < (int)refs.size(); i++) - { - if (strcmp(refs.at(i)->name, name) == false) - { - return refs.at(i)->act; - } - } - - return NULL; -} - -bool Level::LoadWorld(cJSON* level) -{ - cJSON* world = cJSON_GetObjectItem(level, "world"); - mHeight = cJSON_GetObjectItem(world, "world_h")->valueint; - mWidth = cJSON_GetObjectItem(world, "world_w")->valueint; - - - - char * ter = cJSON_GetObjectItem(world, "terrain")->valuestring; - mColMap = LoadSurfaceBMP(ter); - - cJSON* backs = cJSON_GetObjectItem(world, "backgrounds"); - for (int i = 0; i < cJSON_GetArraySize(backs); i++) - { - cJSON* layer = cJSON_GetArrayItem(backs, i); - char* back = cJSON_GetObjectItem(layer, "back")->valuestring; - - SDL_Texture* back_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(back)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(back_tex, alpha); - } - - mBack.push_back(back_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_back.push_back(p_factor); - } - - cJSON* fores = cJSON_GetObjectItem(world, "foregrounds"); - for (int i = 0; i < cJSON_GetArraySize(fores); i++) - { - cJSON* layer = cJSON_GetArrayItem(fores, i); - char* fore = cJSON_GetObjectItem(layer, "fore")->valuestring; - - SDL_Texture* fore_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(fore)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(fore_tex, alpha); - } - - mFore.push_back(fore_tex); - } - - cJSON* overs = cJSON_GetObjectItem(world, "overlays"); - for (int i = 0; i < cJSON_GetArraySize(overs); i++) - { - cJSON* layer = cJSON_GetArrayItem(overs, i); - char* overs = cJSON_GetObjectItem(layer, "over")->valuestring; - - SDL_Texture* over_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(overs)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(over_tex, alpha); - } - - mOver.push_back(over_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_over.push_back(p_factor); - } - return true; -} - -bool Level::LoadCamera(cJSON* level) -{ - cJSON* camera = cJSON_GetObjectItem(level, "camera"); - int camx = cJSON_GetObjectItem(camera, "x")->valueint; - int camy = cJSON_GetObjectItem(camera, "y")->valueint; - int camh = cJSON_GetObjectItem(camera, "h")->valueint; - int camw = cJSON_GetObjectItem(camera, "w")->valueint; - - mCam = Camera(camh, camw, camx, camy, mHeight, mWidth); - - cJSON* blockers = cJSON_GetObjectItem(camera, "blockers"); - - for (int i = 0; i < cJSON_GetArraySize(blockers); i++) - { - cJSON* blocker = cJSON_GetArrayItem(blockers, i); - SDL_Rect* r = new SDL_Rect; - r->h = cJSON_GetObjectItem(blocker, "h")->valueint; - r->w = cJSON_GetObjectItem(blocker, "w")->valueint; - r->x = cJSON_GetObjectItem(blocker, "x")->valueint; - r->y = cJSON_GetObjectItem(blocker, "y")->valueint; - - mCam.LogBlocker(r); - } - - return true; -} - -bool Level::LoadAnimations(cJSON* level) -{ - cJSON* animations = cJSON_GetObjectItem(level, "animations"); - mAnim_names = (char**)malloc(cJSON_GetArraySize(animations) * sizeof(char*)); - for (int i = 0; i < cJSON_GetArraySize(animations); i++) - { - cJSON* anim_pack = cJSON_GetArrayItem(animations, i); - mAnim_names[i] = cJSON_GetObjectItem(anim_pack, "pack_name")->valuestring; - //gCons->ConsPrintf("Animation Pack Name: %s\n", anim_names[i]); - - cJSON* frame_size = cJSON_GetObjectItem(anim_pack, "frame_size"); - int h = cJSON_GetObjectItem(frame_size, "h")->valueint; - int w = cJSON_GetObjectItem(frame_size, "w")->valueint; - - cJSON* col_data = cJSON_GetObjectItem(anim_pack, "col_data"); - int off_x = cJSON_GetObjectItem(col_data, "off_x")->valueint; - int off_y = cJSON_GetObjectItem(col_data, "off_y")->valueint; - int col_h = cJSON_GetObjectItem(col_data, "col_h")->valueint; - int col_w = cJSON_GetObjectItem(col_data, "col_w")->valueint; - - cJSON* anim_set = cJSON_GetObjectItem(anim_pack, "anim_set"); - - FrameSet* frame_data = (FrameSet*)malloc(cJSON_GetArraySize(anim_set) * sizeof(FrameSet)); - int* Index = (int*)malloc(cJSON_GetArraySize(anim_set) * sizeof(int)); - - for (int j = 0; j < cJSON_GetArraySize(anim_set); j++) - { - cJSON* anim = cJSON_GetArrayItem(anim_set, j); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - //int h = cJSON_GetObjectItem(anim, "h")->valueint; - //int w = cJSON_GetObjectItem(anim, "w")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - frame_data[j] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - Index[j] = id; - } - AnimDataPack* pack = new AnimDataPack(cJSON_GetArraySize(anim_set), frame_data, Index); - pack->SetColData(off_x, off_y, col_h, col_w); - mAnimData.push_back(pack); - - - LoadAnimGraph(anim_pack); - } - - return true; -} - -bool Level::LoadAnimGraph(cJSON* anim_pack) -{ - AnimGraphData* anim_g = new AnimGraphData( *mAnimData.back() ); - - cJSON* loop_ids = cJSON_GetObjectItem(anim_pack, "loop_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(loop_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(loop_ids, i)->valuestring); - anim_g->DefineLoop(id); - } - anim_g->CreateTranisitionMatrix(); - - cJSON* transition_ids = cJSON_GetObjectItem(anim_pack, "transition_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(transition_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(transition_ids, i)->valuestring); - anim_g->DefineTransitions(id); - } - - cJSON* anim_graph = cJSON_GetObjectItem(anim_pack, "anim_graph"); - for (int i = 0; i < (int)cJSON_GetArraySize(anim_graph); i++) - { - cJSON* loop = cJSON_GetArrayItem(anim_graph, i); - char* loop_name = cJSON_GetObjectItem(loop, "loop_name")->valuestring; - int init_id = ConvertStringToSymbol(loop_name); - - cJSON* transitions = cJSON_GetObjectItem(loop, "transitions"); - for(int j = 0; j < (int)cJSON_GetArraySize(transitions); j++) - { - char* transition = cJSON_GetArrayItem(transitions, j)->valuestring; - int trans_id = ConvertStringToSymbol(transition); - - int target_id = anim_g->GetLoopIDIndex(j); - - anim_g->PopulateTransitionMatrix(init_id, target_id, trans_id); - } - } - mAnimGraphs.push_back(anim_g); - - return false; -} - -bool Level::LoadActors(cJSON* level) -{ - cJSON* actors = cJSON_GetObjectItem(level, "actors"); - std::vector<ActorName*> ActorRefs; - - mAHM = ActorHandleManager(); - mSpatMon = SpatialMonitor(mHeight, mWidth, &mAHM); - - for (int i = 0; i < cJSON_GetArraySize(actors); i++) - { - cJSON* act = cJSON_GetArrayItem(actors, i); - - char* anim_pack = cJSON_GetObjectItem(act, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - AnimGraph* actor_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp(anim_pack, mAnim_names[j])) - { - actor_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(actor_pack != NULL); -#endif - - - SDL_Rect PosRect; - PosRect.x = cJSON_GetObjectItem(act, "x")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y")->valueint; - PosRect.h = actor_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = actor_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - SDL_Rect DrawRect; - DrawRect.x = actor_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = actor_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = actor_pack->GetH(); - DrawRect.w = actor_pack->GetW(); - - ActorName* ref = new ActorName; - ref->name = cJSON_GetObjectItem(act, "name")->valuestring; - - char* type = cJSON_GetObjectItem(act, "type")->valuestring; - if (!strcmp(type, "player")) - { - Player* actor = new Player(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); //needs a delete - ref->act = actor; - //mSpatMon.LogActor(*actor); - mInput->mFeed.Subscribe(actor); - - - mCam.SetFollowTarget(actor); - mCast.push_back(actor); - mPlayer = actor; - - AnimGraph* hat_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("sword", mAnim_names[j])) - { - hat_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - //actor->SetSword(actor->AttachHat(new sword(hat_pack, actor, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib))); - } - else if (!strcmp(type, "test_blocker")) - { - Test_Blocker* actor = new Test_Blocker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "gate")) //Gate is a multiactor entity. - { - int dir = ConvertStringToSymbol(cJSON_GetObjectItem(act, "dir")->valuestring); - Gate* actor = new Gate(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, dir); - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - actor_pack->mFeed.Subscribe(actor); - - AnimGraph* winch_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("winch", mAnim_names[j])) - { - winch_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - PosRect.h = winch_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = winch_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - PosRect.y -= 29; - if (dir == LEFT) - { - PosRect.x += 7; - } - else //dir == right - { - PosRect.x -= (21); - } - - DrawRect.x = winch_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = winch_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = winch_pack->GetH(); - DrawRect.w = winch_pack->GetW(); - Winch* actor2 = new Winch(winch_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, actor, dir); - ref->act = actor2; //Gate ref refers to the paired winch because its more useful - actor2->mFeed.Subscribe(actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor2); - } - else if (!strcmp(type, "gateman")) //Gateman must be attached to a gate. currently hardcoded to actor name "gate0" - { - Gateman* actor = new Gateman(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring, FindRef(ActorRefs, "gate0")->GetHandle()); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "talker")) - { - Talker* actor = new Talker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "door")) - { - int x_off = cJSON_GetObjectItem(act, "x_off")->valueint; - int y_off = cJSON_GetObjectItem(act, "y_off")->valueint; - Door* actor = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - ref->act = actor; - PosRect.x = cJSON_GetObjectItem(act, "x2")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y2")->valueint; - Door* actor2 = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - actor->SetTeleDest(actor2->GetTelePos()); - actor2->SetTeleDest(actor->GetTelePos()); - SDL_Rect* r = new SDL_Rect; - r->h = 0; - r->w = 0; - r->x = 100; - r->y = 100; - //actor->SetTeleDest(r); - //mSpatMon.LogActor(*actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor); - mCast.push_back(actor2); - } - else if (!strcmp(type, "pursuer")) - { - Pursuer* actor = new Pursuer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "wanderer")) - { - Wanderer* actor = new Wanderer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "rabbit")) - { - Rabbit* actor = new Rabbit(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else - { - gCons->ConsPrintf("Failed to load actor: %s is an unrecognized actor type\n", type); - } - ActorRefs.push_back(ref); - } - - return true; -} - -bool Level::LoadParticles(cJSON* level) -{ - cJSON* particles = cJSON_GetObjectItem(level, "particles"); - for (int i = 0; i < cJSON_GetArraySize(particles); i++) - { - cJSON* prt = cJSON_GetArrayItem(particles, i); - - char* anim_pack = cJSON_GetObjectItem(prt, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - //AnimDataPack* particle_anims = NULL; - AnimGraph* particle_anims = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - //gCons->ConsPrintf("stored set name: %s\n", anim_names[j]); - if (!strcmp(anim_pack, mAnim_names[j])) - { - particle_anims = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(particle_anims != NULL); -#endif - int prth = particle_anims->GetH(); - int prtw = particle_anims->GetW(); - - ParticleData* pd = new ParticleData; - pd->AnimData = particle_anims; - pd->Height = prth; - pd->Width = prtw; - pd->spat = &mSpatMon; - - mPrtLib.LogParticleData(pd, anim_pack); - return true; - } - return false; -} - -bool Level::LoadSounds(cJSON* level) -{ - cJSON* sounds = cJSON_GetObjectItem(level, "sounds"); - - for (int i = 0; i < cJSON_GetArraySize(sounds); i++) - { - cJSON* sound = cJSON_GetArrayItem(sounds, i); - char* fname = cJSON_GetObjectItem(sound, "filename")->valuestring; - char* name = cJSON_GetObjectItem(sound, "name" )->valuestring; - int vol = cJSON_GetObjectItem(sound, "vol" )->valueint; - - Mix_Chunk* snd = new Mix_Chunk; - snd = LoadSound(fname); - Mix_VolumeChunk(snd, vol); - - mSoundLib.LogSoundData(snd, name); - } - - cJSON* sound_regions = cJSON_GetObjectItem(level, "sound_regions"); - - for (int i = 0; i < cJSON_GetArraySize(sound_regions); i++) - { - cJSON* region = cJSON_GetArrayItem(sound_regions, i); - SDL_Rect reg_rect; - reg_rect.x = cJSON_GetObjectItem(region, "x")->valueint; - reg_rect.y = cJSON_GetObjectItem(region, "y")->valueint; - reg_rect.h = cJSON_GetObjectItem(region, "h")->valueint; - reg_rect.w = cJSON_GetObjectItem(region, "w")->valueint; - - RegionSound* rs = mSoundLib.SpawnRegionSound(reg_rect); - - cJSON* tracks = cJSON_GetObjectItem(region, "tracks"); - for (int j = 0; j < cJSON_GetArraySize(tracks); j++) - { - char* track = cJSON_GetArrayItem(tracks, j)->valuestring; - rs->LogTrack(mSoundLib.GetSoundData(track)); - } - } - - return false; -} - -bool Level::LoadHud(cJSON* level) -{ - cJSON* texs = cJSON_GetObjectItem(level, "hud_textures"); - - //Load LifeMeter Widget - char* life_base = cJSON_GetObjectItem(texs, "life_base")->valuestring; - char* life_bar = cJSON_GetObjectItem(texs, "life_bar" )->valuestring; - - SDL_Rect LifePos; - LifePos.h = 15; - LifePos.w = 250; - LifePos.x = 25; - LifePos.y = 25; - mHUD.LogWidget( new LifeMeter(mPlayer, LifePos, mRen, life_base, life_bar) ); - // - - //Load Fader widget - char* black = cJSON_GetObjectItem(texs, "fader")->valuestring; - - Fader* f = new Fader(mRen, black); - mPlayer->mFeed.Subscribe(f); - mHUD.LogWidget(f); - // - - //Load Dialogue Widget - char* text_box = cJSON_GetObjectItem(texs, "text_box")->valuestring; - - SDL_Rect DialoguePos; - DialoguePos.h = 0; - DialoguePos.w = 0; - DialoguePos.x = 300; - DialoguePos.y = 200; - - SDL_Color fg = {0,0,0}; - - Dialogue* d = new Dialogue(DialoguePos, mRen, "Tapestry.ttf", text_box, fg, mPlayer); - mPlayer->mFeed.Subscribe(d); - - mHUD.LogWidget(d); - // - - return true; -} - -bool Level::Load(const char* filename) -{ - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* level = cJSON_GetObjectItem(root, "level"); - - LoadWorld(level); - - LoadCamera(level); - - gDiagDraw = new DiagnosticDraw(mRen, mCam); - - LoadAnimations(level); - - LoadActors(level); - - LoadParticles(level); - - LoadSounds(level); - - LoadHud(level); - -// int cells[9]; - -// mSpatMon.GetAdjacentCells(36, cells); - - return true; -} - -bool Level::Update() -{ - ///Update Actors - for (int i = 0; i < (int)(mCast.size()); i++) - { - mCast.at(i)->ActorUpdate(); - } - ///Update Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - mPrtLib.GetParticles()->at(i)->ActorUpdate(); - } - - ///Draw HUD - mHUD.UpdateWidgets(); - - mCam.ActorFollow(mRen, 150, 75); - - ///Draw Backgrounds - for (int i = 0; i < (int)mBack.size(); i++) - { - DrawParallax(mRen, mBack.at(i), mCam, mParallax_back.at(i), mHeight, mWidth); - } - ///Draw Foregrounds - for (int i = 0; i < (int)mFore.size(); i++) - { - SDL_RenderCopy(mRen, mFore.at(i), mCam.GetCamView(), NULL); - } - - ///Draw Actors - for (int i = 0; i < (int)mCast.size(); i++) - { - DrawActor(mRen, *mCast.at(i), mCam); - } - - ///Draw Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - DrawActor(mRen, *mPrtLib.GetParticles()->at(i), mCam); - } - - ///Draw overlays - for (int l = 0; l < (int)mOver.size(); l++) - { - DrawParallax(mRen, mOver.at(l), mCam, mParallax_over.at(l), mHeight, mWidth); - } - - mHUD.DrawWidgets(); - - ///Play Sounds - mSoundLib.UpdateRegionSounds(mPlayer->GetPosition()); - mSoundLib.UpdatePointSounds(mCam.GetCenterX(), mCam.GetCenterY()); - - //gCons->ConsPrintf("%d channels are playing\n", Mix_Playing(-1)); - - ///Draw Diagnositic rectangles - gDiagDraw->Update(); - - return true; -} - -bool Level::EventProcess(Event eve) -{ - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/45/455d4a04dd3e84c606fe06268d6b4d105266a5fb.svn-base b/.svn/pristine/45/455d4a04dd3e84c606fe06268d6b4d105266a5fb.svn-base Binary files differ. diff --git a/.svn/pristine/45/4573d1ecce77d7260c4f05d50d4e37626317b37d.svn-base b/.svn/pristine/45/4573d1ecce77d7260c4f05d50d4e37626317b37d.svn-base @@ -1,600 +0,0 @@ -#include "Level.h" - -Actor* FindRef(std::vector<ActorName*> refs, char* name) -{ - for (int i = 0; i < (int)refs.size(); i++) - { - if (strcmp(refs.at(i)->name, name) == false) - { - return refs.at(i)->act; - } - } - - return NULL; -} - -bool Level::LoadWorld(cJSON* level) -{ - cJSON* world = cJSON_GetObjectItem(level, "world"); - mHeight = cJSON_GetObjectItem(world, "world_h")->valueint; - mWidth = cJSON_GetObjectItem(world, "world_w")->valueint; - - mSpatMon = SpatialMonitor(mHeight, mWidth); - - char * ter = cJSON_GetObjectItem(world, "terrain")->valuestring; - mColMap = LoadSurfaceBMP(ter); - - cJSON* backs = cJSON_GetObjectItem(world, "backgrounds"); - for (int i = 0; i < cJSON_GetArraySize(backs); i++) - { - cJSON* layer = cJSON_GetArrayItem(backs, i); - char* back = cJSON_GetObjectItem(layer, "back")->valuestring; - - SDL_Texture* back_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(back)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(back_tex, alpha); - } - - mBack.push_back(back_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_back.push_back(p_factor); - } - - cJSON* fores = cJSON_GetObjectItem(world, "foregrounds"); - for (int i = 0; i < cJSON_GetArraySize(fores); i++) - { - cJSON* layer = cJSON_GetArrayItem(fores, i); - char* fore = cJSON_GetObjectItem(layer, "fore")->valuestring; - - SDL_Texture* fore_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(fore)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(fore_tex, alpha); - } - - mFore.push_back(fore_tex); - } - - cJSON* overs = cJSON_GetObjectItem(world, "overlays"); - for (int i = 0; i < cJSON_GetArraySize(overs); i++) - { - cJSON* layer = cJSON_GetArrayItem(overs, i); - char* overs = cJSON_GetObjectItem(layer, "over")->valuestring; - - SDL_Texture* over_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(overs)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(over_tex, alpha); - } - - mOver.push_back(over_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_over.push_back(p_factor); - } - return true; -} - -bool Level::LoadCamera(cJSON* level) -{ - cJSON* camera = cJSON_GetObjectItem(level, "camera"); - int camx = cJSON_GetObjectItem(camera, "x")->valueint; - int camy = cJSON_GetObjectItem(camera, "y")->valueint; - int camh = cJSON_GetObjectItem(camera, "h")->valueint; - int camw = cJSON_GetObjectItem(camera, "w")->valueint; - - mCam = Camera(camh, camw, camx, camy, mHeight, mWidth); - - cJSON* blockers = cJSON_GetObjectItem(camera, "blockers"); - - for (int i = 0; i < cJSON_GetArraySize(blockers); i++) - { - cJSON* blocker = cJSON_GetArrayItem(blockers, i); - SDL_Rect* r = new SDL_Rect; - r->h = cJSON_GetObjectItem(blocker, "h")->valueint; - r->w = cJSON_GetObjectItem(blocker, "w")->valueint; - r->x = cJSON_GetObjectItem(blocker, "x")->valueint; - r->y = cJSON_GetObjectItem(blocker, "y")->valueint; - - mCam.LogBlocker(r); - } - - return true; -} - -bool Level::LoadAnimations(cJSON* level) -{ - cJSON* animations = cJSON_GetObjectItem(level, "animations"); - mAnim_names = (char**)malloc(cJSON_GetArraySize(animations) * sizeof(char*)); - for (int i = 0; i < cJSON_GetArraySize(animations); i++) - { - cJSON* anim_pack = cJSON_GetArrayItem(animations, i); - mAnim_names[i] = cJSON_GetObjectItem(anim_pack, "pack_name")->valuestring; - //gCons->ConsPrintf("Animation Pack Name: %s\n", anim_names[i]); - - cJSON* frame_size = cJSON_GetObjectItem(anim_pack, "frame_size"); - int h = cJSON_GetObjectItem(frame_size, "h")->valueint; - int w = cJSON_GetObjectItem(frame_size, "w")->valueint; - - cJSON* col_data = cJSON_GetObjectItem(anim_pack, "col_data"); - int off_x = cJSON_GetObjectItem(col_data, "off_x")->valueint; - int off_y = cJSON_GetObjectItem(col_data, "off_y")->valueint; - int col_h = cJSON_GetObjectItem(col_data, "col_h")->valueint; - int col_w = cJSON_GetObjectItem(col_data, "col_w")->valueint; - - cJSON* anim_set = cJSON_GetObjectItem(anim_pack, "anim_set"); - - FrameSet* frame_data = (FrameSet*)malloc(cJSON_GetArraySize(anim_set) * sizeof(FrameSet)); - int* Index = (int*)malloc(cJSON_GetArraySize(anim_set) * sizeof(int)); - - for (int j = 0; j < cJSON_GetArraySize(anim_set); j++) - { - cJSON* anim = cJSON_GetArrayItem(anim_set, j); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - //int h = cJSON_GetObjectItem(anim, "h")->valueint; - //int w = cJSON_GetObjectItem(anim, "w")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - frame_data[j] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - Index[j] = id; - } - AnimDataPack* pack = new AnimDataPack(cJSON_GetArraySize(anim_set), frame_data, Index); - pack->SetColData(off_x, off_y, col_h, col_w); - mAnimData.push_back(pack); - - - LoadAnimGraph(anim_pack); - } - - return true; -} - -bool Level::LoadAnimGraph(cJSON* anim_pack) -{ - AnimGraphData* anim_g = new AnimGraphData( *mAnimData.back() ); - - cJSON* loop_ids = cJSON_GetObjectItem(anim_pack, "loop_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(loop_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(loop_ids, i)->valuestring); - anim_g->DefineLoop(id); - } - anim_g->CreateTranisitionMatrix(); - - cJSON* transition_ids = cJSON_GetObjectItem(anim_pack, "transition_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(transition_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(transition_ids, i)->valuestring); - anim_g->DefineTransitions(id); - } - - cJSON* anim_graph = cJSON_GetObjectItem(anim_pack, "anim_graph"); - for (int i = 0; i < (int)cJSON_GetArraySize(anim_graph); i++) - { - cJSON* loop = cJSON_GetArrayItem(anim_graph, i); - char* loop_name = cJSON_GetObjectItem(loop, "loop_name")->valuestring; - int init_id = ConvertStringToSymbol(loop_name); - - cJSON* transitions = cJSON_GetObjectItem(loop, "transitions"); - for(int j = 0; j < (int)cJSON_GetArraySize(transitions); j++) - { - char* transition = cJSON_GetArrayItem(transitions, j)->valuestring; - int trans_id = ConvertStringToSymbol(transition); - - int target_id = anim_g->GetLoopIDIndex(j); - - anim_g->PopulateTransitionMatrix(init_id, target_id, trans_id); - } - } - mAnimGraphs.push_back(anim_g); - - return false; -} - -bool Level::LoadActors(cJSON* level) -{ - cJSON* actors = cJSON_GetObjectItem(level, "actors"); - std::vector<ActorName*> ActorRefs; - - mAHM = ActorHandleManager(); - - for (int i = 0; i < cJSON_GetArraySize(actors); i++) - { - cJSON* act = cJSON_GetArrayItem(actors, i); - - char* anim_pack = cJSON_GetObjectItem(act, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - AnimGraph* actor_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp(anim_pack, mAnim_names[j])) - { - actor_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(actor_pack != NULL); -#endif - - - SDL_Rect PosRect; - PosRect.x = cJSON_GetObjectItem(act, "x")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y")->valueint; - PosRect.h = actor_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = actor_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - SDL_Rect DrawRect; - DrawRect.x = actor_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = actor_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = actor_pack->GetH(); - DrawRect.w = actor_pack->GetW(); - - ActorName* ref = new ActorName; - ref->name = cJSON_GetObjectItem(act, "name")->valuestring; - - char* type = cJSON_GetObjectItem(act, "type")->valuestring; - if (!strcmp(type, "player")) - { - Player* actor = new Player(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); //needs a delete - ref->act = actor; - mSpatMon.LogActor(*actor); - mInput->mFeed.Subscribe(actor); - - - mCam.SetFollowTarget(actor); - mCast.push_back(actor); - mPlayer = actor; - - AnimGraph* hat_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("sword", mAnim_names[j])) - { - hat_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - actor->SetSword(actor->AttachHat(new sword(hat_pack, actor, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib))); - } - else if (!strcmp(type, "test_blocker")) - { - Test_Blocker* actor = new Test_Blocker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "gate")) - { - int dir = ConvertStringToSymbol(cJSON_GetObjectItem(act, "dir")->valuestring); - Gate* actor = new Gate(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, dir); - //ref->act = actor; Gate ref refers to the paired winch because its more useful - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - actor_pack->mFeed.Subscribe(actor); - - AnimGraph* winch_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("winch", mAnim_names[j])) - { - winch_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - PosRect.h = winch_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = winch_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - PosRect.y -= 29; - if (dir == LEFT) - { - PosRect.x += 7; - } - else //dir == right - { - PosRect.x -= (21); - } - - DrawRect.x = winch_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = winch_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = winch_pack->GetH(); - DrawRect.w = winch_pack->GetW(); - Winch* actor2 = new Winch(winch_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, actor, dir); - ref->act = actor2; - actor2->mFeed.Subscribe(actor); - mSpatMon.LogActor(*actor2); - mCast.push_back(actor2); - } - else if (!strcmp(type, "gateman")) - { - Gateman* actor = new Gateman(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring, FindRef(ActorRefs, "gate0")->GetHandle()); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "talker")) - { - Talker* actor = new Talker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "door")) - { - int x_off = cJSON_GetObjectItem(act, "x_off")->valueint; - int y_off = cJSON_GetObjectItem(act, "y_off")->valueint; - Door* actor = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - ref->act = actor; - PosRect.x = cJSON_GetObjectItem(act, "x2")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y2")->valueint; - Door* actor2 = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - actor->SetTeleDest(actor2->GetTelePos()); - actor2->SetTeleDest(actor->GetTelePos()); - SDL_Rect* r = new SDL_Rect; - r->h = 0; - r->w = 0; - r->x = 100; - r->y = 100; - //actor->SetTeleDest(r); - mSpatMon.LogActor(*actor); - mSpatMon.LogActor(*actor2); - mCast.push_back(actor); - mCast.push_back(actor2); - } - else if (!strcmp(type, "pursuer")) - { - Pursuer* actor = new Pursuer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "wanderer")) - { - Wanderer* actor = new Wanderer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "rabbit")) - { - Rabbit* actor = new Rabbit(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else - { - gCons->ConsPrintf("Failed to load actor: %s is an unrecognized actor type\n", type); - } - ActorRefs.push_back(ref); - } - - return true; -} - -bool Level::LoadParticles(cJSON* level) -{ - cJSON* particles = cJSON_GetObjectItem(level, "particles"); - for (int i = 0; i < cJSON_GetArraySize(particles); i++) - { - cJSON* prt = cJSON_GetArrayItem(particles, i); - - char* anim_pack = cJSON_GetObjectItem(prt, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - //AnimDataPack* particle_anims = NULL; - AnimGraph* particle_anims = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - //gCons->ConsPrintf("stored set name: %s\n", anim_names[j]); - if (!strcmp(anim_pack, mAnim_names[j])) - { - particle_anims = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(particle_anims != NULL); -#endif - int prth = particle_anims->GetH(); - int prtw = particle_anims->GetW(); - - ParticleData* pd = new ParticleData; - pd->AnimData = particle_anims; - pd->Height = prth; - pd->Width = prtw; - pd->spat = &mSpatMon; - - mPrtLib.LogParticleData(pd, anim_pack); - return true; - } - return false; -} - -bool Level::LoadSounds(cJSON* level) -{ - cJSON* sounds = cJSON_GetObjectItem(level, "sounds"); - - for (int i = 0; i < cJSON_GetArraySize(sounds); i++) - { - cJSON* sound = cJSON_GetArrayItem(sounds, i); - char* fname = cJSON_GetObjectItem(sound, "filename")->valuestring; - char* name = cJSON_GetObjectItem(sound, "name" )->valuestring; - int vol = cJSON_GetObjectItem(sound, "vol" )->valueint; - - Mix_Chunk* snd = new Mix_Chunk; - snd = LoadSound(fname); - Mix_VolumeChunk(snd, vol); - - mSoundLib.LogSoundData(snd, name); - } - - cJSON* sound_regions = cJSON_GetObjectItem(level, "sound_regions"); - - for (int i = 0; i < cJSON_GetArraySize(sound_regions); i++) - { - cJSON* region = cJSON_GetArrayItem(sound_regions, i); - SDL_Rect reg_rect; - reg_rect.x = cJSON_GetObjectItem(region, "x")->valueint; - reg_rect.y = cJSON_GetObjectItem(region, "y")->valueint; - reg_rect.h = cJSON_GetObjectItem(region, "h")->valueint; - reg_rect.w = cJSON_GetObjectItem(region, "w")->valueint; - - RegionSound* rs = mSoundLib.SpawnRegionSound(reg_rect); - - cJSON* tracks = cJSON_GetObjectItem(region, "tracks"); - for (int j = 0; j < cJSON_GetArraySize(tracks); j++) - { - char* track = cJSON_GetArrayItem(tracks, j)->valuestring; - rs->LogTrack(mSoundLib.GetSoundData(track)); - } - } - - return false; -} - -bool Level::LoadHud(cJSON* level) -{ - cJSON* texs = cJSON_GetObjectItem(level, "hud_textures"); - - //Load LifeMeter Widget - char* life_base = cJSON_GetObjectItem(texs, "life_base")->valuestring; - char* life_bar = cJSON_GetObjectItem(texs, "life_bar" )->valuestring; - - SDL_Rect LifePos; - LifePos.h = 15; - LifePos.w = 250; - LifePos.x = 25; - LifePos.y = 25; - mHUD.LogWidget( new LifeMeter(mPlayer, LifePos, mRen, life_base, life_bar) ); - // - - //Load Fader widget - char* black = cJSON_GetObjectItem(texs, "fader")->valuestring; - - Fader* f = new Fader(mRen, black); - mPlayer->mFeed.Subscribe(f); - mHUD.LogWidget(f); - // - - //Load Dialogue Widget - char* text_box = cJSON_GetObjectItem(texs, "text_box")->valuestring; - - SDL_Rect DialoguePos; - DialoguePos.h = 0; - DialoguePos.w = 0; - DialoguePos.x = 300; - DialoguePos.y = 200; - - SDL_Color fg = {0,0,0}; - - Dialogue* d = new Dialogue(DialoguePos, mRen, "Tapestry.ttf", text_box, fg, mPlayer); - mPlayer->mFeed.Subscribe(d); - - mHUD.LogWidget(d); - // - - return true; -} - -bool Level::Load(const char* filename) -{ - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* level = cJSON_GetObjectItem(root, "level"); - - LoadWorld(level); - - LoadCamera(level); - - gDiagDraw = new DiagnosticDraw(mRen, mCam); - - LoadAnimations(level); - - LoadActors(level); - - LoadParticles(level); - - LoadSounds(level); - - LoadHud(level); - - int cells[9]; - - mSpatMon.GetAdjacentCells(36, cells); - - return true; -} - -bool Level::Update() -{ - ///Update Actors - for (int i = 0; i < (int)(mCast.size()); i++) - { - mCast.at(i)->ActorUpdate(); - } - ///Update Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - mPrtLib.GetParticles()->at(i)->ActorUpdate(); - } - - ///Draw HUD - mHUD.UpdateWidgets(); - - mCam.ActorFollow(mRen, 150, 75); - - ///Draw Backgrounds - for (int i = 0; i < (int)mBack.size(); i++) - { - DrawParallax(mRen, mBack.at(i), mCam, mParallax_back.at(i), mHeight, mWidth); - } - ///Draw Foregrounds - for (int i = 0; i < (int)mFore.size(); i++) - { - SDL_RenderCopy(mRen, mFore.at(i), mCam.GetCamView(), NULL); - } - - ///Draw Actors - for (int i = 0; i < (int)mCast.size(); i++) - { - DrawActor(mRen, *mCast.at(i), mCam); - } - - ///Draw Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - DrawActor(mRen, *mPrtLib.GetParticles()->at(i), mCam); - } - - ///Draw overlays - for (int l = 0; l < (int)mOver.size(); l++) - { - DrawParallax(mRen, mOver.at(l), mCam, mParallax_over.at(l), mHeight, mWidth); - } - - mHUD.DrawWidgets(); - - ///Play Sounds - mSoundLib.UpdateRegionSounds(mPlayer->GetPosition()); - mSoundLib.UpdatePointSounds(mCam.GetCenterX(), mCam.GetCenterY()); - - //gCons->ConsPrintf("%d channels are playing\n", Mix_Playing(-1)); - - ///Draw Diagnositic rectangles - gDiagDraw->Update(); - - return true; -} - -bool Level::EventProcess(Event eve) -{ - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/46/46a8f9654bc2905d76d6c7630f512ecc70d32b4d.svn-base b/.svn/pristine/46/46a8f9654bc2905d76d6c7630f512ecc70d32b4d.svn-base @@ -1,144 +0,0 @@ -#include "AnimationGraph.h" - -//AnimGraphData functions -bool AnimGraphData::DefineLoop(int AnimID) -{ - if (mAnimData.GetAnimationData(AnimID) != NULL) - { - mLoopsAnimIDs.push_back(AnimID); - return true; - } - else - { - gCons->ConsPrintf("Invalid animation ID, Animation Graph could not define loop\n"); - return false; - } -} - -bool AnimGraphData::DefineTransitions(int AnimID) -{ - if (mAnimData.GetAnimationData(AnimID) != NULL) - { - mTransitionsAnimIDs.push_back(AnimID); - //mAnimPack.GetAnimation(AnimID)->mFeed.Subscribe(this); - return true; - } - return false; -} - -bool AnimGraphData::CreateTranisitionMatrix() //call only after all loops have been defined -{ - mTransitionMatrix = new int*[mLoopsAnimIDs.size()]; - - for (int i = 0; i < (int)mLoopsAnimIDs.size(); i++) - { - mTransitionMatrix[i] = new int[mLoopsAnimIDs.size()]; - for (int j = 0; j < (int)mLoopsAnimIDs.size(); j++) - { - mTransitionMatrix[i][j] = -1; //-1 represents no transition - } - } - return true; -} - -bool AnimGraphData::PopulateTransitionMatrix(int initState, int targetState, int transitionID) -{ - int initIndex = -1; - int targetIndex = -1; - - for (int i = 0; i < (int)mLoopsAnimIDs.size(); i++) - { - if (initState == mLoopsAnimIDs.at(i)) - { - initIndex = i; - } - if (targetState == mLoopsAnimIDs.at(i)) - { - targetIndex = i; - } - } - - if ((initIndex != -1) && (targetIndex != -1)) - { - mTransitionMatrix[initIndex][targetIndex] = transitionID; - return true; - } - return false; -} - -//Anim Graph Functions -int AnimGraph::GetTransitionID(int initState, int targetState) -{ - int initIndex = -1; - int targetIndex = -1; - - for (int i = 0; i < (int)mAGD->mLoopsAnimIDs.size(); i++) - { - if (initState == mAGD->mLoopsAnimIDs.at(i)) - { - initIndex = i; - } - if (targetState == mAGD->mLoopsAnimIDs.at(i)) - { - targetIndex = i; - } - } - - if ((initIndex != -1) && (targetIndex != -1)) - { - return mAGD->mTransitionMatrix[initIndex][targetIndex]; - } - else - { - return -1; - } -} - -Frame* AnimGraph::UpdateAnimation() -{ - if (mState != *mActorState) - { - if ( (GetTransitionID(mState, *mActorState) != -1) && mState != 0 ) - { - mCurrentFrame = mAnimPack.ActivateAnimation(GetTransitionID(mState, *mActorState), ONCE)->GetCurrentFrame(); - return &mCurrentFrame; - } - else - { - mState = *mActorState; - return &mCurrentFrame; - } - } - else - { - for (int i = 0; i < (int)mAGD->mLoopsAnimIDs.size(); i++) - { - if (mAGD->mLoopsAnimIDs.at(i) == mState) - { - mCurrentFrame = mAnimPack.ActivateAnimation(mAGD->mLoopsAnimIDs.at(i))->GetCurrentFrame(); - return &mCurrentFrame; - } - } - } - return NULL; -} - -Frame* AnimGraph::PlayOnce(int AnimID) -{ - mCurrentFrame = mAnimPack.ActivateAnimation(AnimID, ONCE)->GetCurrentFrame(); - return &mCurrentFrame; -} - -bool AnimGraph::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = *mActorState; - mFeed.EventProcess(Event(ANIM_COMPLETE, eve.GetEventData()->i)); - return true; - default: - gCons->ConsPrintf("Animation Graph asked to process unrecgonized event\n"); - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/46/46c61cb83a236ce6c452d6358dc83cb03e55fafe.svn-base b/.svn/pristine/46/46c61cb83a236ce6c452d6358dc83cb03e55fafe.svn-base @@ -1,668 +0,0 @@ -{ - "loading": - { - "splash" : "Loading.bmp" - }, - - "level": - { - "world": - { - "world_h": 900, - "world_w": 4095, - "terrain" : "arid_land\\arid land_colmap.bmp", - "backgrounds" : - [ - {"back" : "arid_land\\arid land_back_0.bmp" , "parallax_factor" : 1, "alpha" : 0 }, - {"back" : "arid_land\\arid land_back_1.bmp" , "parallax_factor" : 1, "alpha" : 0 }, - {"back" : "arid_land\\arid land_back_2.bmp" , "parallax_factor" : 1, "alpha" : 0 }, - {"back" : "arid_land\\arid land_back_transp_3.bmp", "parallax_factor" : 1, "alpha" : 75}, - {"back" : "arid_land\\arid land_back_4.bmp" , "parallax_factor" : 1, "alpha" : 0 } - ], - "foregrounds" : - [ - {"fore" : "arid_land\\arid land_fore_0.bmp", "alpha" : 0}, - {"fore" : "arid_land\\arid land_fore_1.bmp", "alpha" : 0}, - {"fore" : "arid_land\\arid land_fore_2.bmp", "alpha" : 0}, - {"fore" : "arid_land\\arid land_fore_3.bmp", "alpha" : 0} - ], - "overlays" : - [ - {"over" : "arid_land\\arid land_over_transp_0.bmp", "parallax_factor" : 1, "alpha" : 125}, - {"over" : "arid_land\\arid land_over_transp_1.bmp", "parallax_factor" : 1, "alpha" : 55} - ] - }, - - "camera": - { - "h": 252, - "w": 448, - "x": 0, - "y": 0, - "blockers" : - [ - {"h" : 1, "w" : 4095, "x" : 0, "y" : 780} - ] - }, - - "sounds": - [ - {"filename" : "Dhaka.mp3" , "name" : "dhaka" , "vol" : 12 }, - {"filename" : "splash_sound.wav", "name" : "splash_sound", "vol" : 64}, - {"filename" : "footstep.wav" , "name" : "footstep" , "vol" : 128}, - {"filename" : "door.wav" , "name" : "door_open" , "vol" : 128}, - {"filename" : "draw.wav" , "name" : "draw_sword" , "vol" : 128} - ], - - "sound_regions": - [ - { - "x" : 0, "y" : 0, "h" : 900, "w" : 2000, - "tracks" : - [ - "dhaka" - ] - } - ], - - "animations" : - [ - { - "pack_name" : "splash", - "frame_size" : {"h" : 4, "w" : 20}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 4, "col_w" : 20}, - "anim_set": - [ - {"filename" : "water_ripple.bmp", "frame_count" : 6 , "frame_rate" : 25, "id" : "PARTICLE" } - ], - "loop_ids" : - [ - "PARTICLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "PARTICLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "haze", - "frame_size" : {"h" : 284, "w" : 4095}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 284, "col_w" : 4095}, - "anim_set": - [ - {"filename" : "haze.bmp", "frame_count" : 1 , "frame_rate" : 250, "id" : "PARTICLE" } - ], - "loop_ids" : - [ - "PARTICLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "PARTICLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "player_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "player\\player_idle_begin.bmp" , "frame_count" : 2 , "frame_rate" : 250, "id" : "IDLE_BEGIN" }, - {"filename" : "player\\player_idle.bmp" , "frame_count" : 6 , "frame_rate" : 275, "id" : "IDLE" }, - {"filename" : "player\\player_jump.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP" }, - {"filename" : "player\\player_jump_to_fall.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP_TO_FALL"}, - {"filename" : "player\\player_fall.bmp" , "frame_count" : 5 , "frame_rate" : 75, "id" : "FALL" }, - {"filename" : "player\\player_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" }, - {"filename" : "player\\player_run_drawn.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN_DRAWN" }, - {"filename" : "player\\player_swim.bmp" , "frame_count" : 6, "frame_rate" : 50 , "id" : "SWIM" }, - {"filename" : "player\\player_swim_tread.bmp" , "frame_count" : 6, "frame_rate" : 80 , "id" : "TREAD" } - ], - "loop_ids" : - [ - "IDLE", - "JUMP", - "FALL", - "RUN", - "RUN_DRAWN", - "SWIM", - "TREAD" - ], - "transition_ids" : - [ - "IDLE_BEGIN", - "JUMP_TO_FALL" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "JUMP", - "transitions": ["NONE" , "NONE", "JUMP_TO_FALL", "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "FALL", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN_DRAWN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SWIM", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "TREAD", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "sword", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 23, "col_w" : 14}, - "anim_set": - [ - {"filename" : "player\\sword\\sword_idle_begin.bmp" , "frame_count" : 2 , "frame_rate" : 250 , "id" : "IDLE_BEGIN" }, - {"filename" : "player\\sword\\sword_idle.bmp" , "frame_count" : 6 , "frame_rate" : 275, "id" : "IDLE" }, - {"filename" : "player\\sword\\sword_jump.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP" }, - {"filename" : "player\\sword\\sword_jump_to_fall.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP_TO_FALL"}, - {"filename" : "player\\sword\\sword_fall.bmp" , "frame_count" : 5 , "frame_rate" : 75, "id" : "FALL" }, - {"filename" : "player\\sword\\sword_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" }, - {"filename" : "player\\sword\\sword_run_drawn.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN_DRAWN" }, - {"filename" : "player\\sword\\sword_swim.bmp" , "frame_count" : 6, "frame_rate" : 50 , "id" : "SWIM" }, - {"filename" : "player\\sword\\sword_swim_tread.bmp" , "frame_count" : 6, "frame_rate" : 80 , "id" : "TREAD" } - ], - "loop_ids" : - [ - "IDLE", - "JUMP", - "FALL", - "RUN", - "RUN_DRAWN", - "SWIM", - "TREAD" - ], - "transition_ids" : - [ - "IDLE_BEGIN", - "JUMP_TO_FALL" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "JUMP", - "transitions": ["NONE" , "NONE", "JUMP_TO_FALL", "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "FALL", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN_DRAWN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SWIM", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "TREAD", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "gate", - "frame_size" : {"h" : 66, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : -29, "col_h" : 37, "col_w" : 8}, - "anim_set": - [ - {"filename" : "gate\\gate_down.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_DOWN" }, - {"filename" : "gate\\gate_up.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_UP" }, - {"filename" : "gate\\gate_lower.bmp" , "frame_count" : 6 , "frame_rate" : 40 , "id" : "GATE_LOWER" }, - {"filename" : "gate\\gate_lower_begin.bmp" , "frame_count" : 3 , "frame_rate" : 40 , "id" : "GATE_LOWER_BEGIN" }, - {"filename" : "gate\\gate_raise.bmp" , "frame_count" : 38, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_LOWER_BEGIN", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "winch", - "frame_size" : {"h" : 31, "w" : 22}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 17, "col_w" : 22}, - "anim_set": - [ - {"filename" : "winch\\winch_down.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_DOWN" }, - {"filename" : "winch\\winch_up.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_UP" }, - {"filename" : "winch\\winch_lower.bmp" , "frame_count" : 6 , "frame_rate" : 40 , "id" : "GATE_LOWER" }, - {"filename" : "winch\\winch_lower_begin.bmp" , "frame_count" : 4 , "frame_rate" : 120 , "id" : "GATE_LOWER_BEGIN" }, - {"filename" : "winch\\winch_raise.bmp" , "frame_count" : 40, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_LOWER_BEGIN", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "gateman_npc", - "frame_size" : {"h" : 26, "w" : 14}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 26, "col_w" : 14}, - "anim_set": - [ - {"filename" : "NPCs\\gateman\\gateoperator_idle.bmp" , "frame_count" : 6 , "frame_rate" : 250 , "id" : "GATE_DOWN" }, - {"filename" : "NPCs\\gateman\\gateoperator_idle.bmp" , "frame_count" : 6 , "frame_rate" : 250 , "id" : "GATE_UP" }, - {"filename" : "NPCs\\gateman\\gateoperator_lower.bmp" , "frame_count" : 7 , "frame_rate" : 120 , "id" : "GATE_LOWER" }, - {"filename" : "NPCs\\gateman\\gateoperator_raise.bmp" , "frame_count" : 43, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "red_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "red_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "IDLE_BEGIN"}, - {"filename" : "red_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "IDLE" }, - {"filename" : "red_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "yella_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "yella_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "id" : "IDLE_BEGIN"}, - {"filename" : "yella_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "id" : "IDLE" }, - {"filename" : "yella_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "b_rabbit_pack", - "frame_size" : {"h" : 5, "w" : 6}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 5, "col_w" : 6}, - "anim_set": - [ - {"filename" : "rabbits\\brabbit_hop.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "RUN" }, - {"filename" : "rabbits\\brabbit_idle_eat.bmp" , "frame_count" : 13, "frame_rate" : 100, "id" : "EAT" }, - {"filename" : "rabbits\\brabbit_idle_look.bmp" , "frame_count" : 8 , "frame_rate" : 100, "id" : "LOOK" }, - {"filename" : "rabbits\\brabbit_sleep.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "SLEEP" } - ], - "loop_ids" : - [ - "RUN", - "EAT", - "LOOK", - "SLEEP" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "RUN", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "EAT", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "LOOK", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SLEEP", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "loyal_bug_pack", - "frame_size" : {"h" : 26, "w" : 64}, - "col_data" : {"off_x" : -32, "off_y" : 0, "col_h" : 26, "col_w" : 32}, - "anim_set": - [ - {"filename" : "loyal_bug\\loyalbug_idle_begin.bmp" , "frame_count" : 5 , "frame_rate" : 75 , "id" : "IDLE_BEGIN"}, - {"filename" : "loyal_bug\\loyalbug_idle.bmp" , "frame_count" : 11 , "frame_rate" : 120, "id" : "IDLE" }, - {"filename" : "loyal_bug\\loyalbug_walk.bmp" , "frame_count" : 23, "frame_rate" : 20 , "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "hostile_bug", - "frame_size" : {"h" : 7, "w" : 13}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 7, "col_w" : 13}, - "anim_set": - [ - {"filename" : "hostile\\bug_walk.bmp" , "frame_count" : 8 , "frame_rate" : 75 , "id" : "RUN"} - ], - "loop_ids" : - [ - "RUN" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "RUN", - "transitions": [] - } - ] - }, - { - "pack_name" : "door", - "frame_size" : {"h" : 22, "w" : 15}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 15}, - "anim_set": - [ - {"filename" : "door.bmp" , "frame_count" : 1, "frame_rate" : 100 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "garden_npc", - "frame_size" : {"h" : 22, "w" : 11}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 11}, - "anim_set": - [ - {"filename" : "NPCs\\gardenwoman_idle.bmp" , "frame_count" : 5, "frame_rate" : 300 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "smoke_npc", - "frame_size" : {"h" : 22, "w" : 13}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 13}, - "anim_set": - [ - {"filename" : "NPCs\\smokingman_idle.bmp" , "frame_count" : 21, "frame_rate" : 260 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "sit_man_npc", - "frame_size" : {"h" : 22, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 8}, - "anim_set": - [ - {"filename" : "NPCs\\sitting_man_idle.bmp" , "frame_count" : 11, "frame_rate" : 260 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "storeowner_npc", - "frame_size" : {"h" : 25, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 25, "col_w" : 8}, - "anim_set": - [ - {"filename" : "NPCs\\storeowner_idle.bmp" , "frame_count" : 8, "frame_rate" : 415 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "bad_hat", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "player\\myhatisat.bmp" , "frame_count" : 1, "frame_rate" : 100 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - } - ], - - "actors" : - [ - {"name":"garden0", "type" : "talker" , "anim_pack" : "garden_npc" , "x" : 850 , "y" : 714, "lines" : "Heres the garden woman, this is the stuff she will say. To demonstrate scrolling heres some more text."}, - {"name":"smoke0", "type" : "talker" , "anim_pack" : "smoke_npc" , "x" : 928 , "y" : 672, "lines" : "This is the smoking man, talkers can be spoken to from some distance away horizontally, but you need to be closer vertically. text"}, - {"name":"sit0", "type" : "talker" , "anim_pack" : "sit_man_npc" , "x" : 905 , "y" : 695, "lines" : "Nice try bro"}, - {"name":"storeowner0", "type" : "talker" , "anim_pack" : "storeowner_npc" , "x" : 930 , "y" : 711, "lines" : "I gotta say something."}, - {"name":"door0", "type" : "door" , "anim_pack" : "door" , "x" : 1470 , "y" : 714, "x2" : 100, "y2" : 714, "x_off" : 5, "y_off" : -1}, - {"name":"gate0", "type" : "gate" , "anim_pack" : "gate" , "x" : 1570 , "y" : 699, "dir" : "RIGHT"}, - {"name":"gateman0", "type" : "gateman" , "anim_pack" : "gateman_npc" , "x" : 1540 , "y" : 670, "linked_gate" : "gate0", "lines" : "When this dialogue closes gate npc will open the gate"}, - {"name":"player0", "type" : "player" , "anim_pack" : "player_pack" , "x" : 1700, "y" : 670} - ], - - "hud_textures" : - { - "life_base" : "life_base.bmp", - "life_bar" : "life_bar.bmp", - "text_box" : "dialogue_box.bmp", - "fader" : "fader.bmp" - }, - - "Particles" : - [ - {"anim_pack" : "splash"} - ] - - } -} diff --git a/.svn/pristine/47/473b5297d422feccd0218f13c9bc173fe34060a2.svn-base b/.svn/pristine/47/473b5297d422feccd0218f13c9bc173fe34060a2.svn-base Binary files differ. diff --git a/.svn/pristine/47/47b33b7bb577db46909c6ce762a241a219594e06.svn-base b/.svn/pristine/47/47b33b7bb577db46909c6ce762a241a219594e06.svn-base Binary files differ. diff --git a/.svn/pristine/48/4854d3b44ecefc9d087893dbf604043531203fa6.svn-base b/.svn/pristine/48/4854d3b44ecefc9d087893dbf604043531203fa6.svn-base Binary files differ. diff --git a/.svn/pristine/49/492a3b836fce40b89bfc184da62e5b112eceff2f.svn-base b/.svn/pristine/49/492a3b836fce40b89bfc184da62e5b112eceff2f.svn-base @@ -1,169 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -//#define RELEASE -#define DEBUG - - -#include <vector> -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include <stdlib.h> -#include <math.h> -#include "cJSON.h" -#include "SDL.h" -#include "SDL_ttf.h" -#include "SDL_Mixer.h" -#include "BinaryTree.h" - -//Screen size defines //These must be a whole multiple of the camera size otherwise pixel stretching occurs -#define SCREEN_W 1344 -#define SCREEN_H 756 -// - -//Direction Defines. Used by actor and terrain systems -#define DOWN 3 -#define UP 2 -#define LEFT 1 // must be 1 because of SDL draw function -#define RIGHT 0 // must be 0 because of SDL draw function -// - -//Time Defines -#define MS_PER_FRAME 16 //this is normal speed -//#define MS_PER_FRAME 40 //useful slow speed -#define FRAMES_PER_SECOND (1/MS_PER_FRAME)*1000 //62.5 @16ms - -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -// - - -//Actor State Defines -#define IDLE 10 -#define IDLE_DRAWN 11 -#define FALL 20 -#define FALL_DRAWN 21 -#define JUMP_TO_FALL 30 -#define JUMP_TO_FALL_DRAWN 31 -#define RUN 40 -#define RUN_DRAWN 41 -#define IDLE_BEGIN 50 -#define IDLE_BEGIN_DRAWN 51 -#define JUMP 60 -#define JUMP_DRAWN 61 -#define WANDER 70 -#define PURSUE 80 -#define SWIM 110 -#define SWIM_BEGIN 111 -#define TREAD 120 -#define LOOK 121 -#define EAT 122 -#define SLEEP 123 -#define PARTICLE 124 - -#define SWIM_LEFT 130 -#define SWIM_RIGHT 131 -#define SWIM_DOWN 132 -#define SWIM_UP 133 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 - -#define WALK_LEFT 0x5 -#define WALK_RIGHT 0x06 -#define WALK_DOWN 0x007 -#define WALK_UP 0x0008 - -#define GATE_UP 201 -#define GATE_DOWN 202 -#define GATE_LOWER 203 -#define GATE_LOWER_BEGIN 204 -#define GATE_RAISE 205 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 -#define HAZE 100 -// - -//This is a strange place for this stuff. Should maybe be its own ParticleTypeData.h -struct drift_data -{ - int mXspd; - int mYspd; -}; - -union ParticleTypeData -{ - bool NoData; - drift_data drift; -}; - -ParticleTypeData NullPTdata(); -// - -//struct ActHandle -//{ -// int id; -//}; - -typedef int ActHandle; - -class Time -{ -public: - - Time() : mCycle(0) {}; - - int ProgressCycle() - { - mCycle = (mCycle + 1); - return mCycle; - } - - int GetCurrentCycle() - { - return mCycle; - } - - int GetCurrentMS() - { - return (mCycle*MS_PER_FRAME); - } -protected: - - int mCycle; -}; - -int GetRealTimeMS(); - -SDL_Surface* LoadSurfaceBMP(const char* filename); - -TTF_Font* LoadFont(char* file, int ptsize); - -cJSON * LoadJSON(const char* filename); - -void PrintJSON(cJSON* json); - -float GetSign(float x); - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2); - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point); //Detects if the center of rectangle "point" is within rectangle "zone" - -int CalcDistance(int x1, int y1, int x2, int y2); - -int EvenOutcomes(int NumberofOutcomes); - -int RandRange(int min, int max); - -bool IsEven(int i); - -extern Time* gTime; - -#endif diff --git a/.svn/pristine/49/49a7cfc9f6088cfecabb0fe25e11329a9108a7ca.svn-base b/.svn/pristine/49/49a7cfc9f6088cfecabb0fe25e11329a9108a7ca.svn-base Binary files differ. diff --git a/.svn/pristine/49/49b6288a918e93173114d28f67c7f92728bf5f01.svn-base b/.svn/pristine/49/49b6288a918e93173114d28f67c7f92728bf5f01.svn-base Binary files differ. diff --git a/.svn/pristine/4a/4a0a6b57ad550b82d3012af112b4e5b1d2cc29b7.svn-base b/.svn/pristine/4a/4a0a6b57ad550b82d3012af112b4e5b1d2cc29b7.svn-base Binary files differ. diff --git a/.svn/pristine/4a/4a1142a6a4e158da91749acd63c803e7bc22a46e.svn-base b/.svn/pristine/4a/4a1142a6a4e158da91749acd63c803e7bc22a46e.svn-base Binary files differ. diff --git a/.svn/pristine/4a/4a34b464ff0351ebed386a8656c25094c4fb65d5.svn-base b/.svn/pristine/4a/4a34b464ff0351ebed386a8656c25094c4fb65d5.svn-base Binary files differ. diff --git a/.svn/pristine/4b/4b6bad4d36156104414a6f9246256336c224d3a2.svn-base b/.svn/pristine/4b/4b6bad4d36156104414a6f9246256336c224d3a2.svn-base Binary files differ. diff --git a/.svn/pristine/4b/4b74495fd6023d56741c217e236385b97e29350b.svn-base b/.svn/pristine/4b/4b74495fd6023d56741c217e236385b97e29350b.svn-base Binary files differ. diff --git a/.svn/pristine/4b/4bb4276e9928ca9c4af4c219d3ff8b1d4800b323.svn-base b/.svn/pristine/4b/4bb4276e9928ca9c4af4c219d3ff8b1d4800b323.svn-base Binary files differ. diff --git a/.svn/pristine/4b/4bfc4ebc481235490e6ba6fe1416088341bb580a.svn-base b/.svn/pristine/4b/4bfc4ebc481235490e6ba6fe1416088341bb580a.svn-base Binary files differ. diff --git a/.svn/pristine/4c/4cbd98953ecf573b8ce998c39b30cfc24661fb77.svn-base b/.svn/pristine/4c/4cbd98953ecf573b8ce998c39b30cfc24661fb77.svn-base Binary files differ. diff --git a/.svn/pristine/4c/4cf9f279cbb041637069b08e4fe569579b1174f8.svn-base b/.svn/pristine/4c/4cf9f279cbb041637069b08e4fe569579b1174f8.svn-base @@ -1,709 +0,0 @@ -#ifndef ACTOR_H -#define ACTOR_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "AnimationGraph.h" -#include "Physics.h" -#include "Terrain.h" -//#include "ActorHandle.h" - -//Actor State Defines -#define IDLE 10 -#define RUN 20 -#define IDLE_BEGIN 30 -#define JUMP 40 -#define WANDER 50 -#define PURSUE 60 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 -// - -struct Trajectory -{ - float slope; - int dir; -}; - -class ActorHandleManager; -class SpatialMonitor; - -class ActorBase -{ -public: - - ActorBase() : mAHM(NULL), mHandle(-1) {} - - void InitializeHandle(ActorHandleManager* AHM); - - int SetHandle(int i) - { - return mHandle = i; - } - - int GetHandle() - { - return mHandle; - } - - -protected: - - ActorHandleManager* mAHM; - int mHandle; -}; - -class Actor : public virtual ActorBase, public EventReceiver -{ -public: - - Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* prtLib, EventReceiver* SoundLib); - - virtual bool UpdateAnimation() = 0; - - virtual bool ActorUpdate() = 0; - - int GetX() - { - return mPosData.x; - } - - int GetY() - { - return mPosData.y; - } - - int GetHeight() - { - return mPosData.h; - } - - int GetWidth() - { - return mPosData.w; - } - - int GetDrawX() - { - return mDrawPos.x; - } - - int GetDrawY() - { - return mDrawPos.y; - } - - int GetDrawHeight() - { - return mDrawPos.h; - } - - int GetDrawWidth() - { - return mDrawPos.w; - } - - SDL_Rect* GetPosition() - { - return &mPosData; - } - - SDL_Rect* GetDrawPosition() - { - return &mDrawPos; - } - - SDL_Rect CalcDrawRect() - { - if (mDir == RIGHT) - { - mDrawPos.x = mOff_x; - } - else //mDir = LEFT - { - mDrawPos.x = -(mDrawPos.w + (mOff_x - mPosData.w) ); - } - return mDrawPos; - } - - int GetOpacity() - { - return mOpacity; - } - - int SetOpacity(int i) - { - return mOpacity = i; - } - - Frame* GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - - BinaryTree* GetHats() - { - return &mHats; - } - - int AttachHat(Actor* hat) - { - mHats.Insert(hat->GetHandle(), hat); - return hat->GetHandle(); - } - -// int SetHandle(int i) -// { -// return mHandle = i; -// } -// -// int GetHandle() -// { -// return mHandle; -// } - - - AnimGraph* GetAnimGraph() - { - return mAnimGraph; - } - - void PassAnimGraphState() - { - mAnimGraph->GiveActorState(&mAnimID); - } - - int GetAnimID() - { - return mAnimID; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool IsBlocking() - { - return mBlocking; - } - - EventFeed mFeed; - -protected: - - AnimGraph* mAnimGraph; - Frame* mFrame; - int mOpacity; - - int mState; - int mDir; - int mAnimID; - - SDL_Rect mPosData; //Where the actors collision box is - SDL_Rect mDrawPos; //Where the actor is drawn relative to its physical position (mPosData) - - int mOff_x; - int mOff_y; - - BinaryTree mHats; - -// ActorHandleManager* mAHM; -// int mHandle; - - EventReceiver* mParticleLib; //Deals with the spawning of particles - - EventReceiver* mSoundLib; //Deals with sounds and the spawning of point sounds - int mSoundChannel; //used to play sounds directly from the actor - - bool mBlocking; //determines if an actor blocks other actors from passing through it -}; - -class Collider : public virtual ActorBase -{ -public: - - Collider(SpatialMonitor* spat) : mSpat(spat), mSpatCell(-1) - { - //if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collision system. - } - - void InitializeCollider(); - - int SetSpatCell(int i) - { - return mSpatCell = i; - } - - int GetSpatCell () - { - return mSpatCell; - } - -protected: - SpatialMonitor* mSpat; - int mSpatCell; -}; - -class Winch : public Actor, public Collider -{ -public: - Winch(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, Actor* gate, int dir) : Actor(AnimData, Pos, DrawPos, AHM, prtLib, SoundLib), Collider(spat), mGate(gate) - { - InitializeCollider(); - mState = IDLE; - mDir = dir; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mGate; -}; - -class Blocker : public Actor, public Collider -{ -public: - Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Test_Blocker : public Blocker -{ -public: - Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Gate : public Blocker -{ -public: - Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir = RIGHT); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Interactable : public Actor, public Collider -{ -public: - - Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Talker : public Interactable -{ -public: - Talker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mStr(str) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - char* mStr; -}; - -class Gateman : public Talker -{ -public: - - //Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, EventReceiver* gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGate(gate) - Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) - { - mLOS = Pos; - mLOS.w = 250; - mLOS.x = mLOS.x - 125 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mLOS; - - int mGateH; //handle for paired gate - - bool mTalked; -}; - -class Door : public Interactable -{ -public: - - Door(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int x_off, int y_off) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTele_Pos = mPosData; - mTele_Pos.x += x_off; - mTele_Pos.y += y_off; - } - - SDL_Rect* GetTelePos() - { - return &mTele_Pos; - } - - void SetTeleDest(SDL_Rect* dest) - { - mTele_Dest = dest; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mTele_Pos; - SDL_Rect* mTele_Dest; -}; - -class Mobile : public Actor -{ -public: - - //Mobile() : mXspd(0), mYspd(0) {} - - Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, EventReceiver* prtLib, EventReceiver* SoundLib); - - void SetPosition(SDL_Rect* Dest); - - bool ModifyActorPosition(int x, int y); - - SDL_Rect MoveActor(int xspd, int yspd); - - int MoveActorDirect(float xspd, float yspd); - -protected: - float mXspd; - float mYspd; - int mXmove; - int mYmove; -}; - -class Hat : public Mobile -{ -public: - Hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mTarget(tar), Mobile(AnimData, *tar->GetPosition(), *tar->GetDrawPosition(), AHM, prtLib, SoundLib) - { - mEnabled = true; - } - - bool IsEnabled() - { - return mEnabled; - } - - void ToggleHat(bool state) - { - mEnabled = state; - } - - bool EventProcess(Event eve) - { - return true; - } - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - bool mEnabled; -}; - -class bad_hat : public Hat -{ -public: - - bad_hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - } - - bool UpdateAnimation() - { - switch (mState) - { - case RUN: - default: - mAnimID = IDLE; - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class sword : public Hat -{ -public: - - sword(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - mEnabled = false; - } - - bool UpdateAnimation() - { - mAnimID = mTarget->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class Character : public Mobile, public Collider -{ -public: - - //Character() {} - - Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool DetectFalling(); - - bool UpdatePhysics(); - - bool UpdateFireables(); - - Trajectory GetTrajectory(SDL_Rect Dest, SDL_Rect Init); - - SDL_Rect RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount = 0); - - bool HandleDirectionalCollisions(SDL_Rect& Destination); - - bool UpdatePosition(); - - TerrainCollisionManager* getColMan() - { - return &mColMan; - } - -protected: - - SDL_Rect mDestData; - colman_Character mColMan; - PhysicsManager mPhysMan; -}; - -class Player : public Character -{ -public: - //Player() {} - - Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalkerID(-1), mHP(100), mHPmax(100), mRecover(0), mTouch(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTouch.h = Pos.h; - mTouch.w = 18; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - - int* GetHP() - { - return &mHP; - } - - int* GetMaxHP() - { - return &mHPmax; - } - - void SetSword(int index) - { - mHatIndex_Sword = index; - } - -protected: - -// bool mTalking; - int mTalkerID; - - bool mWielded; - int mHatIndex_Sword; - - int mHP; - int mHPmax; - - int mRecover; //Timer to force recovery pause between jumps - - SDL_Rect mTouch; //Rect that deterimes what can be interacted with -}; - -class Loyal_Bug : public Character -{ -public: - Loyal_Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mMounted(false), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - bool mMounted; -}; - -class Bug : public Character -{ -public: - Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - -protected: - - int mTimer; - -}; - -class Wanderer : public Character -{ -public: - - //Wanderer() : mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) {} - - Wanderer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWanderTimer(0), mWanderLimit(0), mWaitTimer(0), mWaitLimit(0) - { - } - - bool Wander(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -class Pursuer : public Character -{ -public: - //Pursuer() {} - - Pursuer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mRestTimer(0) - { - mState = IDLE; - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - int mRestTimer; - SDL_Rect mLOS; -}; - -class Rabbit : public Character -{ -public: -// Rabbit() {} - - Rabbit(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) - { - } - - bool Hop(); - - bool Wander(); - - bool Behave(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/4d/4d8995d7e2e4108d85e6d285cf20349250f00f06.svn-base b/.svn/pristine/4d/4d8995d7e2e4108d85e6d285cf20349250f00f06.svn-base Binary files differ. diff --git a/.svn/pristine/4f/4f1e78fab9e89f3956b37d4b0626489c4c297058.svn-base b/.svn/pristine/4f/4f1e78fab9e89f3956b37d4b0626489c4c297058.svn-base Binary files differ. diff --git a/.svn/pristine/4f/4f68961a0eda30a1cbec027db605949185c3d979.svn-base b/.svn/pristine/4f/4f68961a0eda30a1cbec027db605949185c3d979.svn-base @@ -1,31 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/4f/4f793e4fc3af4fb48672df19d04520b136c4be91.svn-base b/.svn/pristine/4f/4f793e4fc3af4fb48672df19d04520b136c4be91.svn-base Binary files differ. diff --git a/.svn/pristine/4f/4fb67557c26794aa62e6cc02c815dce965b294d9.svn-base b/.svn/pristine/4f/4fb67557c26794aa62e6cc02c815dce965b294d9.svn-base Binary files differ. diff --git a/.svn/pristine/4f/4fe7f6b9ce7878f93ee3c9e83a491bc9ec361cb6.svn-base b/.svn/pristine/4f/4fe7f6b9ce7878f93ee3c9e83a491bc9ec361cb6.svn-base Binary files differ. diff --git a/.svn/pristine/50/502509e254c16e83fd253447c08850cd220812d5.svn-base b/.svn/pristine/50/502509e254c16e83fd253447c08850cd220812d5.svn-base @@ -1,192 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -//#define RELEASE -#define DEBUG - - -#include <vector> -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include <stdlib.h> -#include <math.h> -//#include <windows.h> -#include "cJSON.h" -#include "SDL.h" -#include "SDL_ttf.h" -#include "SDL_Mixer.h" -#include "BinaryTree.h" - -//Terrain Defines -#define AIR 0x00 -#define GROUND 0x01 -#define PLATFORM 0x02 -#define WATER 0x03 -// - -//Screen size defines //These must be a whole multiple of the camera size otherwise pixel stretching occurs -#define SCREEN_W 1344 -#define SCREEN_H 756 -// - -//Direction Defines. Used by actor and terrain systems -#define DOWN 3 -#define UP 2 -#define LEFT 1 // must be 1 because of SDL draw function -#define RIGHT 0 // must be 0 because of SDL draw function -// - -//Time Defines -#define MS_PER_FRAME 16 //this is normal speed -//#define MS_PER_FRAME 40 //useful slow speed -#define FRAMES_PER_SECOND (1/MS_PER_FRAME)*1000 //62.5 @16ms - -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -// - - -//Actor State Defines -#define IDLE 10 -#define IDLE_DRAWN 11 -#define STUN 12 -#define FALL 20 -#define FALL_DRAWN 21 -#define JUMP_TO_FALL 30 -#define JUMP_TO_FALL_DRAWN 31 -#define RUN 40 -#define RUN_DRAWN 41 -#define IDLE_BEGIN 50 -#define IDLE_BEGIN_DRAWN 51 -#define JUMP 60 -#define JUMP_DRAWN 61 -#define WANDER 70 -#define PURSUE 80 -#define SWIM 110 -#define SWIM_BEGIN 111 -#define TREAD 120 -#define LOOK 121 -#define EAT 122 -#define SLEEP 123 -#define PARTICLE 124 -#define ATTACK 130 -#define ALIVE 140 -#define DEAD 150 -#define DIE 151 - -#define SWIM_LEFT 160 -#define SWIM_RIGHT 161 -#define SWIM_DOWN 162 -#define SWIM_UP 163 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 - -#define WALK_LEFT 0x5 -#define WALK_RIGHT 0x06 -#define WALK_DOWN 0x007 -#define WALK_UP 0x0008 - -#define GATE_UP 201 -#define GATE_DOWN 202 -#define GATE_LOWER 203 -#define GATE_LOWER_BEGIN 204 -#define GATE_RAISE 205 - -#define SPLASH 90 -#define HAZE 100 - -#define FADE_BLACK 210 -#define FADE_RED 211 -// - -//This is a strange place for this stuff. Should maybe be its own ParticleTypeData.h -struct drift_data -{ - int mXspd; - int mYspd; -}; - -union ParticleTypeData -{ - bool NoData; - drift_data drift; -}; - -ParticleTypeData NullPTdata(); -// - -//struct ActHandle -//{ -// int id; -//}; - -typedef int ActHandle; - -class Time -{ -public: - - Time() : mCycle(0) {}; - - int ProgressCycle() - { - mCycle = (mCycle + 1); - return mCycle; - } - - int GetCurrentCycle() - { - return mCycle; - } - - int GetCurrentMS() - { - return (mCycle*MS_PER_FRAME); - } -protected: - - int mCycle; -}; - -class Random -{ -public: - Random(); - - int RandRange(int min, int max); -protected: - - int mSeed; -}; - -int GetRealTimeMS(); - -SDL_Surface* LoadSurfaceBMP(const char* filename); - -TTF_Font* LoadFont(char* file, int ptsize); - -cJSON * LoadJSON(const char* filename); - -void PrintJSON(cJSON* json); - -float GetSign(float x); - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2); - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point); //Detects if the center of rectangle "point" is within rectangle "zone" - -int CalcDistance(int x1, int y1, int x2, int y2); - -int EvenOutcomes(int NumberofOutcomes); - -bool IsEven(int i); - -extern Time* gTime; -extern Random* gRandom; - -#endif diff --git a/.svn/pristine/50/506ff7434a1d1866f41d1fe759b880b3eda6c875.svn-base b/.svn/pristine/50/506ff7434a1d1866f41d1fe759b880b3eda6c875.svn-base Binary files differ. diff --git a/.svn/pristine/51/510499db797e1ac7b6af2e6db86beeaef8f09c80.svn-base b/.svn/pristine/51/510499db797e1ac7b6af2e6db86beeaef8f09c80.svn-base Binary files differ. diff --git a/.svn/pristine/51/5188be91d9d0b74de1ca9a011354048a5a7ac16f.svn-base b/.svn/pristine/51/5188be91d9d0b74de1ca9a011354048a5a7ac16f.svn-base Binary files differ. diff --git a/.svn/pristine/51/51c036e5ebbf8d6279a5b6eb8c265895bd21097a.svn-base b/.svn/pristine/51/51c036e5ebbf8d6279a5b6eb8c265895bd21097a.svn-base Binary files differ. diff --git a/.svn/pristine/52/529416416db0640be7f2592ab633b552fb60110c.svn-base b/.svn/pristine/52/529416416db0640be7f2592ab633b552fb60110c.svn-base Binary files differ. diff --git a/.svn/pristine/52/52e18bd869fa6b94966df8832149fe30d217b16f.svn-base b/.svn/pristine/52/52e18bd869fa6b94966df8832149fe30d217b16f.svn-base Binary files differ. diff --git a/.svn/pristine/53/53ef5959fa40903e55c3018ea89926de95767170.svn-base b/.svn/pristine/53/53ef5959fa40903e55c3018ea89926de95767170.svn-base @@ -1,105 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'LineSur'. </DESCRIPTION> - <FUNCTION>DrawText</FUNCTION> - <DECORATED>?DrawText@@YA_NPAUSDL_Renderer@@PAU_TTF_Font@@PADUSDL_Color@@3@Z</DECORATED> - <FUNCLINE>91</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>93</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>96</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'LineSur' may be NULL (Enter this branch)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>98</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'LineSur' is an In/Out argument to 'SDL_SetColorKey' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\sdl2-2.0.4\include\sdl_surface.h:224)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'LineSur' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/54/54409697aa6122190669cac73b49866f5210b184.svn-base b/.svn/pristine/54/54409697aa6122190669cac73b49866f5210b184.svn-base Binary files differ. diff --git a/.svn/pristine/55/552ac7e9d978412a18325ffd788dc544ef1fe2ea.svn-base b/.svn/pristine/55/552ac7e9d978412a18325ffd788dc544ef1fe2ea.svn-base @@ -1,43 +0,0 @@ -#include "symbol.h" - -int ConvertStringToSymbol(char * str) -{ - - if (!strcmp(str, "IDLE") ) { return IDLE; } - else if (!strcmp(str, "IDLE_DRAWN") ) { return IDLE_DRAWN; } - else if (!strcmp(str, "RUN") ) { return RUN; } - else if (!strcmp(str, "RUN_DRAWN") ) { return RUN_DRAWN; } - else if (!strcmp(str, "JUMP") ) { return JUMP; } - else if (!strcmp(str, "JUMP_DRAWN") ) { return JUMP_DRAWN; } - else if (!strcmp(str, "JUMP_TO_FALL") ) { return JUMP_TO_FALL; } - else if (!strcmp(str, "JUMP_TO_FALL_DRAWN") ) { return JUMP_TO_FALL_DRAWN; } - else if (!strcmp(str, "FALL") ) { return FALL; } - else if (!strcmp(str, "FALL_DRAWN") ) { return FALL_DRAWN; } - else if (!strcmp(str, "IDLE_BEGIN") ) { return IDLE_BEGIN; } - else if (!strcmp(str, "IDLE_BEGIN_DRAWN") ) { return IDLE_BEGIN_DRAWN; } - else if (!strcmp(str, "SWIM") ) { return SWIM; } - else if (!strcmp(str, "SWIM_BEGIN") ) { return SWIM_BEGIN; } - else if (!strcmp(str, "TREAD") ) { return TREAD; } - else if (!strcmp(str, "DIE") ) { return DIE; } - else if (!strcmp(str, "DEAD") ) { return DEAD; } - else if (!strcmp(str, "ATTACK") ) { return ATTACK; } - else if (!strcmp(str, "LOOK") ) { return LOOK; } - else if (!strcmp(str, "EAT") ) { return EAT; } - else if (!strcmp(str, "SLEEP") ) { return SLEEP; } - else if (!strcmp(str, "PARTICLE") ) { return PARTICLE; } - else if (!strcmp(str, "SPLASH") ) { return SPLASH; } - else if (!strcmp(str, "HAZE") ) { return HAZE; } - else if (!strcmp(str, "GATE_UP") ) { return GATE_UP; } - else if (!strcmp(str, "GATE_DOWN") ) { return GATE_DOWN; } - else if (!strcmp(str, "GATE_LOWER") ) { return GATE_LOWER; } - else if (!strcmp(str, "GATE_LOWER_BEGIN") ) { return GATE_LOWER_BEGIN; } - else if (!strcmp(str, "GATE_RAISE") ) { return GATE_RAISE; } - else if (!strcmp(str, "LEFT") ) { return LEFT; } - else if (!strcmp(str, "RIGHT") ) { return RIGHT; } - else if (!strcmp(str, "NONE") ) { return -1; } - else - { - gCons->ConsPrintf("%s : unrecognized string\n", str); - return NULL; - } -} diff --git a/.svn/pristine/55/55fd3dbce23d4f5f7fc8b366a7feed8e336d0eb8.svn-base b/.svn/pristine/55/55fd3dbce23d4f5f7fc8b366a7feed8e336d0eb8.svn-base Binary files differ. diff --git a/.svn/pristine/56/5640282c533ddf254a189964603ca70ca69cb45e.svn-base b/.svn/pristine/56/5640282c533ddf254a189964603ca70ca69cb45e.svn-base Binary files differ. diff --git a/.svn/pristine/56/567c13e0cf5e41d4ec1c0e5b549e4aaa66842c6e.svn-base b/.svn/pristine/56/567c13e0cf5e41d4ec1c0e5b549e4aaa66842c6e.svn-base Binary files differ. diff --git a/.svn/pristine/56/56d7cda938c39d4d6643564a618d68f74341c5e1.svn-base b/.svn/pristine/56/56d7cda938c39d4d6643564a618d68f74341c5e1.svn-base Binary files differ. diff --git a/.svn/pristine/57/57b5a4ee66a081d72689149ffd261c7792cc4df9.svn-base b/.svn/pristine/57/57b5a4ee66a081d72689149ffd261c7792cc4df9.svn-base Binary files differ. diff --git a/.svn/pristine/58/581cf65497edeedfc9f5abe37697bb76558fd8e8.svn-base b/.svn/pristine/58/581cf65497edeedfc9f5abe37697bb76558fd8e8.svn-base Binary files differ. diff --git a/.svn/pristine/58/582e1c5e0d9c992713d3b453c666d11b982ffc0e.svn-base b/.svn/pristine/58/582e1c5e0d9c992713d3b453c666d11b982ffc0e.svn-base @@ -1,50 +0,0 @@ -#ifndef CONTEXT_H -#define CONTEXT_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -//#include "Level.h" - -class Context -{ -public: - - Context() {} - - virtual bool Load(const char* filename) = 0; - - virtual bool Update() = 0; - - SDL_Renderer* mRen; - EventFeed mFeed; - -protected: -}; - -class ContextManager : public EventReceiver -{ -public: - - ContextManager() {} - - ContextManager(char* GameDataPath) : mGameDataPath(GameDataPath) {} - - bool LogContext(Context* con, char* name); - - bool LoadContext(char* ContextName); - - bool ContextUpdate(); - - bool EventProcess(Event eve); - -protected: - - char* mGameDataPath; - Context* mActiveContext; - std::vector<Context*> mContexts; - std::vector<char*> mNames; - -}; - -#endif diff --git a/.svn/pristine/58/5851915f0adcb80913a2124c1413ff5a332113f5.svn-base b/.svn/pristine/58/5851915f0adcb80913a2124c1413ff5a332113f5.svn-base Binary files differ. diff --git a/.svn/pristine/59/593c8726960cce0ef8c114b51f326758efc2b993.svn-base b/.svn/pristine/59/593c8726960cce0ef8c114b51f326758efc2b993.svn-base Binary files differ. diff --git a/.svn/pristine/59/598ed32783fb3305644ff972484144d85395f620.svn-base b/.svn/pristine/59/598ed32783fb3305644ff972484144d85395f620.svn-base Binary files differ. diff --git a/.svn/pristine/59/59d4a1f4f587843b327367d6bbc06e72732ed3c6.svn-base b/.svn/pristine/59/59d4a1f4f587843b327367d6bbc06e72732ed3c6.svn-base Binary files differ. diff --git a/.svn/pristine/5a/5a0c55913650e4016af21033667007721ba2654d.svn-base b/.svn/pristine/5a/5a0c55913650e4016af21033667007721ba2654d.svn-base Binary files differ. diff --git a/.svn/pristine/5a/5aacbee6025a7fc5220bfe8a0f47138865c592a4.svn-base b/.svn/pristine/5a/5aacbee6025a7fc5220bfe8a0f47138865c592a4.svn-base @@ -1,90 +0,0 @@ -#ifndef ACTORHANDLE_H -#define ACTORHANDLE_H - -#include "Console.h" -#include "Event.h" -#include "Utils.h" -#include "Actor.h" - -struct HandleBind -{ - ActHandle mID; - EventReceiver* mAct; -}; - -class ActorHandleManager : public EventReceiver -{ -public: - - ActorHandleManager() : mNextNewID(0) - { - mHandleTree = BinaryTree(); - //mHandleTree = &Node(mNextID); - } - - int AssignHandle(Actor* act) - { - //HandleBind hb = { mNextID, act }; - //mHandles.push_back(hb); //record the handle and Actor/EventReceiverPointer - - //Node* Bind = new Node(mNextID, act); - - mHandleTree.Insert(mNextNewID, act); - - mNextNewID++; - - return mNextNewID-1; - //return hb.mHandle; - } - - int ReclaimHandle(int id) //I'm not sure if recycling ID's makes sense or how to do it - { - //mHandleTree.Search(id)->Delete() - } - - Actor* GetActorAddress(int id) - { - Actor* Address = (Actor*)(mHandleTree.Search(id))->GetData(); - if (Address == NULL) - { - return NULL; - } - else - { - return Address; - } - } - - bool EventProcess(Event eve) - { -// switch (*eve.GetEventType()) -// { -// case ASSIGN_HANDLE: -// -// gCons->ConsPrintf("Handle Assigned to actor\n"); -// return AssignHandle((Actor*)eve.GetReturnAddress()); -// break; -// case GET_ACTOR_ADDRESS: -// return GetActorAddress(eve.GetEventData()->i); -// break; -// default: -// gCons->ConsPrintf("Actor Handle Manager received unrecognized event\n"); -// return false; -// break; -// } - return true; - } - -protected: - - int UpdateNextHandle() // see reclaim handle - { - - } - - int mNextNewID; - BinaryTree mHandleTree; - -}; - -#endif - \ No newline at end of file diff --git a/.svn/pristine/5b/5bedc2fdc1bfd994d63bded6bc792fea65e991fc.svn-base b/.svn/pristine/5b/5bedc2fdc1bfd994d63bded6bc792fea65e991fc.svn-base Binary files differ. diff --git a/.svn/pristine/5c/5c0341b7a6534169101c68bd2d74e25bd3d6e7a6.svn-base b/.svn/pristine/5c/5c0341b7a6534169101c68bd2d74e25bd3d6e7a6.svn-base @@ -1,355 +0,0 @@ -#include "Terrain.h" -#include "DiagnosticDraw.h" - - -TerrainCollisionManager::TerrainCollisionManager(SDL_Surface* Col_Map) -{ - mCol_Map = Col_Map; -} - -bool TerrainCollisionManager::DetectTerrainIntersect(SDL_Rect* Bounds, int ttype1, int ttype2) -{ - if (mCol_Map->format->format != SDL_PIXELFORMAT_INDEX8) - { - gCons->ConsPrintf("Non-INDEX8 Collision Map Detected\n"); - return false; - } - Uint8* PixMap = (Uint8*)mCol_Map->pixels; - if (Bounds->y < 0) - { - Bounds->y = 0; - } - if (Bounds->y > (mCol_Map->h - Bounds->h)) - { - Bounds->y = (mCol_Map->h - Bounds->h); - } - for (int y = Bounds->y; y < (Bounds->y + Bounds->h); y++) - { - if (Bounds->x < 0) - { - Bounds->x = 0; - } - if (Bounds->x > (mCol_Map->pitch - Bounds->w)) - { - Bounds->x = (mCol_Map->pitch - Bounds->w); - } - - if (ttype2 == -1) - { - for (int x = Bounds->x; x < (Bounds->x + Bounds->w); x++) - { - if (PixMap[(y*mCol_Map->pitch) + x] == ttype1) - { - //gCons->ConsPrintf("ground collision detected \n"); - //gDiagDraw->LogPixel(x, y); - return true; - } - else - { - //gCons->ConsPrintf("no collision detected \n"); - } - } - } - else - { - for (int x = Bounds->x; x < (Bounds->x + Bounds->w); x++) - { - if ( (PixMap[(y*mCol_Map->pitch) + x] == ttype1) || (PixMap[(y*mCol_Map->pitch) + x] == ttype2) ) - { - //gCons->ConsPrintf("ground collision detected \n"); - //gDiagDraw->LogPixel(x, y); - return true; - } - } - } - - } - return false; -} - -bool TerrainCollisionManager::DetectWorldEscape(SDL_Rect* Bounds) -{ - //if(Bounds->x) - return false; -} - -void TerrainCollisionManager::DrawTerrain() -{ - SDL_Rect bds; - SDL_Rect* Bounds = &bds; - Bounds->x = 0; - Bounds->y = 0; - Bounds->h = mCol_Map->h; - Bounds->w = mCol_Map->w; - - if (mCol_Map->format->format != SDL_PIXELFORMAT_INDEX8) - { - gCons->ConsPrintf("Non-INDEX8 Collision Map Detected\n"); - } - Uint8* PixMap = (Uint8*)mCol_Map->pixels; - if (Bounds->y < 0) - { - Bounds->y = 0; - } - if (Bounds->y >(mCol_Map->h - Bounds->h)) - { - Bounds->y = (mCol_Map->h - Bounds->h); - } - for (int y = Bounds->y; y < (Bounds->y + Bounds->h); y++) - { - if (Bounds->x < 0) - { - Bounds->x = 0; - } - if (Bounds->x >(mCol_Map->pitch - Bounds->w)) - { - Bounds->x = (mCol_Map->pitch - Bounds->w); - } - - for (int x = Bounds->x; x < (Bounds->x + Bounds->w); x++) - { - if ((PixMap[(y*mCol_Map->pitch) + x] == GROUND) || (PixMap[(y*mCol_Map->pitch) + x] == PLATFORM)) - { - //gCons->ConsPrintf("ground collision detected \n"); - gDiagDraw->LogPixel(x, y); - } - } - } -} - -//colman_Character functions -colman_Character::colman_Character(SDL_Surface* Col_Map, SDL_Rect* PosData, SDL_Rect* DestData, int EdgeThickness) : TerrainCollisionManager(Col_Map) -{ - mPlatformCollision = true; - - mWallThickness = EdgeThickness; - - mPosition = PosData; - mDestination = DestData; -} - -bool colman_Character::DetectEdgeCollision(SDL_Rect* Bounds) -{ - SDL_Rect LowerBounder; - LowerBounder.h = mWallThickness; - LowerBounder.w = Bounds->w; - LowerBounder.x = Bounds->x; - LowerBounder.y = ((Bounds->y + Bounds->h) - LowerBounder.h); - - SDL_Rect UpperBounder; - UpperBounder.h = mWallThickness; - UpperBounder.w = Bounds->w; - UpperBounder.x = Bounds->x; - UpperBounder.y = Bounds->y; - - SDL_Rect RightBounder; - RightBounder.w = mWallThickness; - RightBounder.x = ((Bounds->x + Bounds->w) - RightBounder.w); - RightBounder.h = Bounds->h; - RightBounder.y = Bounds->y; - - SDL_Rect LeftBounder; - LeftBounder.w = mWallThickness; - LeftBounder.x = Bounds->x; - LeftBounder.h = Bounds->h; - LeftBounder.y = Bounds->y; - - - if (mPlatformCollision == true) - { - if ((DetectTerrainIntersect(&LowerBounder, GROUND, PLATFORM) == true) || - (DetectTerrainIntersect(&UpperBounder, GROUND ) == true) || - (DetectTerrainIntersect(&RightBounder, GROUND ) == true) || - (DetectTerrainIntersect(&LeftBounder , GROUND ) == true)) - { - return true; - } - else - { - return false; - } - } - else //PlatformCollision if false - { - if ((DetectTerrainIntersect(&LowerBounder, GROUND) == true) || - (DetectTerrainIntersect(&UpperBounder, GROUND) == true) || - (DetectTerrainIntersect(&RightBounder, GROUND) == true) || - (DetectTerrainIntersect(&LeftBounder , GROUND) == true)) - { - return true; - } - else - { - return false; - } - } -} - -int colman_Character::DetectIncline(int StepSizeLimit) //StepSizeLimit is the smallest step that CANNOT be climbed -{ - SDL_Rect Scanner = *mDestination; - Scanner.h = 1; - - if (mPlatformCollision == true) - { - for (int i = 0; i < StepSizeLimit; i++) - { - Scanner.y = ((mDestination->y + mDestination->h) - StepSizeLimit) + i; - if (DetectTerrainIntersect(&Scanner, GROUND, PLATFORM) == true) - { - //gCons->ConsPrintf("Step is %i Pixels tall \n", (StepSizeLimit - i) ); - return (StepSizeLimit - i); - } - } - } - else - { - for (int i = 0; i < StepSizeLimit; i++) - { - Scanner.y = ((mDestination->y + mDestination->h) - StepSizeLimit) + i; - if (DetectTerrainIntersect(&Scanner, GROUND) == true) - { - //gCons->ConsPrintf("Step is %i Pixels tall \n", (StepSizeLimit - i) ); - return (StepSizeLimit - i); - } - } - } - return StepSizeLimit; -} - -bool colman_Character::DetectFalling() -{ - SDL_Rect GroundDetector = *mPosition; - GroundDetector.y = (mPosition->y + mPosition->h); - GroundDetector.h = 1; - - return !( DetectTerrainIntersect(&GroundDetector, GROUND, PLATFORM)); -} - -bool colman_Character::DetectDirectionalCollision(SDL_Rect* bounds, int dir) -{ - SDL_Rect bumper = *bounds; - switch (dir) - { - case LEFT: - bumper.x -= 1; - bumper.w = 1; - bumper.h -= 4; - break; - case RIGHT: - bumper.x += bumper.w; - bumper.w = 1; - bumper.h -= 4; - break; - case UP: - bumper.h = 1; - break; - case DOWN: - bumper.y += bumper.h; - bumper.h = 1; - break; - } - - if ((mPlatformCollision == true) && (dir == DOWN)) - { - if (DetectTerrainIntersect(&bumper, GROUND, PLATFORM)) - { - return true; - } - else - { - return false; - } - } - else //PlatformCollision if false - { - if (DetectTerrainIntersect(&bumper, GROUND)) - { - return true; - } - else - { - return false; - } - } -} - -bool colman_Character::DetectSideCollision(SDL_Rect* Bounds) -{ - - SDL_Rect RightDetector; - RightDetector.w = 1; - RightDetector.y = Bounds->y; - RightDetector.x = (Bounds->x + Bounds->w); - RightDetector.h = Bounds->h - 1; - - SDL_Rect LeftDetector; - LeftDetector.w = 1; - LeftDetector.y = Bounds->y; - LeftDetector.x = (Bounds->x - 1); - LeftDetector.h = Bounds->h - 1; - - return (DetectTerrainIntersect(&LeftDetector, GROUND) | DetectTerrainIntersect(&RightDetector, GROUND)); -} - -bool colman_Character::DetectSwim() -{ - SDL_Rect Under; - Under.h = 1; - Under.w = mPosition->w; - Under.x = mPosition->x; - Under.y = (mPosition->y + 6);//6 shouldn't hardcoded - - return DetectTerrainIntersect(&Under, WATER); -} - -bool colman_Character::DetectSurface() -{ - SDL_Rect Under; - Under.h = 1; - Under.w = mPosition->w; - Under.x = mPosition->x; - Under.y = (mPosition->y + 6);//6 shouldn't hardcoded - - SDL_Rect Over = Under; - Over.y -= 1; - - //gDiagDraw->LogDiagRect(Over); - //gDiagDraw->LogDiagRect(Under); - - if ((DetectTerrainIntersect(&Under, WATER) == true) && (DetectTerrainIntersect(&Over, AIR) == true)) - { - //gCons->ConsPrintf("surface detected\n"); - return true; - } - else - { - return false; - } -} - -int colman_Character::FindSurface() -{ - SDL_Rect surface_scan = *mPosition; - surface_scan.w = 1; - surface_scan.h = 1; - for (int y = 0; y < mPosition->h; y++) - { - surface_scan.y += y; - if (DetectTerrainIntersect(&surface_scan, WATER)) - { - return surface_scan.y - 1; - gCons->ConsPrintf("Surface Found at y = %i", surface_scan.y); - } - } - return -1; -} - -bool colman_Character::DetectWade() -{ - SDL_Rect LowerBounder = *mPosition; - LowerBounder.h = mWallThickness; - LowerBounder.y = ((mPosition->y + mPosition->h) - LowerBounder.h); - - return DetectTerrainIntersect(&LowerBounder, WATER); -} diff --git a/.svn/pristine/5c/5cae4c64f60571dfe2b055ab349ab8afbddaf5af.svn-base b/.svn/pristine/5c/5cae4c64f60571dfe2b055ab349ab8afbddaf5af.svn-base Binary files differ. diff --git a/.svn/pristine/5d/5d19b708619f446a7317d1a9920765a083223287.svn-base b/.svn/pristine/5d/5d19b708619f446a7317d1a9920765a083223287.svn-base Binary files differ. diff --git a/.svn/pristine/5d/5d42783e0f784611e13154e1380ed3fc3627b57d.svn-base b/.svn/pristine/5d/5d42783e0f784611e13154e1380ed3fc3627b57d.svn-base Binary files differ. diff --git a/.svn/pristine/5e/5e022ceea59d0b8e4d3bf8e2760b6f95d48f6bca.svn-base b/.svn/pristine/5e/5e022ceea59d0b8e4d3bf8e2760b6f95d48f6bca.svn-base Binary files differ. diff --git a/.svn/pristine/5e/5e316770dbe4f50cd905fba97a2131a445e5c792.svn-base b/.svn/pristine/5e/5e316770dbe4f50cd905fba97a2131a445e5c792.svn-base Binary files differ. diff --git a/.svn/pristine/5e/5ecc5227c3f85106e0d461e4c372629d7176dd75.svn-base b/.svn/pristine/5e/5ecc5227c3f85106e0d461e4c372629d7176dd75.svn-base Binary files differ. diff --git a/.svn/pristine/61/610ba9c3fe3b1e58671c0d2e19c0cbf24199ef96.svn-base b/.svn/pristine/61/610ba9c3fe3b1e58671c0d2e19c0cbf24199ef96.svn-base Binary files differ. diff --git a/.svn/pristine/61/619b1204e2f5a838d6335cc5ccc6b45a5c7800f0.svn-base b/.svn/pristine/61/619b1204e2f5a838d6335cc5ccc6b45a5c7800f0.svn-base Binary files differ. diff --git a/.svn/pristine/62/6203ae065bb9a0f4cf25344e7e3fac5ee32f1b3b.svn-base b/.svn/pristine/62/6203ae065bb9a0f4cf25344e7e3fac5ee32f1b3b.svn-base @@ -1,186 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup> - <Filter Include="Source Files"> - <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> - <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> - </Filter> - <Filter Include="Header Files"> - <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> - <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> - </Filter> - <Filter Include="Resource Files"> - <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> - <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="Animation.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Camera.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Console.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="MiscDraw.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Terrain.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Utils.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Actor.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Event.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Physics.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Input.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="DiagnosticDraw.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="ActorCollision.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Main.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Level.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="cJSON.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="symbol.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Particle.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="sound.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="HUD.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Sequence.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Context.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Loading.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="AnimationGraph.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Layer.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Emitter.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Dialogue.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="ActorHandle.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="BinaryTree.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ClInclude Include="Actor.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Animation.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Camera.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Console.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="MiscDraw.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Terrain.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Utils.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Event.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Physics.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Input.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="ActorCollision.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="DiagnosticDraw.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Level.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="cJSON.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="symbol.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Particle.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="sound.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="HUD.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Sequence.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Context.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Loading.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="AnimationGraph.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Layer.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Emitter.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Dialogue.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="ActorHandle.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="BinaryTree.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> -</Project>- \ No newline at end of file diff --git a/.svn/pristine/62/62209d7574c09f2adb9a987db20b96f08a24f41d.svn-base b/.svn/pristine/62/62209d7574c09f2adb9a987db20b96f08a24f41d.svn-base Binary files differ. diff --git a/.svn/pristine/63/6374868281c735a6aebccd6f372b146bef567ddb.svn-base b/.svn/pristine/63/6374868281c735a6aebccd6f372b146bef567ddb.svn-base Binary files differ. diff --git a/.svn/pristine/63/63c892eb1a5e8fffb5f7d638f13eddb391e4fd80.svn-base b/.svn/pristine/63/63c892eb1a5e8fffb5f7d638f13eddb391e4fd80.svn-base Binary files differ. diff --git a/.svn/pristine/63/63d23bbd8328c15c9cc0280e859b2f3ca9674580.svn-base b/.svn/pristine/63/63d23bbd8328c15c9cc0280e859b2f3ca9674580.svn-base Binary files differ. diff --git a/.svn/pristine/64/640f542abc5f0670d1b16122c413b9539c9d8c6b.svn-base b/.svn/pristine/64/640f542abc5f0670d1b16122c413b9539c9d8c6b.svn-base Binary files differ. diff --git a/.svn/pristine/64/64d91b3f2291ad6f4560401405867d4366257618.svn-base b/.svn/pristine/64/64d91b3f2291ad6f4560401405867d4366257618.svn-base Binary files differ. diff --git a/.svn/pristine/64/64f2a85cb0ce09b148d5f68c6cf515cd97055706.svn-base b/.svn/pristine/64/64f2a85cb0ce09b148d5f68c6cf515cd97055706.svn-base @@ -1,208 +0,0 @@ -#ifndef EVENT_H -#define EVENT_H - -#include "Utils.h" -#include "Console.h" - -enum EventType -{ - UNSUBSCRIBE, - - ANIM_COMPLETE, - - KEY_DOWN, - KEY_UP, - - ACTOR_COLLISION, - SENSOR_COLLISION, - PLAYER_CHECK, - PLAYER_CONFIRM, - - MOVED_THIS_FRAME, - CHECK_RECT_SENSOR, - CHECK_BLOCKERS, - - CAMERA_TARGET, - - EMIT_PARTICLE, - CREATE_PARTICLE, - - CREATE_POINT_SOUND, - ACTOR_PLAY_SOUND, - SOUND_COMPLETE, - - SWITCH, - - DIALOGUE, - SCROLL, - TERMINATE_DIALOGUE, - - FADE, - - TELEPORT, - - INTERACT, - - DAMAGE, - - SPAWN, - DEATH -}; - -enum SensorType -{ - LOS, //Line Of Sight - Attack, - Touch, -}; - -struct SensorData -{ - SensorType st; - SDL_Rect* sensor; - int ID; -}; - -struct SensorResponse -{ - SensorType st; - void* er; -}; - -struct PointSpawnData -{ - int x; - int y; - char* name; - char* type; -}; - -struct DialogueData -{ - char* str; - void* talker; -}; - -union EventData -{ - int i; - void* p; - bool b; - char* str; - SDL_Rect* rect; - SensorData sd; - SensorResponse sr; - PointSpawnData psd; - DialogueData dd; -}; - -class Event -{ -public: - Event() : mType(), mEvData(), mReturnAddress(NULL) {} - - Event(EventType EvType) : mType(EvType), mEvData(), mReturnAddress(NULL) {} - - Event(EventType EvType, EventData EvData, void* ReturnAddress = NULL) : mType(EvType), mEvData(EvData), mReturnAddress(ReturnAddress) {} - - Event(EventType EvType, int j) : mType(EvType), mReturnAddress(NULL) - { - mEvData.i = j; - } - - Event(EventType EvType, void* P) : mType(EvType), mReturnAddress(NULL) - { - mEvData.p = P; - } - - Event(EventType EvType, char* str) : mType(EvType), mReturnAddress(NULL) - { - mEvData.str = str; - } - - Event(EventType EvType, SensorType SeType, SDL_Rect* sensor, int ID) : mType(EvType), mReturnAddress(NULL) //CHECK_RECT_SENSOR constructor - { - mEvData.sd.st = SeType; - mEvData.sd.sensor = sensor; - mEvData.sd.ID = ID; - } - - Event(EventType EvType, SensorType SeType, void* er) : mType(EvType), mReturnAddress(NULL) - { - mEvData.sr.st = SeType; - mEvData.sr.er = er; - } - - Event(EventType EvType, char* type, char* name, int x, int y) : mType(EvType), mReturnAddress(NULL) - { - mEvData.psd.x = x; - mEvData.psd.y = y; - mEvData.psd.name = name; - mEvData.psd.type = type; - } - - Event(EventType EvType, char* str, void* talk) : mType(EvType), mReturnAddress(NULL) - { - mEvData.dd.str = str; - mEvData.dd.talker = talk; - } - - EventType* GetEventType() - { - return &mType; - } - - EventData* GetEventData() - { - return &mEvData; - } - - void* GetReturnAddress() - { - if(mReturnAddress != NULL) - { - return mReturnAddress; - } - gCons->ConsPrintf("No return address listed for this event\n"); - return NULL; - } - -protected: - - EventType mType; - EventData mEvData; - void* mReturnAddress; -}; - -class EventReceiver -{ -public: - - virtual bool EventProcess(Event eve) = 0; -}; - -class EventFeed : EventReceiver -{ -public: - - EventFeed() : mSubs(), mNumberOfSubs(0) {} - - bool Subscribe(EventReceiver* sub); - - bool Unsubscribe(EventReceiver* sub); - - bool EventProcess(Event eve); - -protected: - - std::vector<EventReceiver*> mSubs; - int mNumberOfSubs; -}; - -class EventManager -{ -public: -protected: -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/65/65345b0197d365ae286b339e1d05c528712a597f.svn-base b/.svn/pristine/65/65345b0197d365ae286b339e1d05c528712a597f.svn-base Binary files differ. diff --git a/.svn/pristine/65/65b9c1e151fa431640aa73c269371b4cee3b13ae.svn-base b/.svn/pristine/65/65b9c1e151fa431640aa73c269371b4cee3b13ae.svn-base Binary files differ. diff --git a/.svn/pristine/66/666f844d5c75a354d015a434dc50f3c59b0c02a8.svn-base b/.svn/pristine/66/666f844d5c75a354d015a434dc50f3c59b0c02a8.svn-base Binary files differ. diff --git a/.svn/pristine/66/66cafce14212bc45f809b9bb2025442cc84ed8bd.svn-base b/.svn/pristine/66/66cafce14212bc45f809b9bb2025442cc84ed8bd.svn-base Binary files differ. diff --git a/.svn/pristine/68/68540681780b31a9bef0a8763cb9f4dac9f22dbe.svn-base b/.svn/pristine/68/68540681780b31a9bef0a8763cb9f4dac9f22dbe.svn-base Binary files differ. diff --git a/.svn/pristine/68/685abaaf1af19adf93daeab7a4ff63ab1e03b8cf.svn-base b/.svn/pristine/68/685abaaf1af19adf93daeab7a4ff63ab1e03b8cf.svn-base Binary files differ. diff --git a/.svn/pristine/68/6869f08cd2aafd60033c909b8f132937e884c27a.svn-base b/.svn/pristine/68/6869f08cd2aafd60033c909b8f132937e884c27a.svn-base Binary files differ. diff --git a/.svn/pristine/68/68ef1350d2e4f56f3671234f31f9f4a8e7502c58.svn-base b/.svn/pristine/68/68ef1350d2e4f56f3671234f31f9f4a8e7502c58.svn-base @@ -1,118 +0,0 @@ -#ifndef ACTORCOLLISION_H -#define ACTORCOLLISION_H - -#include "Utils.h" -#include "Console.h" -#include "DiagnosticDraw.h" -#include "Event.h" -#include "Actor.h" -#include "ActorHandle.h" - -#define MAX_ACTORS 1024 - -#define CELLS_X 10 -#define CELLS_Y 2 -#define CELL_COUNT (CELLS_X*CELLS_Y) - -class Cell -{ -public: - Cell() : mCell_Rect() - { - mActors_In_Cell = BinaryTree(); - } - - Cell(SDL_Rect rect) : mCell_Rect(rect) - { - mActors_In_Cell = BinaryTree(); - } - - SDL_Rect* GetCellRect() - { - return &mCell_Rect; - } - - BinaryTree* GetActorTree() - { - return &mActors_In_Cell; - } -protected: - SDL_Rect mCell_Rect; - BinaryTree mActors_In_Cell; -}; - -class SpatialMonitor : public EventReceiver -{ -public: - - SpatialMonitor() - { - } - - SpatialMonitor(int worldH, int worldW, ActorHandleManager* AHM) : mAHM(AHM) - { - PartitionCells(worldH, worldW); - } - - int GetAdjacentCells(int cellnum, Cell* cells[9]); - - bool LogActor(int id); //Logs an actor with the spatial monitor. called on program startup - - bool EventProcess(Event eve); - - Cell* GetCell(int i) //Gets the cell from a cell number. - { - if ((0 <= i) && (i < CELL_COUNT)) - { - return &mCells[i]; - } - else - { - //gCons->ConsPrintf("Cell %i does not exist\n", i) - return NULL; - } - } - -protected: - - bool PartitionCells(int worldH, int worldW); //divides the level into cells based on macro'd parameters - - //bool GetActorsInCell(int cellnum); - - //bool GetAdjacentActors(int cellnum); - - bool DetectActorCollision(int id1, int id2); //checks two logged actors for intersection - - bool DetectRectSensors(SDL_Rect* sensor, int detectorID, int foreignID); //Called in HandleRectSensors, checks given rectangle for intersects - - bool ClearActorCell(int id); - - int UpdateActorCell(int id); //Updates the the cell number that contains a logged actor, Called when an MOVED_THIS_FRAME event is processed - - int GetActorCell(int id) //Gets the cell number of an actor - { - return ( ((Character*)(mAHM->GetActorAddress(id)))->GetSpatCell() ); //can't cast as collider tramples the object - - //return mActorCells[id]; - } - - //int* GetAdjacentCells(int cellnum, int cells[9]); //populates and returns cells[9] with the cell numbers of cellnum and the 8 surrounding cells - - bool HandleCollisions(int CallerID); //Called in event process, finds the actors in the cells adjacent to the cell of CallerID and checks them for collision with CallerID - - bool HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType); - - bool TestBlockers(SDL_Rect* sensor, int CallerID); - - - //BinaryTree mActors; - ActorHandleManager* mAHM; - //int mActorCells[MAX_ACTORS]; - Cell mCells[CELL_COUNT]; - //int mActorCount; - //int mAdjacentActorIDs[MAX_ACTORS]; - //int mAdjacentActorCount; -}; - -#endif - diff --git a/.svn/pristine/68/68f19461fc158b8d20baba1acfa22ba2af4fc1c7.svn-base b/.svn/pristine/68/68f19461fc158b8d20baba1acfa22ba2af4fc1c7.svn-base Binary files differ. diff --git a/.svn/pristine/69/69664361c2039af057fd2e4280272e74aa6b3d89.svn-base b/.svn/pristine/69/69664361c2039af057fd2e4280272e74aa6b3d89.svn-base Binary files differ. diff --git a/.svn/pristine/69/697b73cbb21509ece25086bce86bf2f4885e721d.svn-base b/.svn/pristine/69/697b73cbb21509ece25086bce86bf2f4885e721d.svn-base @@ -1,33 +0,0 @@ -#include "Context.h" - -bool ContextManager::LogContext(Context* con, char* name) -{ - mContexts.push_back(con); - mNames.push_back(name); - return false; -} - -bool ContextManager::LoadContext(char* ContextName) -{ - for (int i = 0; i < (int)mNames.size(); i++) - { - if (!strcmp(ContextName, mNames.at(i))) - { - mContexts.at(i)->Load(mGameDataPath); - mActiveContext = mContexts.at(i); - return true; - } - } - gCons->ConsPrintf("Unable to load context; No context matching name %s was found\n", ContextName); - return false; -} - -bool ContextManager::ContextUpdate() -{ - return mActiveContext->Update(); -} - -bool ContextManager::EventProcess(Event eve) -{ - return false; -}- \ No newline at end of file diff --git a/.svn/pristine/6a/6a017715ef78ef9031fc00c18f2e86be04c58bae.svn-base b/.svn/pristine/6a/6a017715ef78ef9031fc00c18f2e86be04c58bae.svn-base Binary files differ. diff --git a/.svn/pristine/6b/6b0d255a116189b22c973548d91fd1668dc64286.svn-base b/.svn/pristine/6b/6b0d255a116189b22c973548d91fd1668dc64286.svn-base Binary files differ. diff --git a/.svn/pristine/6b/6b2b310e57dba044bde073a8c6b3712c242c583e.svn-base b/.svn/pristine/6b/6b2b310e57dba044bde073a8c6b3712c242c583e.svn-base Binary files differ. diff --git a/.svn/pristine/6c/6c1f6ac62e57dfbf72ca0dcc7a1c138fd5d97647.svn-base b/.svn/pristine/6c/6c1f6ac62e57dfbf72ca0dcc7a1c138fd5d97647.svn-base Binary files differ. diff --git a/.svn/pristine/6c/6c24370781cbe5116b50f9fff1357f9e75e10a8b.svn-base b/.svn/pristine/6c/6c24370781cbe5116b50f9fff1357f9e75e10a8b.svn-base Binary files differ. diff --git a/.svn/pristine/6c/6c9a8d1656c5ed1818b02f06f8da7520e2998c43.svn-base b/.svn/pristine/6c/6c9a8d1656c5ed1818b02f06f8da7520e2998c43.svn-base @@ -1 +0,0 @@ -C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\TEAM TOOLS\STATIC ANALYSIS TOOLS\\RULE SETS\NATIVERECOMMENDEDRULES.RULESET diff --git a/.svn/pristine/6d/6d55c5841f54a437b4abaf231a914b7703da0fc0.svn-base b/.svn/pristine/6d/6d55c5841f54a437b4abaf231a914b7703da0fc0.svn-base Binary files differ. diff --git a/.svn/pristine/6d/6d84fcf77705a8eaf0438b9ed703e423fedfa744.svn-base b/.svn/pristine/6d/6d84fcf77705a8eaf0438b9ed703e423fedfa744.svn-base Binary files differ. diff --git a/.svn/pristine/6f/6f1b4cf23df9ef637e053bd95915b27b9216836d.svn-base b/.svn/pristine/6f/6f1b4cf23df9ef637e053bd95915b27b9216836d.svn-base Binary files differ. diff --git a/.svn/pristine/6f/6f448ab906597011da9447e2c8312dc18825704f.svn-base b/.svn/pristine/6f/6f448ab906597011da9447e2c8312dc18825704f.svn-base Binary files differ. diff --git a/.svn/pristine/6f/6f83622a347c5a59601af6bdc38c8c3843426e8c.svn-base b/.svn/pristine/6f/6f83622a347c5a59601af6bdc38c8c3843426e8c.svn-base @@ -1,18 +0,0 @@ - Actor.cpp - ActorCollision.cpp - Animation.cpp - Camera.cpp - Console.cpp - DiagnosticDraw.cpp - Event.cpp - Input.cpp - Level.cpp - Main.cpp - MiscDraw.cpp - Physics.cpp - Terrain.cpp - Utils.cpp - symbol.cpp -SDL2main.lib(SDL_windows_main.obj) : error LNK2001: unresolved external symbol __imp__fprintf -SDL2main.lib(SDL_windows_main.obj) : error LNK2001: unresolved external symbol __imp____iob_func -C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Release\TapestryEngine.exe : fatal error LNK1120: 2 unresolved externals diff --git a/.svn/pristine/6f/6fa184444687cf11f07f1ab6d403657e538d26bf.svn-base b/.svn/pristine/6f/6fa184444687cf11f07f1ab6d403657e538d26bf.svn-base @@ -1,73 +0,0 @@ -#include "Physics.h" - -//Spring -Spring::Spring(int* pos, float* vel, float k, int n, float damp, int Vmax, int Amax, int ExMax) -{ - mPos = pos; - mVelocity = vel; - mSpringK = k; - mDamper = damp; - mNeutral = n; - - mMaxExten = ExMax; - mMaxVel = Vmax; - mMaxAccel = Amax; -} - -int Spring::ZeroNeutralAxis() -{ - mNeutral = *mPos; - return mNeutral; -} - -float Spring::CalcAccel() -{ - float disp = (float)((mNeutral - *mPos)); - - if (mMaxExten != 0) - { - if (fabs(disp) > mMaxExten) - { - disp = (float)mMaxExten*GetSign(disp); - } - } - - float Accel = (disp)*mSpringK; - if (mMaxAccel != 0) - { - if (fabs(Accel) > mMaxAccel) - { - //gCons->ConsPrintf("Bouyant Accel = %f\n", mMaxAccel*GetSign(Accel)); - return mMaxAccel*GetSign(Accel); - } - } - //gCons->ConsPrintf("Bouyant Accel = %f\n", Accel); - return Accel; -} - -bool Spring::CalcVelocity() -{ - if (mMaxVel != 0) - { - if ( abs( (int)(*mVelocity + CalcAccel()) ) > mMaxVel) - { - *mVelocity = mMaxVel*GetSign(*mVelocity); - return true; - } - } - //*mVelocity += CalcAccel(); - *mVelocity = (*mVelocity + CalcAccel())*mDamper; - //gCons->ConsPrintf("Spring Vel = %f\n", *mVelocity); - return true; -} - -//Physics -PhysicsManager::PhysicsManager(float GravAccel, float BouyancyK, int* pos, float* Xvel, float* Yvel, bool Grav ) -{ - mGravAccel = GravAccel; - mGravity = Grav; - mFloating = false; - mXvel = Xvel; - mYvel = Yvel; - mBouyancy = Spring(pos, Yvel, BouyancyK, 0, (float)0.85, 9, 0, 10); -}- \ No newline at end of file diff --git a/.svn/pristine/6f/6fd5f4401ca8e5f38093fc0466801b7e8fb9e5f0.svn-base b/.svn/pristine/6f/6fd5f4401ca8e5f38093fc0466801b7e8fb9e5f0.svn-base Binary files differ. diff --git a/.svn/pristine/6f/6ff207b937c02ed64af09f445f27cc543c694373.svn-base b/.svn/pristine/6f/6ff207b937c02ed64af09f445f27cc543c694373.svn-base Binary files differ. diff --git a/.svn/pristine/6f/6ffbd1fd3c646cfa06b407170b9ea0e2412f9a8f.svn-base b/.svn/pristine/6f/6ffbd1fd3c646cfa06b407170b9ea0e2412f9a8f.svn-base @@ -1,39 +0,0 @@ -#include "Input.h" - -Control::Control() -{ - mKeyState = SDL_GetKeyboardState(NULL); - memcpy(mLastState, mKeyState, 512); -} - -bool Control::SendKeyEvent(int KeyID, int KeyState) -{ - EventType et; - if (KeyState == 1) - { - et = KEY_DOWN; - } - else // KeyState == 0 - { - et = KEY_UP; - } - mFeed.EventProcess(Event(et, KeyID)); - - return true; -} - -void Control::ProcessKeyboard() -{ - SDL_PumpEvents(); //Update *mKeys - - for (int i = 0; i < 512; i++) - { - if (mLastState[i] != mKeyState[i]) - { - SendKeyEvent(i, mKeyState[i]); - } - } - - memcpy(mLastState, mKeyState, 512); -} - diff --git a/.svn/pristine/70/7029c0d7fdd2dcc7521ef57769ce20fd24250bbd.svn-base b/.svn/pristine/70/7029c0d7fdd2dcc7521ef57769ce20fd24250bbd.svn-base @@ -1,118 +0,0 @@ -#ifndef ACTORCOLLISION_H -#define ACTORCOLLISION_H - -#include "Utils.h" -#include "Console.h" -#include "DiagnosticDraw.h" -#include "Event.h" -#include "Actor.h" -#include "ActorHandle.h" - -#define MAX_ACTORS 1024 - -#define CELLS_X 10 -#define CELLS_Y 2 -#define CELL_COUNT (CELLS_X*CELLS_Y) - -class Cell -{ -public: - Cell() : mCell_Rect() - { - mActors_In_Cell = BinaryTree(); - } - - Cell(SDL_Rect rect) : mCell_Rect(rect) - { - mActors_In_Cell = BinaryTree(); - } - - SDL_Rect* GetCellRect() - { - return &mCell_Rect; - } - - BinaryTree* GetActorTree() - { - return &mActors_In_Cell; - } -protected: - SDL_Rect mCell_Rect; - BinaryTree mActors_In_Cell; -}; - -class SpatialMonitor : public EventReceiver -{ -public: - - SpatialMonitor() - { - } - - SpatialMonitor(int worldH, int worldW, ActorHandleManager* AHM) : mAHM(AHM) - { - PartitionCells(worldH, worldW); - } - - int GetAdjacentCells(int cellnum, Cell* cells[9]); - - bool LogActor(int id); //Logs an actor with the spatial monitor. called on program startup - - bool EventProcess(Event eve); - - Cell* GetCell(int i) //Gets the cell from a cell number. - { - if ((0 <= i) && (i < CELL_COUNT)) - { - return &mCells[i]; - } - else - { - //gCons->ConsPrintf("Cell %i does not exist\n", i) - return NULL; - } - } - -protected: - - bool PartitionCells(int worldH, int worldW); //divides the level into cells based on macro'd parameters - - //bool GetActorsInCell(int cellnum); - - //bool GetAdjacentActors(int cellnum); - - bool DetectActorCollision(int id1, int id2); //checks two logged actors for intersection - - bool DetectRectSensors(SDL_Rect* sensor, int detectorID, int foreignID); //Called in HandleRectSensors, checks given rectangle for intersects - - bool ClearActorCell(int id); - - int UpdateActorCell(int id); //Updates the the cell number that contains a logged actor, Called when an MOVED_THIS_FRAME event is processed - - int GetActorCell(int id) //Gets the cell number of an actor - { - return (mAHM->GetActorAddress(id)->GetSpatCell()); - - //return mActorCells[id]; - } - - //int* GetAdjacentCells(int cellnum, int cells[9]); //populates and returns cells[9] with the cell numbers of cellnum and the 8 surrounding cells - - bool HandleCollisions(int CallerID); //Called in event process, finds the actors in the cells adjacent to the cell of CallerID and checks them for collision with CallerID - - bool HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType); - - bool TestBlockers(SDL_Rect* sensor, int CallerID); - - - //BinaryTree mActors; - ActorHandleManager* mAHM; - //int mActorCells[MAX_ACTORS]; - Cell mCells[CELL_COUNT]; - //int mActorCount; - //int mAdjacentActorIDs[MAX_ACTORS]; - //int mAdjacentActorCount; -}; - -#endif - diff --git a/.svn/pristine/70/70c0eb6099699240f458b70e3c1b7fe35adf5647.svn-base b/.svn/pristine/70/70c0eb6099699240f458b70e3c1b7fe35adf5647.svn-base Binary files differ. diff --git a/.svn/pristine/71/7127126bff17e2687c26750ae7791e334f2e04bd.svn-base b/.svn/pristine/71/7127126bff17e2687c26750ae7791e334f2e04bd.svn-base @@ -1,152 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <ProjectGuid>{7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}</ProjectGuid> - <RootNamespace>TapestryEngine</RootNamespace> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v140</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v140</PlatformToolset> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <IncludePath>C:\SDL2_ttf-2.0.12\include;C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\include;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\include;$(IncludePath)</IncludePath> - <LibraryPath>C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\lib\x86;C:\SDL2_ttf-2.0.12\lib\x64;C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\VisualC\Win32\Release;$(LibraryPath)</LibraryPath> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <IncludePath>C:\SDL2_ttf-2.0.12\include;C:\SDL2-2.0.3\include;$(IncludePath)</IncludePath> - <LibraryPath>C:\SDL2_ttf-2.0.12\lib\x64;C:\SDL2-2.0.3\lib\x64;$(LibraryPath)</LibraryPath> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> - <AdditionalIncludeDirectories>C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\include;C:\SDL2_ttf-2.0.12\include;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\lib\x86;C:\SDL2_ttf-2.0.12\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>SDL2main.lib;SDL2.lib;SDL2_mixer.lib;SDL2test.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies> - <SubSystem>Windows</SubSystem> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <SDLCheck>true</SDLCheck> - <AdditionalIncludeDirectories>C:\SDL2-2.0.3\include;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\include;C:\SDL2_ttf-2.0.12\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <AdditionalLibraryDirectories>C:\SDL2-2.0.3\lib\x86;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\lib\x86;C:\SDL2_ttf-2.0.12\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>SDL2main.lib;SDL2.lib;SDL2test.lib;SDL2_ttf.lib;SDL2_mixer.lib;legacy_stdio_definitions.lib;%(AdditionalDependencies)</AdditionalDependencies> - <SubSystem>Windows</SubSystem> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="Actor.cpp" /> - <ClCompile Include="ActorCollision.cpp" /> - <ClCompile Include="ActorHandle.cpp" /> - <ClCompile Include="Animation.cpp" /> - <ClCompile Include="AnimationGraph.cpp" /> - <ClCompile Include="BinaryTree.cpp" /> - <ClCompile Include="bones.cpp" /> - <ClCompile Include="Camera.cpp" /> - <ClCompile Include="cJSON.cpp" /> - <ClCompile Include="Console.cpp" /> - <ClCompile Include="Context.cpp" /> - <ClCompile Include="DiagnosticDraw.cpp" /> - <ClCompile Include="Dialogue.cpp" /> - <ClCompile Include="Emitter.cpp" /> - <ClCompile Include="Event.cpp" /> - <ClCompile Include="HUD.cpp" /> - <ClCompile Include="Input.cpp" /> - <ClCompile Include="Layer.cpp" /> - <ClCompile Include="Level.cpp" /> - <ClCompile Include="Loading.cpp" /> - <ClCompile Include="Main.cpp" /> - <ClCompile Include="Mapper.cpp" /> - <ClCompile Include="MiscDraw.cpp" /> - <ClCompile Include="Particle.cpp" /> - <ClCompile Include="Physics.cpp" /> - <ClCompile Include="Sequence.cpp" /> - <ClCompile Include="sound.cpp" /> - <ClCompile Include="symbol.cpp" /> - <ClCompile Include="Terrain.cpp" /> - <ClCompile Include="Utils.cpp"> - <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebugDLL</RuntimeLibrary> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ClInclude Include="Actor.h" /> - <ClInclude Include="ActorCollision.h" /> - <ClInclude Include="ActorHandle.h" /> - <ClInclude Include="Animation.h" /> - <ClInclude Include="AnimationGraph.h" /> - <ClInclude Include="BinaryTree.h" /> - <ClInclude Include="bones.h" /> - <ClInclude Include="Camera.h" /> - <ClInclude Include="cJSON.h" /> - <ClInclude Include="Console.h" /> - <ClInclude Include="Context.h" /> - <ClInclude Include="DiagnosticDraw.h" /> - <ClInclude Include="Dialogue.h" /> - <ClInclude Include="Emitter.h" /> - <ClInclude Include="Event.h" /> - <ClInclude Include="HUD.h" /> - <ClInclude Include="Input.h" /> - <ClInclude Include="Layer.h" /> - <ClInclude Include="Level.h" /> - <ClInclude Include="Loading.h" /> - <ClInclude Include="Mapper.h" /> - <ClInclude Include="MiscDraw.h" /> - <ClInclude Include="Particle.h" /> - <ClInclude Include="Physics.h" /> - <ClInclude Include="Sequence.h" /> - <ClInclude Include="sound.h" /> - <ClInclude Include="symbol.h" /> - <ClInclude Include="Terrain.h" /> - <ClInclude Include="Utils.h" /> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project>- \ No newline at end of file diff --git a/.svn/pristine/71/714d9bfd99174866cc74794cb862be771581ced5.svn-base b/.svn/pristine/71/714d9bfd99174866cc74794cb862be771581ced5.svn-base @@ -1,165 +0,0 @@ -#include "Utils.h" -#include "Console.h" -#include "MiscDraw.h" -#include "DiagnosticDraw.h" -#include "ActorCollision.h" -#include "Input.h" -#include "Actor.h" -#include "sound.h" - -#include "Dialogue.h" - -#include "Loading.h" -#include "Level.h" - -#include "BinaryTree.h" //remove later - -int main(int argc, char *argv[]) -{ - gTime = new Time(); - -// BinaryTree TestTree = BinaryTree(new Node(10, NULL)); -// TestTree.Insert(5, NULL); -// TestTree.Insert(15, NULL); -// TestTree.Insert(7, NULL); -// TestTree.Insert(2, NULL); -// TestTree.Insert(20, NULL); -// TestTree.Insert(17, NULL); -// TestTree.Insert(35, NULL); -// TestTree.Insert(31, NULL); -// int s = TestTree.Size(); - -// Node** contents = TestTree.Dump(); - - //Node* tar = TestTree.Search(5);//->Delete(); - - //char buff1[256]; - //memset(buff1, 0, sizeof(buff1)); - //ReadBTree(&TestTree, buff1); - //tar->Delete(); - //char buff2[256]; - //memset(buff2, 0, sizeof(buff2)); - //ReadBTree(&TestTree, buff2); - -// Node* Tree = new Node(); -// Tree->InsertNode() - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_AUDIO) != 0) - { - gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); - SDL_Quit(); - return 1; - } - - Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048); -// Mix_Init(MIX_INIT_MP3); - - if (TTF_Init() != 0) - { - gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); - TTF_Quit(); - SDL_Quit(); - return 1; - } - - - SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); - if (window == NULL) - { - gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (ren == NULL) - { - gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Color fg = { 255, 255, 255 }; - SDL_Color bg = { 0, 0, 255 }; - gCons = new Console("ARIAL.TTF", 12, fg, bg); - //gCons = new Console("Tapestry.ttf", 16, fg, bg); - - Control ctrl = Control(); - - ContextManager ConMan = ContextManager("level_arid_land.json"); - - Level* lvl = new Level(ren, &ctrl); - ConMan.LogContext(lvl, "level"); - //DiagnosticDraw* gDiagDraw = new DiagnosticDraw(ren, lvl->mCam); - - Loading* load = new Loading(ren); - ConMan.LogContext(load, "load"); - - ConMan.LoadContext("load"); - ConMan.ContextUpdate(); - SDL_RenderPresent(ren); - - ConMan.LoadContext("level"); - - //Mix_Chunk* dhaka = LoadSound("Dhaka.mp3"); - //Mix_Chunk* ftst = LoadSound("footstep.wav"); - - SDL_Event e; - - //if (Mix_PlayingMusic() == false) - //{ - //Mix_PlayMusic(dhaka, -1); - //Mix_Volume(1, 6); - //Mix_VolumeChunk(dhaka, 6); - //Mix_PlayChannel(1, dhaka, -1); - - //} - bool quit = false; - while (!quit) - { - int CycleStart = GetRealTimeMS(); - - SDL_RenderClear(ren); - - ctrl.ProcessKeyboard(); - - ConMan.ContextUpdate(); - - //PrintBTree(&TestTree); - -#ifdef DEBUG - gCons->DrawConsole(ren); //Console is currently causing crashes for unknown reasons. No changes made to console system; very confusing -#endif - - SDL_RenderPresent(ren); - - SDL_PollEvent(&e); - - if (e.type == SDL_QUIT) - { - quit = true; - } - - gTime->ProgressCycle(); - - int DeltaTime = (GetRealTimeMS() - CycleStart); - assert(DeltaTime >= 0); - - int DelayTime = MS_PER_FRAME - DeltaTime; - - if (DelayTime >= 0) - { - //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); - SDL_Delay(DelayTime); - } - else - { - //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); - } - } - - delete gCons; - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -}- \ No newline at end of file diff --git a/.svn/pristine/71/716cce0314f911752f9bb05811177a2acfe2f30e.svn-base b/.svn/pristine/71/716cce0314f911752f9bb05811177a2acfe2f30e.svn-base @@ -1,53 +0,0 @@ -#ifndef DIALOGUE_H -#define DIALOGUE_H - -#include "Utils.h" -#include "Console.h" -#include "HUD.h" - -#define DIALOGUE_LINES 4 -#define CHAR_PER_LINE 30 -#define DIALOGUE_CHAR_LIM (DIALOGUE_LINES * CHAR_PER_LINE) - -struct DialogueLine -{ - SDL_Texture* LineTex; - bool Displayed; -}; - -class Dialogue : public Widget, public EventReceiver //Must subscribe to the player to work -{ -public: - - Dialogue() {} - - Dialogue(SDL_Rect pos, SDL_Renderer* ren, char* font, char* text_box, SDL_Color fore, EventReceiver* player); - - bool TextWrap(int text_pix_max, char* str); - - bool DialoguePrint(); - - void CloseDialogue(); - - bool EventProcess(Event eve); - - bool WidgetUpdate(); - - bool WidgetDraw(); - -protected: - - EventReceiver* mPlayer; - - TTF_Font* mFont; - - SDL_Color mText_Color; - - std::vector<DialogueLine*> mLines_To_Print; - int mline1; - int mline2; - - WidgetElement mText_box; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/71/71bda24f2be9ec67801c807ea71dc619a38eef7e.svn-base b/.svn/pristine/71/71bda24f2be9ec67801c807ea71dc619a38eef7e.svn-base Binary files differ. diff --git a/.svn/pristine/72/721509ed5467951e15263bf1cbf1dd3bedb9b051.svn-base b/.svn/pristine/72/721509ed5467951e15263bf1cbf1dd3bedb9b051.svn-base Binary files differ. diff --git a/.svn/pristine/72/726717dc9c337e15e3cf9c3da83af6e9b0acbf8f.svn-base b/.svn/pristine/72/726717dc9c337e15e3cf9c3da83af6e9b0acbf8f.svn-base Binary files differ. diff --git a/.svn/pristine/72/72e2bece735895856aeb6c0c469bc1f78f9e6db0.svn-base b/.svn/pristine/72/72e2bece735895856aeb6c0c469bc1f78f9e6db0.svn-base Binary files differ. diff --git a/.svn/pristine/72/72f0776d97481e2621dd08db102b90c8f7a8ce23.svn-base b/.svn/pristine/72/72f0776d97481e2621dd08db102b90c8f7a8ce23.svn-base Binary files differ. diff --git a/.svn/pristine/73/7347be746f0763f97986f14a73e606fba24f6ebb.svn-base b/.svn/pristine/73/7347be746f0763f97986f14a73e606fba24f6ebb.svn-base Binary files differ. diff --git a/.svn/pristine/73/7387dfb5e142b0502cff3ad845e639294e0d2855.svn-base b/.svn/pristine/73/7387dfb5e142b0502cff3ad845e639294e0d2855.svn-base Binary files differ. diff --git a/.svn/pristine/74/74e2de560a57fbd0b9f8944d3ff588f33d71c033.svn-base b/.svn/pristine/74/74e2de560a57fbd0b9f8944d3ff588f33d71c033.svn-base Binary files differ. diff --git a/.svn/pristine/76/76622bf9e4d03d6b92424d74749ae7bf41f1eda7.svn-base b/.svn/pristine/76/76622bf9e4d03d6b92424d74749ae7bf41f1eda7.svn-base @@ -1,118 +0,0 @@ -#ifndef PHYSICS_H -#define PHYSICS_H - -#include "Utils.h" -#include "Console.h" - -class Spring -{ -public: - - Spring() : mSpringK(0), mNeutral(0) {} - - Spring(int* pos, float* vel, float k, int n, float damp = 1, int Vmax = 0, int Amax = 0, int ExMax = 0); - - int ZeroNeutralAxis(); - - float CalcAccel(); - - bool CalcVelocity(); - -protected: - - int* mPos; - float* mVelocity; - int mMaxVel; - int mMaxAccel; - int mMaxExten; - float mSpringK; - float mDamper; - int mNeutral; -}; - -class PhysicsManager -{ -public: - - PhysicsManager() : mGravAccel(0) {} - - PhysicsManager(float GravAccel, float BouyancyK, int* pos, float* Xvel, float* Yvel, bool Grav = true); - - int ZeroBouyantSurface() - { - return mBouyancy.ZeroNeutralAxis(); - } - - bool SetFloating(bool state) - { - return mFloating = state; - } - - bool Floating() - { - return mFloating; - } - - bool SetGravity(bool state) - { - return mGravity = state; - } - - bool Gravity() - { - return mGravity; - } - - Spring* GetBouyancy() - { - return &mBouyancy; - } - - bool ApplyGravity() - { - if (mGravity == true) - { - *mYvel += mGravAccel; - //gCons->ConsPrintf("Gravity Applied!\n"); - return true; - } - else - { - return false; - } - } - - bool ApplyBouyancy() - { - if (mFloating == true) - { - mBouyancy.CalcVelocity(); - return true; - } - else - { - return false; - } - } - - bool ApplyPhysics() - { - ApplyGravity(); - ApplyBouyancy(); - - return true; - } - -protected: - - float* mYvel; - float* mXvel; - bool mGravity; - float mGravAccel; - bool mFloating; - Spring mBouyancy; - -}; - -#endif - diff --git a/.svn/pristine/76/766363c3b35e518224823e0130fd90f6913cab72.svn-base b/.svn/pristine/76/766363c3b35e518224823e0130fd90f6913cab72.svn-base Binary files differ. diff --git a/.svn/pristine/76/76a19443cda27943294066c9a30c7db403d3a9e2.svn-base b/.svn/pristine/76/76a19443cda27943294066c9a30c7db403d3a9e2.svn-base @@ -1,34 +0,0 @@ -#include "symbol.h" - -int ConvertStringToSymbol(char * str) -{ - - if (!strcmp(str, "IDLE") ) { return IDLE; } - else if (!strcmp(str, "RUN") ) { return RUN; } - else if (!strcmp(str, "RUN_DRAWN") ) { return RUN_DRAWN; } - else if (!strcmp(str, "JUMP") ) { return JUMP; } - else if (!strcmp(str, "JUMP_TO_FALL") ) { return JUMP_TO_FALL; } - else if (!strcmp(str, "FALL") ) { return FALL; } - else if (!strcmp(str, "IDLE_BEGIN") ) { return IDLE_BEGIN; } - else if (!strcmp(str, "SWIM") ) { return SWIM; } - else if (!strcmp(str, "TREAD") ) { return TREAD; } - else if (!strcmp(str, "LOOK") ) { return LOOK; } - else if (!strcmp(str, "EAT") ) { return EAT; } - else if (!strcmp(str, "SLEEP") ) { return SLEEP; } - else if (!strcmp(str, "PARTICLE") ) { return PARTICLE; } - else if (!strcmp(str, "SPLASH") ) { return SPLASH; } - else if (!strcmp(str, "HAZE") ) { return HAZE; } - else if (!strcmp(str, "GATE_UP") ) { return GATE_UP; } - else if (!strcmp(str, "GATE_DOWN") ) { return GATE_DOWN; } - else if (!strcmp(str, "GATE_LOWER") ) { return GATE_LOWER; } - else if (!strcmp(str, "GATE_LOWER_BEGIN") ) { return GATE_LOWER_BEGIN; } - else if (!strcmp(str, "GATE_RAISE") ) { return GATE_RAISE; } - else if (!strcmp(str, "LEFT") ) { return LEFT; } - else if (!strcmp(str, "RIGHT") ) { return RIGHT; } - else if (!strcmp(str, "NONE") ) { return -1; } - else - { - gCons->ConsPrintf("%s : unrecognized string\n", str); - return NULL; - } -} diff --git a/.svn/pristine/76/76a442c84e875cba72ea48c3da031c112dc74b95.svn-base b/.svn/pristine/76/76a442c84e875cba72ea48c3da031c112dc74b95.svn-base Binary files differ. diff --git a/.svn/pristine/77/770e9fa2f4c95fdc0c4125abb6b15b6d413897f3.svn-base b/.svn/pristine/77/770e9fa2f4c95fdc0c4125abb6b15b6d413897f3.svn-base Binary files differ. diff --git a/.svn/pristine/77/774f9840e06980b639bfcadc1722f094d1aaabd9.svn-base b/.svn/pristine/77/774f9840e06980b639bfcadc1722f094d1aaabd9.svn-base Binary files differ. diff --git a/.svn/pristine/77/7760a36ed73bb1ca985fca964ad89f5556ea0ad4.svn-base b/.svn/pristine/77/7760a36ed73bb1ca985fca964ad89f5556ea0ad4.svn-base Binary files differ. diff --git a/.svn/pristine/78/78142b1f24b8b0f480d4e0b8946eebe46ca279eb.svn-base b/.svn/pristine/78/78142b1f24b8b0f480d4e0b8946eebe46ca279eb.svn-base Binary files differ. diff --git a/.svn/pristine/78/781b50515dd02bfa60fe8b7bf092ee2d34935cc9.svn-base b/.svn/pristine/78/781b50515dd02bfa60fe8b7bf092ee2d34935cc9.svn-base Binary files differ. diff --git a/.svn/pristine/79/79b381c2c8797b7cf23f4be5e05f2b72422264dc.svn-base b/.svn/pristine/79/79b381c2c8797b7cf23f4be5e05f2b72422264dc.svn-base Binary files differ. diff --git a/.svn/pristine/79/79e6f22df03d40d63ae66515874ac46726f45f6c.svn-base b/.svn/pristine/79/79e6f22df03d40d63ae66515874ac46726f45f6c.svn-base Binary files differ. diff --git a/.svn/pristine/7a/7a4284ee4fb2c623bd2ae0c58af681967e1598e7.svn-base b/.svn/pristine/7a/7a4284ee4fb2c623bd2ae0c58af681967e1598e7.svn-base Binary files differ. diff --git a/.svn/pristine/7a/7a9cd67b0250314c4569c431a82aa3636301db02.svn-base b/.svn/pristine/7a/7a9cd67b0250314c4569c431a82aa3636301db02.svn-base Binary files differ. diff --git a/.svn/pristine/7a/7a9ce9f2ff26d5a2d88af861316573b5599587a5.svn-base b/.svn/pristine/7a/7a9ce9f2ff26d5a2d88af861316573b5599587a5.svn-base Binary files differ. diff --git a/.svn/pristine/7b/7b2fd56df3268ebd83f40a987034134a02870b43.svn-base b/.svn/pristine/7b/7b2fd56df3268ebd83f40a987034134a02870b43.svn-base @@ -1,228 +0,0 @@ -#ifndef ANIMATION_H -#define ANIMATION_H - -#include "Utils.h" -#include "Event.h" - -#define LOOP 0 -#define ONCE 1 - -struct Frame -{ - SDL_Rect FrameRect; - SDL_Texture* FrameSource; -}; - -class FrameSet -{ -public: - FrameSet() : mFrameCount(0), mFrames() {} - - FrameSet(SDL_Renderer* ren, const char* SourcePath, int FrameCount, int FRate, int frameH, int frameW); - - int GetNumberOfFrames() - { - return mFrameCount; - } - - int GetDefaultFrameRate() - { - return mDefaultFrameRate; - } - - SDL_Texture* GetFrameSource() - { - return mframesource; - } - - SDL_Rect GetFrameRect(int framenumber) - { - //gCons->ConsPrintf("Frame Number = %i\n", framenumber); - return mFrames[framenumber]; - } - - Frame GetFrame(int FrameNumber) - { - Frame frm; - frm.FrameRect = GetFrameRect(FrameNumber); - frm.FrameSource = mframesource; - return frm; - } - -protected: - int mFrameCount; - int mDefaultFrameRate; - SDL_Texture* mframesource; - SDL_Rect mFrames[256]; -}; - -class animation -{ -public: - - animation() : mFrameSet(), mCurrentFrameNumber(0) {} - - animation(FrameSet* set, int ID, bool flip = true); - - Frame GetCurrentFrame(); - - Frame GetFrame(int FrameNumber) - { - return mFrameSet->GetFrame(FrameNumber); - } - - int GetCurrentFrameNumber() - { - return mCurrentFrameNumber; - } - - bool SetPlaySpeed(int speed) - { - mFrameRate = speed; - } - - bool IsFlippable() - { - return mIsFlippable; - } - - bool Play(int flags) - { - mFlags = flags; - return mIsPlaying = true; - } - - bool Stop() - { - mCurrentFrameNumber = 0; - return mIsPlaying = false; - } - - EventFeed mFeed; -protected: - - FrameSet* mFrameSet; - int mCurrentFrameNumber; - Frame mCurrentFrame; - int mTimer; - int mFrameRate; - bool mIsFlippable; - bool mIsPlaying; - int mFlags; //LOOP, ONCE - int mID; //#define name eg. IDLE -}; - -class AnimDataPack -{ -public: - AnimDataPack() : mIndexer(), mAnimData() {} - - AnimDataPack(int AnimCount, FrameSet* AnimData, int* Index); - - FrameSet* GetAnimationData(int AnimationID); - - int GetAnimCount() - { - return mAnimCount; - } - - int GetIndex(int i) - { - return mIndexer[i]; - } - - int GetFrameH() - { - return mAnimData->GetFrameRect(0).h; - } - - int GetFrameW() - { - return mAnimData->GetFrameRect(0).w; - } - - //For the loader - void SetColData(int off_x, int off_y, int col_h, int col_w) - { - moff_x = off_x; - moff_y = off_y; - mcol_h = col_h; - mcol_w = col_w; - } - - int GetOff_x() - { - return moff_x; - } - - int GetOff_y() - { - return moff_y; - } - - int GetCol_h() - { - return mcol_h; - } - - int GetCol_w() - { - return mcol_w; - } - -protected: - - int mAnimCount; - int* mIndexer; - FrameSet* mAnimData; - - - int moff_x; - int moff_y; - int mcol_h; - int mcol_w; -}; - -class AnimPack -{ -public: - AnimPack() {} - - AnimPack(AnimDataPack* data); - - animation* ActivateAnimation(int AnimationID, int loop = LOOP); //Returns a pointer to an animation, starts it playing and stops the previous animation - - animation* GetAnimation(int AnimationID) //Just returns an animation pointer given an ID - { - for (int i = 0; i < mData->GetAnimCount(); i++) - { - if (mData->GetIndex(i) == AnimationID) - { - return &mAnims[i]; - } - } - gCons->ConsPrintf("Failed to get animation\n"); - return NULL; - } - - AnimDataPack* GetAnimData() - { - return mData; - } - - animation* GetAnimationDirect(int i) - { - return &mAnims[i]; - } - -protected: - - AnimDataPack* mData; - int mLastIndex; - animation* mAnims; - -}; - -bool FrameCompare(Frame f1, Frame f2); - -#endif- \ No newline at end of file diff --git a/.svn/pristine/7b/7bb086015f58d649d082c5a0f024313ae7153ccf.svn-base b/.svn/pristine/7b/7bb086015f58d649d082c5a0f024313ae7153ccf.svn-base Binary files differ. diff --git a/.svn/pristine/7d/7d0bae5cd7637c94c5b326b3266bb42c715eacd5.svn-base b/.svn/pristine/7d/7d0bae5cd7637c94c5b326b3266bb42c715eacd5.svn-base Binary files differ. diff --git a/.svn/pristine/7f/7f8982949b71a09adccee27078bffa1c36d31d03.svn-base b/.svn/pristine/7f/7f8982949b71a09adccee27078bffa1c36d31d03.svn-base @@ -1,113 +0,0 @@ -#ifndef HUD_H -#define HUD_H - -#include "Utils.h" -#include "Console.h" -#include "Actor.h" -#include "MiscDraw.h" -#include "Event.h" - - -struct WidgetElement -{ - SDL_Rect pos; - SDL_Texture* img; -}; - -class Widget -{ -public: - - Widget() {} - - Widget(SDL_Renderer* ren, SDL_Rect pos) : mPos(pos), mren(ren), mDisplay(true) - { - } - - SDL_Rect* GetPos() - { - return &mPos; - } - - virtual bool WidgetUpdate() = 0; - - virtual bool WidgetDraw() = 0; - -protected: - - bool mDisplay; - SDL_Renderer* mren; - SDL_Rect mPos; - -}; - -SDL_Rect CalcElementScreenPosition(Widget* wid, SDL_Rect elementRect); - -class LifeMeter : public Widget -{ -public: - - LifeMeter() {} - - LifeMeter(Player* target, SDL_Rect pos, SDL_Renderer* ren, char* life_base, char* life_bar); - - bool WidgetUpdate(); - - bool WidgetDraw(); - -protected: - - int* mHP; - int* mHPmax; - WidgetElement mBase; - WidgetElement mLifebar; - -}; - -class Fader : public Widget, public EventReceiver //Must Subscribe to the player -{ -public: - Fader() {} - - Fader(SDL_Renderer* ren, char* black); - - void PlayFade(int duration); - - bool WidgetUpdate(); - - bool WidgetDraw(); - - bool EventProcess(Event eve); - -protected: - - WidgetElement mBlack; - - int mOpacity; - - int mFadeTime; - - int mTimer; -}; - -class HUD -{ -public: - - HUD() : mIndex(0) {} - - bool LogWidget(Widget* wid); - - bool UpdateWidgets(); - - bool DrawWidgets(); - -protected: - - Widget* mWidgets[10]; - int mIndex; -}; - - - -#endif- \ No newline at end of file diff --git a/.svn/pristine/7f/7fdf3d26c009cab413fb90854d2036754a6f80a3.svn-base b/.svn/pristine/7f/7fdf3d26c009cab413fb90854d2036754a6f80a3.svn-base Binary files differ. diff --git a/.svn/pristine/7f/7fe4b857edb3318e7efc7a12e4ce0d50f0845210.svn-base b/.svn/pristine/7f/7fe4b857edb3318e7efc7a12e4ce0d50f0845210.svn-base @@ -1,171 +0,0 @@ -#include "Particle.h" -#include "Emitter.h" - -//Manager Functions -bool ParticleManager::SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata) -{ - ParticleData* pd = GetParticleData(name); - - SDL_Rect pos; - pos.h = pd->Height; - pos.w = pd->Width; - pos.x = x; - pos.y = y; - - if (!strcmp(type, "P_static")) - { - Particle* prt = new P_static(pd->AnimData, pos, int(mParticles.size()), NULL); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else if (!strcmp(type, "P_drift")) - { - Particle* prt = new P_drift(pd->AnimData, pos, int(mParticles.size()), NULL, ptdata.drift); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else - { - gCons->ConsPrintf("Unrecognized particle type\n"); - } - - return true; -} - -bool ParticleManager::ClearParticle(Particle* prt) -{ - mParticles.erase(mParticles.begin() + prt->GetID()); - for (int i = 0; i < (int)(mParticles.size()); i++) - { - mParticles.at(i)->setID(i); - } - - return false; -} - -bool ParticleManager::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case EMIT_PARTICLE: - { - Emitter* emit = (Emitter*)eve.GetEventData()->p; - SpawnParticle(emit->GetType(), emit->GetName(), emit->GetX(), emit->GetY(), emit->GetData()); - return true; - break; - } - case CREATE_PARTICLE: - SpawnParticle(eve.GetEventData()->psd.type, eve.GetEventData()->psd.name, eve.GetEventData()->psd.x, eve.GetEventData()->psd.y); - return true; - break; - case DEATH: - ClearParticle((Particle*)eve.GetEventData()->p); - particlesKilled += 1; - //gCons->ConsPrintf("Particles killed: %i\n", particlesKilled); - return true; - break; - default: - gCons->ConsPrintf("Particle Manager Received Unrecognized Event\n"); - return false; - break; - } -} - -//Particle Functions -Particle::Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM ) : Mobile(AnimData, Pos, Pos, AHM, NULL, NULL, NULL) //Could enable particles to play sounds by replacing second null; worth considering -{ - mAnimGraph->GetAnimPack()->GetAnimation(PARTICLE)->mFeed.Subscribe(this); - mDrawPos.x = 0; - mDrawPos.y = 0; - mState = ALIVE; - mDir = 0; - mID = ID; -} - -//P_Static -bool P_static::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_static::UpdateAnimation() -{ - return false; -} - -bool P_static::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// - -//P_drift -P_drift::P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, drift_data data) : Particle(AnimData, Pos, ID, AHM), mData(data) -{ -} - -bool P_drift::Drift() -{ - return true; -} - -bool P_drift::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_drift::UpdateAnimation() -{ - return false; -} - -bool P_drift::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - Drift(); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// diff --git a/.svn/pristine/80/800b71cd566db20edbf5898f325813c98cef0417.svn-base b/.svn/pristine/80/800b71cd566db20edbf5898f325813c98cef0417.svn-base Binary files differ. diff --git a/.svn/pristine/80/80427d5e94c7fa1fcfbef876a35163145cc55c5a.svn-base b/.svn/pristine/80/80427d5e94c7fa1fcfbef876a35163145cc55c5a.svn-base @@ -1,116 +0,0 @@ -#ifndef ANIMATION_GRAPH_H -#define ANIMATION_GRAPH_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "Event.h" - -class AnimGraphData -{ -public: - - AnimGraphData() {} - - //AnimGraph(int* state) : mActorState(state) {} - - AnimGraphData(AnimDataPack animdata) : mAnimData(animdata) {} - - bool DefineLoop(int AnimID); - - bool DefineTransitions(int AnimID); - - bool CreateTranisitionMatrix(); //call only after all loops have been defined - - bool PopulateTransitionMatrix(int initState, int targetState, int transitionID); - - int GetLoopIDIndex(int index) - { - return mLoopsAnimIDs.at(index); - } - - AnimDataPack* GetAnimData() - { - return &mAnimData; - } - - int GetH() - { - return mAnimData.GetFrameH(); - } - - int GetW() - { - return mAnimData.GetFrameW(); - } - - std::vector<int> mLoopsAnimIDs; - - std::vector<int> mTransitionsAnimIDs; - int** mTransitionMatrix; - -protected: - - AnimDataPack mAnimData; - -}; -#endif - -class AnimGraph : public EventReceiver -{ -public: - - AnimGraph() {}; - - AnimGraph(AnimGraphData* AGD) - { - mAGD = AGD; - mAnimPack = AnimPack(mAGD->GetAnimData()); - - for (int i = 0; i < (int)mAGD->mTransitionsAnimIDs.size(); i++) - { - mAnimPack.GetAnimation(mAGD->mTransitionsAnimIDs.at(i))->mFeed.Subscribe(this); - } - } - - void GiveActorState(int* state) - { - mActorState = state; - mState = *mActorState; - } - - int GetTransitionID(int initState, int targetState); - - Frame* UpdateAnimation(); - - Frame* PlayOnce(int AnimID); - - bool EventProcess(Event eve); - - AnimPack* GetAnimPack() - { - return &mAnimPack; - } - - int GetH() - { - return mAGD->GetH(); - } - - int GetW() - { - return mAGD->GetW(); - } - - EventFeed mFeed; - -protected: - - AnimGraphData* mAGD; - AnimPack mAnimPack; - - int* mActorState; - int mState; - - Frame mCurrentFrame; -};- \ No newline at end of file diff --git a/.svn/pristine/80/8054dcaf2eaef2f5462c455ec1f7bd878c6a76a6.svn-base b/.svn/pristine/80/8054dcaf2eaef2f5462c455ec1f7bd878c6a76a6.svn-base Binary files differ. diff --git a/.svn/pristine/82/82cb5edf79c9ab423074fcd36bc9c395328a082f.svn-base b/.svn/pristine/82/82cb5edf79c9ab423074fcd36bc9c395328a082f.svn-base Binary files differ. diff --git a/.svn/pristine/82/82eda70f2c8f5e12cf324c6cd17b75c5ecb3f90b.svn-base b/.svn/pristine/82/82eda70f2c8f5e12cf324c6cd17b75c5ecb3f90b.svn-base Binary files differ. diff --git a/.svn/pristine/83/8377874e5b4e287f10d941bcca7e724c8081f352.svn-base b/.svn/pristine/83/8377874e5b4e287f10d941bcca7e724c8081f352.svn-base @@ -1,671 +0,0 @@ -#ifndef ACTOR_H -#define ACTOR_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "AnimationGraph.h" -#include "Physics.h" -#include "Terrain.h" -//#include "ActorHandle.h" - -//Actor State Defines -#define IDLE 10 -#define RUN 20 -#define IDLE_BEGIN 30 -#define JUMP 40 -#define WANDER 50 -#define PURSUE 60 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 -// - -struct Trajectory -{ - float slope; - int dir; -}; - -class ActorHandleManager; -class SpatialMonitor; - -class Actor : public EventReceiver -{ -public: - - Actor() : mOpacity(255) {} - - Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - virtual bool UpdateAnimation() = 0; - - virtual bool ActorUpdate() = 0; - - int GetX() - { - return mPosData.x; - } - - int GetY() - { - return mPosData.y; - } - - int GetHeight() - { - return mPosData.h; - } - - int GetWidth() - { - return mPosData.w; - } - - int GetDrawX() - { - return mDrawPos.x; - } - - int GetDrawY() - { - return mDrawPos.y; - } - - int GetDrawHeight() - { - return mDrawPos.h; - } - - int GetDrawWidth() - { - return mDrawPos.w; - } - - SDL_Rect* GetPosition() - { - return &mPosData; - } - - SDL_Rect* GetDrawPosition() - { - return &mDrawPos; - } - - SDL_Rect CalcDrawRect() - { - if (mDir == RIGHT) - { - mDrawPos.x = mOff_x; - } - else //mDir = LEFT - { - mDrawPos.x = -(mDrawPos.w + (mOff_x - mPosData.w) ); - } - return mDrawPos; - } - - int GetOpacity() - { - return mOpacity; - } - - int SetOpacity(int i) - { - return mOpacity = i; - } - - Frame* GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - - std::vector<Actor*> GetHats() - { - return mHats; - } - - int AttachHat(Actor* hat) - { - mHats.push_back(hat); - return ((int)mHats.size() - 1); - } - - int SetHandle(int i) - { - return mHandle = i; - } - - int GetHandle() - { - return mHandle; - } - - int SetSpatCell(int i) - { - return mSpatCell = i; - } - - int GetSpatCell () - { - return mSpatCell; - } - - AnimGraph* GetAnimGraph() - { - return mAnimGraph; - } - - void PassAnimGraphState() - { - mAnimGraph->GiveActorState(&mAnimID); - } - - int GetAnimID() - { - return mAnimID; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool IsBlocking() - { - return mBlocking; - } - - EventFeed mFeed; - -protected: - - AnimGraph* mAnimGraph; - Frame* mFrame; - int mOpacity; - - int mState; - int mDir; - int mAnimID; - - SDL_Rect mPosData; //Where the actors collision box is - SDL_Rect mDrawPos; //Where the actor is drawn relative to its physical position (mPosData) - - int mOff_x; - int mOff_y; - - std::vector<Actor*> mHats; - - ActorHandleManager* mAHM; - int mHandle; - - SpatialMonitor* mSpat; //SpatialMonitor deals with actor collision and other region checking (like LoS) - int mSpatCell; - - EventReceiver* mParticleLib; //Deals with the spawning of particles - - EventReceiver* mSoundLib; //Deals with sounds and the spawning of point sounds - int mSoundChannel; //used to play sounds directly from the actor - - bool mBlocking; //determines if an actor blocks other actors from passing through it -}; - -class Winch : public Actor -{ -public: - Winch(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, Actor* gate, int dir) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mGate(gate) - { - mState = IDLE; - mDir = dir; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mGate; -}; - -class Blocker : public Actor -{ -public: - Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Test_Blocker : public Blocker -{ -public: - Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Gate : public Blocker -{ -public: - Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir = RIGHT); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); -protected: -}; - -class Interactable : public Actor -{ -public: - - Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - -protected: -}; - -class Talker : public Interactable -{ -public: - Talker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mStr(str) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - char* mStr; -}; - -class Gateman : public Talker -{ -public: - - //Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, EventReceiver* gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGate(gate) - Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) - { - mLOS = Pos; - mLOS.w = 250; - mLOS.x = mLOS.x - 125 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mLOS; - - int mGateH; //handle for paired gate - - bool mTalked; -}; - -class Door : public Interactable -{ -public: - - Door(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int x_off, int y_off) : Interactable(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTele_Pos = mPosData; - mTele_Pos.x += x_off; - mTele_Pos.y += y_off; - } - - SDL_Rect* GetTelePos() - { - return &mTele_Pos; - } - - void SetTeleDest(SDL_Rect* dest) - { - mTele_Dest = dest; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - SDL_Rect mTele_Pos; - SDL_Rect* mTele_Dest; -}; - -class Mobile : public Actor -{ -public: - - Mobile() : mXspd(0), mYspd(0) {} - - Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - void SetPosition(SDL_Rect* Dest); - - bool ModifyActorPosition(int x, int y); - - SDL_Rect MoveActor(int xspd, int yspd); - - int MoveActorDirect(float xspd, float yspd); - -protected: - float mXspd; - float mYspd; - int mXmove; - int mYmove; -}; - -class Hat : public Mobile -{ -public: - Hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mTarget(tar), Mobile(AnimData, *tar->GetPosition(), *tar->GetDrawPosition(), AHM, spat, prtLib, SoundLib) - { - mEnabled = true; - } - - bool IsEnabled() - { - return mEnabled; - } - - void ToggleHat(bool state) - { - mEnabled = state; - } - - bool EventProcess(Event eve) - { - return true; - } - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - bool mEnabled; -}; - -class bad_hat : public Hat -{ -public: - - bad_hat(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - } - - bool UpdateAnimation() - { - switch (mState) - { - case RUN: - default: - mAnimID = IDLE; - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class sword : public Hat -{ -public: - - sword(AnimGraph* AnimData, Actor* tar, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Hat(AnimData, tar, AHM, spat, prtLib, SoundLib) - { - mEnabled = false; - } - - bool UpdateAnimation() - { - mAnimID = mTarget->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; - } -protected: -}; - -class Character : public Mobile -{ -public: - - Character() {} - - Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib); - - bool DetectFalling(); - - bool UpdatePhysics(); - - bool UpdateFireables(); - - Trajectory GetTrajectory(SDL_Rect Dest, SDL_Rect Init); - - SDL_Rect RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount = 0); - - bool HandleDirectionalCollisions(SDL_Rect& Destination); - - bool UpdatePosition(); - - TerrainCollisionManager* getColMan() - { - return &mColMan; - } - -protected: - - SDL_Rect mDestData; - colman_Character mColMan; - PhysicsManager mPhysMan; -}; - -class Player : public Character -{ -public: - Player() {} - - Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalkerID(-1), mHP(100), mHPmax(100), mRecover(0), mTouch(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - mTouch.h = Pos.h; - mTouch.w = 18; - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - - int* GetHP() - { - return &mHP; - } - - int* GetMaxHP() - { - return &mHPmax; - } - - void SetSword(int index) - { - mHatIndex_Sword = index; - } - -protected: - -// bool mTalking; - int mTalkerID; - - bool mWielded; - int mHatIndex_Sword; - - int mHP; - int mHPmax; - - int mRecover; //Timer to force recovery pause between jumps - - SDL_Rect mTouch; //Rect that deterimes what can be interacted with -}; - -class Loyal_Bug : public Character -{ -public: - Loyal_Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mMounted(false), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - bool mMounted; -}; - -class Bug : public Character -{ -public: - Bug(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) - { - } - -protected: - - int mTimer; - -}; - -class Wanderer : public Character -{ -public: - - Wanderer() : mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) {} - - Wanderer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWanderTimer(0), mWanderLimit(0), mWaitTimer(0), mWaitLimit(0) - { - } - - bool Wander(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -class Pursuer : public Character -{ -public: - Pursuer() {} - - Pursuer(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mRestTimer(0) - { - mState = IDLE; - mLOS = mPosData; - mLOS.x -= (170 - mLOS.w) / 2; - mLOS.w = 170; - } - - bool Pursue(); - - bool rest(int t); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - Actor* mTarget; - int mRestTimer; - SDL_Rect mLOS; -}; - -class Rabbit : public Character -{ -public: - Rabbit() {} - - Rabbit(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mWaitLimit(0), mWaitTimer(0), mWanderLimit(0), mWanderTimer(0) - { - } - - bool Hop(); - - bool Wander(); - - bool Behave(); - - bool WaitRandom(); - - bool EventProcess(Event eve); - - virtual bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - int mWanderTimer; - int mWanderLimit; - int mWaitLimit; - int mWaitTimer; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/83/83878a49d8254b871acf1bec3fe9a9e24cdfdfcf.svn-base b/.svn/pristine/83/83878a49d8254b871acf1bec3fe9a9e24cdfdfcf.svn-base Binary files differ. diff --git a/.svn/pristine/83/83c7e4465e2f3854094b652fa8abee326d1cfaca.svn-base b/.svn/pristine/83/83c7e4465e2f3854094b652fa8abee326d1cfaca.svn-base @@ -1,119 +0,0 @@ -#ifndef ANIMATION_GRAPH_H -#define ANIMATION_GRAPH_H - -#include "Utils.h" -#include "Console.h" -#include "Animation.h" -#include "Event.h" - -class AnimGraphData -{ -public: - - AnimGraphData() {} - - //AnimGraph(int* state) : mActorState(state) {} - - AnimGraphData(AnimDataPack animdata) : mAnimData(animdata) {} - - bool DefineLoop(int AnimID); - - bool DefineTransitions(int AnimID); - - bool DefineFireables(int AnimID); - - bool CreateTranisitionMatrix(); //call only after all loops have been defined - - bool PopulateTransitionMatrix(int initState, int targetState, int transitionID); - - int GetLoopIDIndex(int index) - { - return mLoopsAnimIDs.at(index); - } - - AnimDataPack* GetAnimData() - { - return &mAnimData; - } - - int GetH() - { - return mAnimData.GetFrameH(); - } - - int GetW() - { - return mAnimData.GetFrameW(); - } - - std::vector<int> mLoopsAnimIDs; - std::vector<int> mTransitionsAnimIDs; - std::vector<int> mFireablesAnimIDs; - int** mTransitionMatrix; - -protected: - - AnimDataPack mAnimData; - -}; - - -class AnimGraph : public EventReceiver -{ -public: - - AnimGraph() {}; - - AnimGraph(AnimGraphData* AGD) - { - mAGD = AGD; - mAnimPack = AnimPack(mAGD->GetAnimData()); - - for (int i = 0; i < (int)mAGD->mTransitionsAnimIDs.size(); i++) - { - mAnimPack.GetAnimation(mAGD->mTransitionsAnimIDs.at(i))->mFeed.Subscribe(this); - } - } - - void GiveActorState(int* state) - { - mActorState = state; - mState = *mActorState; - } - - int GetTransitionID(int initState, int targetState); - - Frame* UpdateAnimation(); - - Frame* PlayOnce(int AnimID); - - bool EventProcess(Event eve); - - AnimPack* GetAnimPack() - { - return &mAnimPack; - } - - int GetH() - { - return mAGD->GetH(); - } - - int GetW() - { - return mAGD->GetW(); - } - - EventFeed mFeed; - -protected: - - AnimGraphData* mAGD; - AnimPack mAnimPack; - - int* mActorState; - int mState; - - Frame mCurrentFrame; -}; -#endif- \ No newline at end of file diff --git a/.svn/pristine/84/84f6ad1233ac71a402c78b94afcc53ea228250f8.svn-base b/.svn/pristine/84/84f6ad1233ac71a402c78b94afcc53ea228250f8.svn-base @@ -1,35 +0,0 @@ - Actor.cpp - ActorCollision.cpp - ActorHandle.cpp - Animation.cpp - AnimationGraph.cpp - BinaryTree.cpp - Camera.cpp - cJSON.cpp - Console.cpp - Context.cpp - DiagnosticDraw.cpp - Dialogue.cpp - Emitter.cpp - Event.cpp - HUD.cpp - Input.cpp - Layer.cpp - Level.cpp - Loading.cpp - Main.cpp - Compiling... - MiscDraw.cpp - Particle.cpp - Physics.cpp - Sequence.cpp - sound.cpp - symbol.cpp - Terrain.cpp - Utils.cpp - Generating code - All 1910 functions were compiled because no usable IPDB/IOBJ from previous compilation was found. - Finished generating code -SDL2main.lib(SDL_windows_main.obj) : warning LNK4049: locally defined symbol ___iob_func imported - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Release\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Release\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/85/85af6293ea292b8edb3d50705e607620fc1369c5.svn-base b/.svn/pristine/85/85af6293ea292b8edb3d50705e607620fc1369c5.svn-base Binary files differ. diff --git a/.svn/pristine/86/8628d831e47b766a938c49e043b0abe5c2d52d55.svn-base b/.svn/pristine/86/8628d831e47b766a938c49e043b0abe5c2d52d55.svn-base Binary files differ. diff --git a/.svn/pristine/86/864c3a877598e06a1fdad9e026fc8f1552a351f1.svn-base b/.svn/pristine/86/864c3a877598e06a1fdad9e026fc8f1552a351f1.svn-base Binary files differ. diff --git a/.svn/pristine/86/8662276ba7173b256049bf4e13bf5de9259a208a.svn-base b/.svn/pristine/86/8662276ba7173b256049bf4e13bf5de9259a208a.svn-base Binary files differ. diff --git a/.svn/pristine/86/86733c62aa7a28f74a07eb4053cea5fb7fdbdf8b.svn-base b/.svn/pristine/86/86733c62aa7a28f74a07eb4053cea5fb7fdbdf8b.svn-base Binary files differ. diff --git a/.svn/pristine/86/867c5b0e3e7ada30c0d2ae0e7b704793a9c7f868.svn-base b/.svn/pristine/86/867c5b0e3e7ada30c0d2ae0e7b704793a9c7f868.svn-base Binary files differ. diff --git a/.svn/pristine/86/869c5e5496a4346fac505fbd71ce71ce24dda302.svn-base b/.svn/pristine/86/869c5e5496a4346fac505fbd71ce71ce24dda302.svn-base Binary files differ. diff --git a/.svn/pristine/87/8794073d2256293fc831fbdbd7eddf63ffa18142.svn-base b/.svn/pristine/87/8794073d2256293fc831fbdbd7eddf63ffa18142.svn-base @@ -1,3 +0,0 @@ - Mapper.cpp - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/87/87d6c7c96bdb5cf74a86496eec3f6aba678d5101.svn-base b/.svn/pristine/87/87d6c7c96bdb5cf74a86496eec3f6aba678d5101.svn-base Binary files differ. diff --git a/.svn/pristine/87/87efef754b5d922ec4a27d11d7d73fcf64fa8b07.svn-base b/.svn/pristine/87/87efef754b5d922ec4a27d11d7d73fcf64fa8b07.svn-base Binary files differ. diff --git a/.svn/pristine/88/887cb1fcb635bbb2c414d26e75770ca8da992e81.svn-base b/.svn/pristine/88/887cb1fcb635bbb2c414d26e75770ca8da992e81.svn-base Binary files differ. diff --git a/.svn/pristine/88/88a422b1b0fd1413d7b59c489be1dba97ef3b201.svn-base b/.svn/pristine/88/88a422b1b0fd1413d7b59c489be1dba97ef3b201.svn-base Binary files differ. diff --git a/.svn/pristine/88/88c4585d931613fe1aef3b4fc5c6d883e002df88.svn-base b/.svn/pristine/88/88c4585d931613fe1aef3b4fc5c6d883e002df88.svn-base Binary files differ. diff --git a/.svn/pristine/88/88f5303d6998390addac14a270e2dbbd39b4b4a8.svn-base b/.svn/pristine/88/88f5303d6998390addac14a270e2dbbd39b4b4a8.svn-base Binary files differ. diff --git a/.svn/pristine/89/897d03b9ff5dcf3c4e1ce2c61a73c230c37b6ee1.svn-base b/.svn/pristine/89/897d03b9ff5dcf3c4e1ce2c61a73c230c37b6ee1.svn-base Binary files differ. diff --git a/.svn/pristine/89/89cf8e7a66aaa31bfabb247d7ea3eeffb91792ec.svn-base b/.svn/pristine/89/89cf8e7a66aaa31bfabb247d7ea3eeffb91792ec.svn-base Binary files differ. diff --git a/.svn/pristine/89/89e2d76400d7debcb28776010347640d116bb9c1.svn-base b/.svn/pristine/89/89e2d76400d7debcb28776010347640d116bb9c1.svn-base Binary files differ. diff --git a/.svn/pristine/8a/8a31f62754e6cdc54e8760f64295998877e4f7cf.svn-base b/.svn/pristine/8a/8a31f62754e6cdc54e8760f64295998877e4f7cf.svn-base @@ -1,143 +0,0 @@ -#ifndef PARTICLE_H -#define PARTICLE_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -#include "Actor.h" - -struct ParticleData -{ - //AnimDataPack* AnimData; - AnimGraph* AnimData; - int Height; - int Width; - EventReceiver* spat; -}; - - -class Particle : public Mobile -{ -public: - Particle() {} - - Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, EventReceiver* spat); - - Particle(const Particle& that) - { - gCons->ConsPrintf("no pls\n"); - } - - ~Particle() - { - - } - - //bool EventProcess(Event eve); - - //bool UpdateAnimation(); - - //bool ActorUpdate(); - - void setID(int i) - { - mID = i; - } - - int GetID() - { - return mID; - } - - EventFeed mFeed; -protected: - - int mID; - -private: - //Particle(const Particle& that); -}; - -class P_static : public Particle -{ -public: - - P_static(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, EventReceiver* spat) : Particle(AnimData, Pos, ID, AHM, spat) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: -}; - - -class P_drift : public Particle -{ -public: - - P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, EventReceiver* spat, drift_data data); - - bool Drift(); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - drift_data mData; - -}; - -class ParticleManager : public EventReceiver -{ -public: - - bool LogParticleData(ParticleData* pd, char* name) - { - mParticleData.push_back(pd); - mNames.push_back(name); - particlesKilled = 0; - return true; - } - - ParticleData* GetParticleData(char* name) - { - for (int i = 0; i < (int)mParticleData.size(); i++) - { - if (!strcmp(name, mNames.at(i))) - { - return mParticleData.at(i); - } - } - return NULL; - } - - bool SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata = NullPTdata() ); - - bool ClearParticle(Particle* prt); - - bool EventProcess(Event eve); - - std::vector<Particle*>* GetParticles() - { - return &mParticles; - } - -protected: - - std::vector<ParticleData*> mParticleData; - std::vector<char*> mNames; - - std::vector<Particle*> mParticles; - - int particlesKilled; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/8a/8a7c13b7a8ee52c1eed0d3604cbfe3d7c7f34e92.svn-base b/.svn/pristine/8a/8a7c13b7a8ee52c1eed0d3604cbfe3d7c7f34e92.svn-base Binary files differ. diff --git a/.svn/pristine/8b/8b0d10f288fa6d8622dda3eee76d5c7a0223fd78.svn-base b/.svn/pristine/8b/8b0d10f288fa6d8622dda3eee76d5c7a0223fd78.svn-base @@ -1,10 +0,0 @@ - Actor.cpp - Generating Code... - Compiling... - ActorCollision.cpp - Generating Code... - Skipping... (no relevant changes detected) - Main.cpp - Level.cpp - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/8b/8bd0ff32d76105ac3556d1ea32149cd1705ca7ab.svn-base b/.svn/pristine/8b/8bd0ff32d76105ac3556d1ea32149cd1705ca7ab.svn-base @@ -1,2118 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?><DEFECTS><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>29</COLUMN> - </SFA> - <DEFECTCODE>6201</DEFECTCODE> - <DESCRIPTION>Index '1024' is out of valid index range '0' to '1023' for possibly stack allocated buffer 'this-&gt;mAdjacentActorIDs'.</DESCRIPTION> - <FUNCTION>SpatialMonitor::GetAdjacentActors</FUNCTION> - <DECORATED>?GetAdjacentActors@SpatialMonitor@@IAE_NH@Z</DECORATED> - <FUNCLINE>88</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>31</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'this-&gt;mAdjacentActorIDs': the writable size is '4096' bytes, but '4100' bytes might be written.</DESCRIPTION> - <FUNCTION>SpatialMonitor::GetAdjacentActors</FUNCTION> - <DECORATED>?GetAdjacentActors@SpatialMonitor@@IAE_NH@Z</DECORATED> - <FUNCLINE>88</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>21</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>actorcollision.cpp</FILENAME> - <LINE>91</LINE> - <COLUMN>31</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'this-&gt;mAdjacentActorIDs[1024]', (writable range is 0 to 1023)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mTransitionMatrix': the writable size is 'mLoopsAnimIDs.public: unsigned int __thiscall std::vector&lt;int,class std::allocator&lt;int&gt; &gt;::size(void)const ()*4' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>AnimGraphData::CreateTranisitionMatrix</FUNCTION> - <DECORATED>?CreateTranisitionMatrix@AnimGraphData@@QAE_NXZ</DECORATED> - <FUNCLINE>29</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>49</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mTransitionMatrix[1]', (writable range is 0 to 0)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mTransitionMatrix[i]': the writable size is 'mLoopsAnimIDs.public: unsigned int __thiscall std::vector&lt;int,class std::allocator&lt;int&gt; &gt;::size(void)const ()*4' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>AnimGraphData::CreateTranisitionMatrix</FUNCTION> - <DECORATED>?CreateTranisitionMatrix@AnimGraphData@@QAE_NXZ</DECORATED> - <FUNCLINE>29</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>10</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' is NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>50</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mTransitionMatrix[i][1]', (writable range is 0 to 0)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>console.cpp</FILENAME> - <LINE>51</LINE> - <COLUMN>8</COLUMN> - </SFA> - <DEFECTCODE>6306</DEFECTCODE> - <DESCRIPTION>Incorrect call to 'sprintf': consider using 'vsprintf' which accepts a va_list as an argument.</DESCRIPTION> - <FUNCTION>ConsoleStringManager::ConsolePrintf</FUNCTION> - <DECORATED>?ConsolePrintf@ConsoleStringManager@@QAAXPADZZ</DECORATED> - <FUNCLINE>45</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'last_fit': the writable size is '(unsigned int)size+(unsigned int)1' bytes, but '4' bytes might be written.</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'_Old_11`4' is equal to 4</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'last_fit', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'last_fit' could be '0': this does not adhere to the specification for the function 'memset'. </DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'memset' (declared at c:\program files (x86)\microsoft visual studio 14.0\vc\include\vcruntime_string.h:60)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' should not be NULL, because this is not consistent with the SAL annotation on 'memset'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'last_fit' could be '0': this does not adhere to the specification for the function 'strcpy'. See line 34 for an earlier location where this can occur</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>34</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'memset' (declared at c:\program files (x86)\microsoft visual studio 14.0\vc\include\vcruntime_string.h:60)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>37</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'tok!=0')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>40</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>42</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>43</LINE> - <COLUMN>14</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>44</LINE> - <COLUMN>15</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Skip this branch, (assume 'text_pix&gt;=text_pix_max' is false)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'last_fit' is an In/Out argument to 'strcpy' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\string.h:119)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>63</LINE> - <COLUMN>9</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'last_fit' should not be NULL, because this is not consistent with the SAL annotation on 'strcpy'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'line': the writable size is '(unsigned int)size+(unsigned int)1' bytes, but '4' bytes might be written.</DESCRIPTION> - <FUNCTION>Dialogue::TextWrap</FUNCTION> - <DECORATED>?TextWrap@Dialogue@@QAE_NHPAD@Z</DECORATED> - <FUNCLINE>22</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>24</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>26</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>27</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>28</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'line' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'_Old_9`4' is equal to 4</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>dialogue.cpp</FILENAME> - <LINE>32</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'line', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>68</LINE> - <COLUMN>6</COLUMN> - </SFA> - <DEFECTCODE>6246</DEFECTCODE> - <DESCRIPTION>Local declaration of 'overs' hides declaration of the same name in outer scope. For additional information, see previous declaration at line '64' of 'c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\level.cpp'.</DESCRIPTION> - <FUNCTION>Level::LoadWorld</FUNCTION> - <DECORATED>?LoadWorld@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>16</FUNCLINE> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>64</LINE> - <COLUMN>14</COLUMN> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'Index': the writable size is '(unsigned int)cJSON_GetArraySize(anim_set)*sizeof(int)' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>53</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'j' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'Index', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'Index'. </DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mAnim_names': the writable size is '(unsigned int)cJSON_GetArraySize(animations)*sizeof(char *)' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume '&lt;branch condition&gt;')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>153</LINE> - <COLUMN>14</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>154</LINE> - <COLUMN>18</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>155</LINE> - <COLUMN>21</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>158</LINE> - <COLUMN>15</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>54</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume '&lt;branch condition&gt;')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'i' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mAnim_names', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'frame_data': the writable size is '(unsigned int)cJSON_GetArraySize(anim_set)*sizeof(FrameSet)' bytes, but '8216' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'frame_data' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>53</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'j' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'frame_data', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'LineSur'. </DESCRIPTION> - <FUNCTION>DrawText</FUNCTION> - <DECORATED>?DrawText@@YA_NPAUSDL_Renderer@@PAU_TTF_Font@@PADUSDL_Color@@3@Z</DECORATED> - <FUNCLINE>91</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>93</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>96</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'LineSur' may be NULL (Enter this branch)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>98</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'LineSur' is an In/Out argument to 'SDL_SetColorKey' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\sdl2-2.0.4\include\sdl_surface.h:224)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>miscdraw.cpp</FILENAME> - <LINE>101</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'LineSur' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>sound.cpp</FILENAME> - <LINE>52</LINE> - <COLUMN>14</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>ChannelManager::PlaySound</FUNCTION> - <DECORATED>?PlaySound@ChannelManager@@QAE_NHPAUMix_Chunk@@H@Z</DECORATED> - <FUNCLINE>50</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>sound.cpp</FILENAME> - <LINE>86</LINE> - <COLUMN>14</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>ChannelManager::PlayLoop</FUNCTION> - <DECORATED>?PlayLoop@ChannelManager@@QAE_NHPAUMix_Chunk@@H@Z</DECORATED> - <FUNCLINE>84</FUNCLINE> - <PATH></PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'surface'. </DESCRIPTION> - <FUNCTION>LoadSurfaceBMP</FUNCTION> - <DECORATED>?LoadSurfaceBMP@@YAPAUSDL_Surface@@PBD@Z</DECORATED> - <FUNCLINE>26</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>29</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>37</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>39</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>40</LINE> - <COLUMN>13</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'surface' may be NULL (Enter this branch)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>42</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'surface' is an In/Out argument to 'SDL_SetColorKey' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\sdl2-2.0.4\include\sdl_surface.h:224)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>45</LINE> - <COLUMN>16</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'surface' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - </SFA> - <DEFECTCODE>6387</DEFECTCODE> - <DESCRIPTION>'filecontent' could be '0': this does not adhere to the specification for the function 'fread'. </DESCRIPTION> - <FUNCTION>LoadJSON</FUNCTION> - <DECORATED>?LoadJSON@@YAPAUcJSON@@PBD@Z</DECORATED> - <FUNCLINE>70</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>73</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>80</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>81</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>82</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>84</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>85</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>87</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>89</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>4</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'filecontent' is an In/Out argument to 'fread' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h:231)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' should not be NULL, because this is not consistent with the SAL annotation on 'fread'</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT><DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>19</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'filecontent'. See line 92 for an earlier location where this can occur</DESCRIPTION> - <FUNCTION>LoadJSON</FUNCTION> - <DECORATED>?LoadJSON@@YAPAUcJSON@@PBD@Z</DECORATED> - <FUNCLINE>70</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>73</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>80</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>81</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>82</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>84</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>85</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>87</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>89</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>90</LINE> - <COLUMN>4</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>92</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'filecontent' is an In/Out argument to 'fread' (declared at c:\program files (x86)\windows kits\10\include\10.0.10240.0\ucrt\stdio.h:231)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>93</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>utils.cpp</FILENAME> - <LINE>95</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'filecontent' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT></DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/8c/8c5b67be4eeaa1f8561d26d9c7803eb48381abfb.svn-base b/.svn/pristine/8c/8c5b67be4eeaa1f8561d26d9c7803eb48381abfb.svn-base @@ -1,196 +0,0 @@ -#ifndef BINARY_TREE_H -#define BINARY_TREE_H - -#define NULL 0 - - -class Node -{ -public: - - Node() : mParent(NULL), mLeft(NULL), mRight(NULL), mColor(RED) - {} - - Node(Node* parent, int item, void* data) : mItem(item), mData(data), mParent(parent), mLeft(NULL), mRight(NULL), mColor(RED) - {} - - Node(int item, void* data) : mItem(item), mData(data), mParent(NULL), mLeft(NULL), mRight(NULL), mColor(BLACK) //Used to create debugging root node w/test data - {} - -// ~Node() -// { -// mParent = NULL; -// mRight = NULL; -// mLeft = NULL; -// mData = NULL; -// } - - bool nInsert(int i, void* data); - - Node* nSearch(int i); - - int nSize(int i = 0); - - Node** nDump(int* index, Node** contents = 0); //Should always be called with no arguments, arguements only used for recursion. - - bool nInsertNode(Node* n); - - bool nInsertNodeAtRoot(Node* n); - - void nDelete(); - - void rotate_left(); - void rotate_right(); - - int GetItem() - { - return mItem; - } - - void* GetData() - { - if (mData != NULL) - { - return mData; - } - else - { - return NULL; - } - } - - void AttachLeft(Node* n) - { - n->mParent = this; - mLeft = n; - } - - void AttachRight(Node* n) - { - n->mParent = this; - mRight = n; - } - - void SwapColor() - { - if (mColor == RED) { mColor = BLACK; } - else { mColor = RED; } - } - - Node* mParent; - Node* mLeft; - Node* mRight; - -protected: - - enum { RED, BLACK } mColor; - - int mItem; - - void* mData; -}; - - -class BinaryTree -{ -public: - - BinaryTree() : mRoot(NULL) - { - } - - BinaryTree(Node* Root) : mRoot(Root) - { - } - - bool Insert(int i, void* data) - { - if (mRoot != NULL) - { - return mRoot->nInsert(i, data); - } - else //mRoot == NULL -> Tree is empty - { - mRoot = new Node(i, data); - return true; - } - } - - bool InsertNode(Node* node) - { - if (mRoot != NULL) - { - return mRoot->nInsertNode(node); - } - else //mRoot == NULL -> Tree is empty - { - node->mParent = NULL; - mRoot = node; - return true; - } - } - - Node* Search(int i) - { - if (mRoot != NULL) - { - return mRoot->nSearch(i); - } - return NULL; - } - - int Size(int i = 0) - { - if (mRoot != NULL) - { - return mRoot->nSize(i); - } - return -1; - } - - Node** Dump(Node** contents = 0) - { - if (mRoot != NULL) - { - int index = 0; - return mRoot->nDump(&index, contents); - } - return NULL; - } - - void DeleteNode(int node_item) - { - Node* target = Search(node_item); - if (target == mRoot) { mRoot = NULL; } - else if (target->mParent->mLeft == target) { target->mParent->mLeft = NULL; } - else if (target->mParent->mRight == target) { target->mParent->mRight = NULL; } - else - { - //assert(false); - return; //node listed as parent is does not have this node as a child. Tree broken. - } - if (target->mLeft != NULL) - { - InsertNode(target->mLeft); - //target->mLeft->nDelete(); //this stuff is all broken. fix it tommorrow - } - if (target->mRight != NULL) - { - InsertNode(target->mRight); - //target->mRight->nDelete(); - } - delete target; - } - - - void Delete() - { - mRoot->nDelete(); - } - - -protected: - - Node* mRoot; -}; -#endif- \ No newline at end of file diff --git a/.svn/pristine/8c/8cb3ccb3bb6151f1a232cb8ed108f4d43577a8c9.svn-base b/.svn/pristine/8c/8cb3ccb3bb6151f1a232cb8ed108f4d43577a8c9.svn-base @@ -1,2 +0,0 @@ -#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 -Release|Win32|C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\| diff --git a/.svn/pristine/8d/8d851076400de5e5260a76b5d7b8a81e8a0d1154.svn-base b/.svn/pristine/8d/8d851076400de5e5260a76b5d7b8a81e8a0d1154.svn-base Binary files differ. diff --git a/.svn/pristine/8d/8dcbcc21a90b2f6085323298e73a2f3cfda04271.svn-base b/.svn/pristine/8d/8dcbcc21a90b2f6085323298e73a2f3cfda04271.svn-base Binary files differ. diff --git a/.svn/pristine/8e/8e0fa4b1109671c61de2b420f94127034af2946c.svn-base b/.svn/pristine/8e/8e0fa4b1109671c61de2b420f94127034af2946c.svn-base Binary files differ. diff --git a/.svn/pristine/8e/8e10c473bb8ff23a3d5d8dd5de00b7c6ecaeaac4.svn-base b/.svn/pristine/8e/8e10c473bb8ff23a3d5d8dd5de00b7c6ecaeaac4.svn-base @@ -1,141 +0,0 @@ -#ifndef BINARY_TREE_H -#define BINARY_TREE_H - -#define NULL 0 - - -class Node -{ -public: - - Node() : mParent(NULL), mLeft(NULL), mRight(NULL), mColor(RED) - {} - - Node(Node* parent, int item, void* data) : mItem(item), mData(data), mParent(parent), mLeft(NULL), mRight(NULL), mColor(RED) - {} - - Node(int item, void* data) : mItem(item), mData(data), mParent(NULL), mLeft(NULL), mRight(NULL), mColor(BLACK) //Used to create debugging root node w/test data - {} - - bool Insert(int i, void* data); - - Node* Search(int i); - - int Size(int i = 0); - - Node** Dump(int index = 0, Node** contents = 0); //Should always be called with no arguments, arguements only used for recursion. - - bool InsertNode(Node* n); - - bool InsertNodeAtRoot(Node* n); - - void Delete(); - - void rotate_left(); - void rotate_right(); - - int GetItem() - { - return mItem; - } - - void* GetData() - { - return mData; - } - - void AttachLeft(Node* n) - { - n->mParent = this; - mLeft = n; - } - - void AttachRight(Node* n) - { - n->mParent = this; - mRight = n; - } - - void SwapColor() - { - if (mColor == RED) { mColor = BLACK; } - else { mColor = RED; } - } - - Node* mParent; - Node* mLeft; - Node* mRight; - -protected: - - enum { RED, BLACK } mColor; - - int mItem; - - void* mData; -}; - - -class BinaryTree -{ -public: - - BinaryTree() : mRoot(NULL) - { - } - - BinaryTree(Node* Root) : mRoot(Root) - { - } - - bool Insert(int i, void* data) - { - if (mRoot != NULL) - { - return mRoot->Insert(i, data); - } - else //mRoot == NULL -> Tree is empty - { - mRoot = new Node(i, data); - return true; - } - } - - Node* Search(int i) - { - if (mRoot != NULL) - { - return mRoot->Search(i); - } - return NULL; - } - - int Size(int i = 0) - { - if (mRoot != NULL) - { - return mRoot->Size(i); - } - return -1; - } - - Node** Dump(int index = 0, Node** contents = 0) - { - if (mRoot != NULL) - { - return mRoot->Dump(index, contents); - } - return NULL; - } - - void Delete() - { - return mRoot->Delete(); - } - - -protected: - - Node* mRoot; -}; -#endif- \ No newline at end of file diff --git a/.svn/pristine/8e/8e2182e84202b1b0c7ad0288f3b9b140d0ae28b4.svn-base b/.svn/pristine/8e/8e2182e84202b1b0c7ad0288f3b9b140d0ae28b4.svn-base @@ -1,143 +0,0 @@ -#ifndef PARTICLE_H -#define PARTICLE_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -#include "Actor.h" - -struct ParticleData -{ - //AnimDataPack* AnimData; - AnimGraph* AnimData; - int Height; - int Width; - EventReceiver* spat; -}; - - -class Particle : public Mobile -{ -public: - Particle() {} - - Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, SpatialMonitor* spat); - - Particle(const Particle& that) - { - gCons->ConsPrintf("no pls\n"); - } - - ~Particle() - { - - } - - //bool EventProcess(Event eve); - - //bool UpdateAnimation(); - - //bool ActorUpdate(); - - void setID(int i) - { - mID = i; - } - - int GetID() - { - return mID; - } - - EventFeed mFeed; -protected: - - int mID; - -private: - //Particle(const Particle& that); -}; - -class P_static : public Particle -{ -public: - - P_static(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, SpatialMonitor* spat) : Particle(AnimData, Pos, ID, AHM, spat) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: -}; - - -class P_drift : public Particle -{ -public: - - P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, SpatialMonitor* spat, drift_data data); - - bool Drift(); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - drift_data mData; - -}; - -class ParticleManager : public EventReceiver -{ -public: - - bool LogParticleData(ParticleData* pd, char* name) - { - mParticleData.push_back(pd); - mNames.push_back(name); - particlesKilled = 0; - return true; - } - - ParticleData* GetParticleData(char* name) - { - for (int i = 0; i < (int)mParticleData.size(); i++) - { - if (!strcmp(name, mNames.at(i))) - { - return mParticleData.at(i); - } - } - return NULL; - } - - bool SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata = NullPTdata() ); - - bool ClearParticle(Particle* prt); - - bool EventProcess(Event eve); - - std::vector<Particle*>* GetParticles() - { - return &mParticles; - } - -protected: - - std::vector<ParticleData*> mParticleData; - std::vector<char*> mNames; - - std::vector<Particle*> mParticles; - - int particlesKilled; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/8e/8e814ec61bd836a85d906aefd7dd1addbfd38958.svn-base b/.svn/pristine/8e/8e814ec61bd836a85d906aefd7dd1addbfd38958.svn-base @@ -1,176 +0,0 @@ -#include "Utils.h" -#include "Console.h" -#include "MiscDraw.h" -#include "DiagnosticDraw.h" -#include "ActorCollision.h" -#include "Input.h" -#include "Actor.h" -#include "sound.h" - -#include "Dialogue.h" - -#include "Loading.h" -#include "Level.h" - -#include "BinaryTree.h" //remove later - -FILE _iob[] = { *stdin, *stdout, *stderr }; - -extern "C" FILE * __cdecl __iob_func(void) -{ - return _iob; -} - -int main(int argc, char *argv[]) -{ - gTime = new Time(); - - TTF_Init(); -// BinaryTree TestTree = BinaryTree(new Node(10, NULL)); -// TestTree.Insert(5, NULL); -// TestTree.Insert(15, NULL); -// TestTree.Insert(7, NULL); -// TestTree.Insert(2, NULL); -// TestTree.Insert(20, NULL); -// TestTree.Insert(17, NULL); -// TestTree.Insert(35, NULL); -// TestTree.Insert(31, NULL); -// int s = TestTree.Size(); - -// Node** contents = TestTree.Dump(); - - //Node* tar = TestTree.Search(5);//->Delete(); - - //char buff1[256]; - //memset(buff1, 0, sizeof(buff1)); - //ReadBTree(&TestTree, buff1); - //tar->Delete(); - //char buff2[256]; - //memset(buff2, 0, sizeof(buff2)); - //ReadBTree(&TestTree, buff2); - -// Node* Tree = new Node(); -// Tree->InsertNode() - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_AUDIO) != 0) - { - gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); - SDL_Quit(); - return 1; - } - - Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048); -// Mix_Init(MIX_INIT_MP3); - - if (TTF_Init() != 0) - { - gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); - TTF_Quit(); - SDL_Quit(); - return 1; - } - - - SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); - if (window == NULL) - { - gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (ren == NULL) - { - gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - -#ifdef DEBUG - SDL_Color fg = { 255, 255, 255 }; - SDL_Color bg = { 0, 0, 255 }; - gCons = new Console("ARIAL.TTF", 12, fg, bg); - //gCons = new Console("Tapestry.ttf", 16, fg, bg); -#endif // DEBUG - - - Control ctrl = Control(); - - ContextManager ConMan = ContextManager("level_arid_land.json"); - - Level* lvl = new Level(ren, &ctrl); - ConMan.LogContext(lvl, "level"); - //DiagnosticDraw* gDiagDraw = new DiagnosticDraw(ren, lvl->mCam); - - Loading* load = new Loading(ren); - ConMan.LogContext(load, "load"); - - ConMan.LoadContext("load"); - ConMan.ContextUpdate(); - SDL_RenderPresent(ren); - - ConMan.LoadContext("level"); - - //Mix_Chunk* dhaka = LoadSound("Dhaka.mp3"); - //Mix_Chunk* ftst = LoadSound("footstep.wav"); - - SDL_Event e; - - //if (Mix_PlayingMusic() == false) - //{ - //Mix_PlayMusic(dhaka, -1); - //Mix_Volume(1, 6); - //Mix_VolumeChunk(dhaka, 6); - //Mix_PlayChannel(1, dhaka, -1); - - //} - bool quit = false; - while (!quit) - { - int CycleStart = GetRealTimeMS(); - - SDL_RenderClear(ren); - - ctrl.ProcessKeyboard(); - - ConMan.ContextUpdate(); - - //PrintBTree(&TestTree); - -#ifdef DEBUG - gCons->DrawConsole(ren); //Console is currently causing crashes for unknown reasons. No changes made to console system; very confusing -#endif - - SDL_RenderPresent(ren); - - SDL_PollEvent(&e); - - if (e.type == SDL_QUIT) - { - quit = true; - } - - gTime->ProgressCycle(); - - int DeltaTime = (GetRealTimeMS() - CycleStart); - assert(DeltaTime >= 0); - - int DelayTime = MS_PER_FRAME - DeltaTime; - - if (DelayTime >= 0) - { - //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); - SDL_Delay(DelayTime); - } - else - { - //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); - } - } - - delete gCons; - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -}- \ No newline at end of file diff --git a/.svn/pristine/8e/8ea36d812f591b993980ae677fb0e6eaec7cf431.svn-base b/.svn/pristine/8e/8ea36d812f591b993980ae677fb0e6eaec7cf431.svn-base Binary files differ. diff --git a/.svn/pristine/8e/8ef2d5d36d8bb646d589629fbb9a2e9ef5e2ef3d.svn-base b/.svn/pristine/8e/8ef2d5d36d8bb646d589629fbb9a2e9ef5e2ef3d.svn-base Binary files differ. diff --git a/.svn/pristine/8e/8efd730379450dfdeb5260e32b91423139e5542b.svn-base b/.svn/pristine/8e/8efd730379450dfdeb5260e32b91423139e5542b.svn-base Binary files differ. diff --git a/.svn/pristine/8f/8f220a7bf5cdcdb15b7429f1c1caf3dd94b91638.svn-base b/.svn/pristine/8f/8f220a7bf5cdcdb15b7429f1c1caf3dd94b91638.svn-base Binary files differ. diff --git a/.svn/pristine/8f/8fa45c750390db5e4d472314df19e0e0e9ff40e5.svn-base b/.svn/pristine/8f/8fa45c750390db5e4d472314df19e0e0e9ff40e5.svn-base @@ -1,5 +0,0 @@ -{"employees":[ - {"firstName":"John", "lastName":"Doe"}, - {"firstName":"Anna", "lastName":"Smith"}, - {"firstName":"Peter", "lastName":"Jones"} -]} diff --git a/.svn/pristine/90/905c7c275895c3e18a39223f5fdb1a01c9ce0629.svn-base b/.svn/pristine/90/905c7c275895c3e18a39223f5fdb1a01c9ce0629.svn-base @@ -1,246 +0,0 @@ -#include "ActorCollision.h" - -bool SpatialMonitor::PartitionCells(int worldH, int worldW) -{ - int cellW = (worldW / CELLS_X); - int cellH = (worldH / CELLS_Y); - - for (int i = 0; i < CELLS_Y; i++) - { - for (int j = 0; j < CELLS_X; j++) - { - Cell new_cell; - new_cell.GetCellRect()->w = cellW; - new_cell.GetCellRect()->h = cellH; - new_cell.GetCellRect()->x = cellW * j; - new_cell.GetCellRect()->y = cellH * i; - - mCells[i*CELLS_X + j] = new_cell; - - } - } - return true; -} - -bool SpatialMonitor::LogActor(int id) -{ - //mActors[mActorCount] = &act; - //mActors.Insert(act.GetHandle(), &act); - //act.SetSpatID(mActorCount); - UpdateActorCell(id); - return true; -} - -bool SpatialMonitor::ClearActorCell(int id) -{ - if (GetActorCell(id) != -1) - { - mCells[GetActorCell(id)].GetActorTree()->Search(id)->Delete(); - return true; - } - return false; -} - - -int SpatialMonitor::UpdateActorCell(int id) -{ - Actor* act = (mAHM->GetActorAddress(id)); - for (int i = 0; i < CELL_COUNT; i++) - { - if (DetectCenterPointIntersect( mCells[i].GetCellRect(), act->GetPosition() ) ) - { - //gCons->ConsPrintf("Actor entering cell %i\n", i); - - if (i != ((Collider*)(act))->GetSpatCell()) //not sure about all this casting, might be causing troubles - { - mCells[i].GetActorTree()->Insert(id, NULL); - ClearActorCell(id); - ((Collider*)(act))->SetSpatCell(i); - } - - return i; - } - } - gCons->ConsPrintf("Could not find Actor cell\n"); - return -1; -} - -int SpatialMonitor::GetAdjacentCells(int cellnum, Cell* cells[9]) -{ - cells[0] = GetCell((cellnum - CELLS_X - 1)); - cells[1] = GetCell((cellnum - CELLS_X)); - cells[2] = GetCell((cellnum - CELLS_X + 1)); - - cells[3] = GetCell((cellnum - 1)); - cells[4] = GetCell((cellnum)); - cells[5] = GetCell((cellnum + 1)); - - cells[6] = GetCell((cellnum + CELLS_X - 1)); - cells[7] = GetCell((cellnum + CELLS_X)); - cells[8] = GetCell((cellnum + CELLS_X + 1)); - - return 0; -} - -bool SpatialMonitor::DetectActorCollision(int id1, int id2) -{ - if (id1 != id2) - { - //gDiagDraw->LogDiagRect(*mActors[id2]->GetPosition()); - return DetectRectIntersect(mAHM->GetActorAddress(id1)->GetPosition(), mAHM->GetActorAddress(id2)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::DetectRectSensors(SDL_Rect* sensor, int DetectorID, int foreignID) -{ - if (DetectorID != foreignID) - { - //gDiagDraw->LogDiagRect(*sensor); - //gDiagDraw->LogDiagRect(*mActors[foreignID]->GetPosition()); - return DetectRectIntersect(sensor, mAHM->GetActorAddress(foreignID)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::HandleCollisions(int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectActorCollision(CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(ACTOR_COLLISION, ActorTreeArray[j]->GetItem())); - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - - return true; -} - -bool SpatialMonitor::HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - Node* debugtool = ActorTreeArray[j]; - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(SENSOR_COLLISION, SeType, ActorTreeArray[j]->GetItem())); //Used to pass actor* now passed ID number. receiver functions need to be updated - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return true; -} - -bool SpatialMonitor::TestBlockers(SDL_Rect* sensor, int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = ((AdjecentCellIndex[i]->GetActorTree())->Dump()); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - if (mAHM->GetActorAddress(ActorTreeArray[j]->GetItem())->IsBlocking() == true) - { - return true; - } - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return false; -} - -bool SpatialMonitor::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case MOVED_THIS_FRAME: - UpdateActorCell(eve.GetEventData()->i); - HandleCollisions(eve.GetEventData()->i); - return true; - break; - case CHECK_RECT_SENSOR: - HandleRectSensors(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id, eve.GetEventData()->sd.st); - return true; - break; - case CHECK_BLOCKERS: - return TestBlockers(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id); - break; - default: - gCons->ConsPrintf("Spatial Monitor Received Invalid Event Type\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/90/90bf76427ef6d1f7c5e2d539896737ba90a9ef57.svn-base b/.svn/pristine/90/90bf76427ef6d1f7c5e2d539896737ba90a9ef57.svn-base Binary files differ. diff --git a/.svn/pristine/91/91071f56c5c9b8aab5dec0c56d2de8b125785ff8.svn-base b/.svn/pristine/91/91071f56c5c9b8aab5dec0c56d2de8b125785ff8.svn-base Binary files differ. diff --git a/.svn/pristine/91/9161e113f1b3c924156c2e748baf45ff2c846c6c.svn-base b/.svn/pristine/91/9161e113f1b3c924156c2e748baf45ff2c846c6c.svn-base Binary files differ. diff --git a/.svn/pristine/92/9283758ed7f4b8f0873b5582e4e9c3210edf01bb.svn-base b/.svn/pristine/92/9283758ed7f4b8f0873b5582e4e9c3210edf01bb.svn-base @@ -1,39 +0,0 @@ -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.idb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\console.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\context.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\diagnosticdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\dialogue.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\emitter.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\event.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\hud.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\input.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\layer.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\level.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\loading.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\main.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\miscdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\particle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\physics.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sequence.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sound.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\symbol.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\terrain.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\utils.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actor.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actorcollision.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actorhandle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animation.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animationgraph.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\binarytree.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\camera.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\cjson.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.ilk -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.exe -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.write.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.write.1.tlog diff --git a/.svn/pristine/93/9306142f50e6ea12b57b54ca481f9385f026693e.svn-base b/.svn/pristine/93/9306142f50e6ea12b57b54ca481f9385f026693e.svn-base Binary files differ. diff --git a/.svn/pristine/93/932475c1b777bc952807605ef503b865ab52e8f8.svn-base b/.svn/pristine/93/932475c1b777bc952807605ef503b865ab52e8f8.svn-base Binary files differ. diff --git a/.svn/pristine/93/9374246f56835bbd670f9d0876a968d1e50b250d.svn-base b/.svn/pristine/93/9374246f56835bbd670f9d0876a968d1e50b250d.svn-base @@ -1,38 +0,0 @@ -#ifndef INPUT_H -#define INPUT_H - -#include "Utils.h" -#include "Event.h" - -struct KeyboardState -{ - bool mQ; - bool mW; - bool mE; - bool mLEFT; - bool mRIGHT; - bool mUP; - bool mDOWN; -}; - -class Control -{ -public: - - Control(); - - bool SendKeyEvent(int KeyID, int KeyState); - - void ProcessKeyboard(); - - EventFeed mFeed; - -protected: - - //KeyboardState mkeys; - - const Uint8* mKeyState; - Uint8 mLastState[512]; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/94/9400f487ca8f8dffef226839e7515bb1d5de29bc.svn-base b/.svn/pristine/94/9400f487ca8f8dffef226839e7515bb1d5de29bc.svn-base Binary files differ. diff --git a/.svn/pristine/94/942b033e49c6e743df0b3adc59ae02c7ad5698bd.svn-base b/.svn/pristine/94/942b033e49c6e743df0b3adc59ae02c7ad5698bd.svn-base Binary files differ. diff --git a/.svn/pristine/94/9445e7b1d112c113e5a3b409a0ec5585b08a5364.svn-base b/.svn/pristine/94/9445e7b1d112c113e5a3b409a0ec5585b08a5364.svn-base Binary files differ. diff --git a/.svn/pristine/94/94af5991eeba2aed0b356248a50b152dc9418dee.svn-base b/.svn/pristine/94/94af5991eeba2aed0b356248a50b152dc9418dee.svn-base Binary files differ. diff --git a/.svn/pristine/95/95e1efddcd5c6cb957c55522f4a07eff43000fb0.svn-base b/.svn/pristine/95/95e1efddcd5c6cb957c55522f4a07eff43000fb0.svn-base @@ -1,182 +0,0 @@ -#include "Camera.h" - - -Camera::Camera(int H, int W, int X, int Y, int lvlH, int lvlW) -{ - mView.h = H; - mView.w = W; - - mView.x = X; - mView.y = Y; - - mlvlH = lvlH; - mlvlW = lvlW; -} - -bool Camera::LogBlocker(SDL_Rect* blocker) -{ - mBlockers.push_back(blocker); - return false; -} - -SDL_Rect Camera::SmartAdjust(SDL_Rect* blocker) -{ - if (blocker->h == 1) - { - int bisect = (int)((float)mView.h / 2) + mView.y; - if (blocker->y >= bisect) - { - //slide camera up - mView.y = blocker->y - mView.h; - } - else if (blocker->y < bisect) - { - //slide camera down - mView.y = blocker->y; - } - else - { - //this should never happen - } - } - else if (blocker->w == 1) - { - int bisect = (int)((float)mView.w / 2) + mView.x; - if (blocker->x >= bisect) - { - mView.x = blocker->x - mView.w; - } - else if (blocker->x < bisect) - { - mView.x = blocker->x; - } - else - { - //this should never happen - } - } - else - { - gCons->ConsPrintf("Camera logged invalid blocker neither h nor w == 1\n"); - } - return mView; -} - -SDL_Rect Camera::SetCameraPos(SDL_Renderer* ren, int Xpos, int Ypos) -{ - int wrldX = Xpos; - int wrldY = Ypos; - - if (Xpos < 0) - { - wrldX = 0; - } - else if ((Xpos + mView.w) > mlvlW) - { - wrldX = mlvlW - mView.w; - } - - if (Ypos < 0) - { - wrldY = 0; - } - else if ((Ypos + mView.h) > mlvlH) - { - wrldY = mlvlH - mView.h; - } - - mView.x = wrldX; - mView.y = wrldY; - - for (int i = 0; i < (int)mBlockers.size(); i++) - { - if (DetectRectIntersect(&mView, mBlockers.at(i))) - { - //gCons->ConsPrintf("Camera is hitting blocker\n"); - SmartAdjust(mBlockers.at(i)); - } - } - - - //gCons->ConsPrintf("cam bounds: x= %i - %i, y= %i - %i \n", view.x, (view.x + view.w), view.y, (view.y + view.h)); - - return mView; -} - -SDL_Rect Camera::SetCameraPosUnbounded(SDL_Renderer* ren, int Xpos, int Ypos) -{ -// wrldX = Xpos; - //wrldY = Ypos; - - mView.x = Xpos; - mView.y = Ypos; - - //gCons->ConsPrintf("cam bounds: x= %i - %i, y= %i - %i \n", view.x, (view.x + view.w), view.y, (view.y + view.h)); - - return mView; -} - -bool Camera::ArrowKeyMove(SDL_Renderer* ren, int xspd, int yspd, SDL_Event* eve) -{ - if (eve->key.type == SDL_KEYUP) return 0; - - switch (eve->key.keysym.sym) - { - case SDLK_DOWN: - mView.y = mView.y + yspd; - break; - case SDLK_UP: - mView.y = mView.y + -yspd; - break; - case SDLK_LEFT: - mView.x = mView.x + -xspd; - break; - case SDLK_RIGHT: - mView.x = mView.x + xspd; - break; - } - SetCameraPos(ren, mView.x, mView.y); - return 0; -} - -bool Camera::ActorFollow(SDL_Renderer* ren, int Xbound, int Ybound) -{ - if (mFollowTarget->GetX() < (mView.x + Xbound)) - { - mView.x = (mFollowTarget->GetX() - Xbound); - //gCons->ConsPrintf("LEFT\n"); - } - if (mFollowTarget->GetX() + mFollowTarget->GetWidth() > ((mView.x + mView.w) - Xbound)) - { - mView.x = mFollowTarget->GetX() + mFollowTarget->GetWidth() - mView.w + Xbound; - //gCons->ConsPrintf("RIGHT\n"); - } - - if (mFollowTarget->GetY() < (mView.y + Ybound)) - { - mView.y = (mFollowTarget->GetY() - Ybound); - //gCons->ConsPrintf("LEFT\n"); - } - if (mFollowTarget->GetY() + mFollowTarget->GetHeight() > ((mView.y + mView.h) - Ybound)) - { - mView.y = mFollowTarget->GetY() + mFollowTarget->GetHeight() - mView.h + Ybound; - //gCons->ConsPrintf("RIGHT\n"); - } - SetCameraPos(ren, mView.x, mView.y); - return 0; -} - -bool Camera::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case CAMERA_TARGET: - SetFollowTarget((Actor*)eve.GetEventData()->p); - return true; - break; - default: - gCons->ConsPrintf("Camera Received Unrecognized Event\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/96/964dddeaecf6d37b0fa4f85bb68ac6c1ffcc5001.svn-base b/.svn/pristine/96/964dddeaecf6d37b0fa4f85bb68ac6c1ffcc5001.svn-base Binary files differ. diff --git a/.svn/pristine/97/970e01c27fd4b3f25a3ee9eac2be689e7666f400.svn-base b/.svn/pristine/97/970e01c27fd4b3f25a3ee9eac2be689e7666f400.svn-base @@ -1,137 +0,0 @@ -#include "Animation.h" - -//FramesetFunctions -FrameSet::FrameSet(SDL_Renderer* ren, const char* SourcePath, int FrameCount, int FRate, int frameH, int frameW) -{ - memset(mFrames, 0, 256); -// gCons->ConsPrintf("image source path: %s\n", SourcePath); - mframesource = SDL_CreateTextureFromSurface(ren, LoadSurfaceBMP(SourcePath)); - mFrameCount = (FrameCount - 1); - mDefaultFrameRate = FRate; - - SDL_Rect framerect; - framerect.h = frameH; - framerect.w = frameW; - framerect.x = 0; - framerect.y = 0; - - int i = 0; - while (i <= mFrameCount) - { - - framerect.x = ((i)*frameW); - - mFrames[i] = framerect; - - i++; - } -} - -//animation Functions -animation::animation(FrameSet* set, int ID, bool flip) : mID(ID) -{ - mFrameSet = set; - mCurrentFrameNumber = 0; - mFrameRate = mFrameSet->GetDefaultFrameRate(); - mTimer = 0; - mIsFlippable = flip; - mIsPlaying = false; - mCurrentFrame.FrameSource = mFrameSet->GetFrameSource(); - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); -} - -Frame animation::GetCurrentFrame() -{ - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); - if (mIsPlaying == true) - { - if ((gTime->GetCurrentMS() - mTimer) >= mFrameRate) - { - if (mCurrentFrameNumber == mFrameSet->GetNumberOfFrames()) - { - if (mFlags == ONCE) - { - Stop(); - mFeed.EventProcess(Event(ANIM_COMPLETE, mID)); - //gCons->ConsPrintf("Animation Complete\n"); - } - - mCurrentFrameNumber = 0; - } - else - { - mCurrentFrameNumber = (mCurrentFrameNumber + 1); - } - mTimer = gTime->GetCurrentMS(); - } - } - return mCurrentFrame; -} - -//AnimDataPack Functions -AnimDataPack::AnimDataPack(int AnimCount, FrameSet* AnimData, int* Index) -{ - mAnimData = AnimData; - mIndexer = Index; - mAnimCount = AnimCount; -} - -FrameSet* AnimDataPack::GetAnimationData(int AnimationID) -{ - for (int i = 0; i < mAnimCount; i++) - { - //if (AnimationID == 130) { gCons->ConsPrintf("index: %i, item: %i\n", i, mIndexer[i]); } - if (mIndexer[i] == AnimationID) - { - return &mAnimData[i]; - } - } - gCons->ConsPrintf("Invalid Animation ID; Could not find Animation Data\n"); - return NULL; -} - -//AnimPack Functions -AnimPack::AnimPack(AnimDataPack* data) -{ - mData = data; - mLastIndex = 0; - - mAnims = new animation[mData->GetAnimCount()]; - for (int i = 0; i < mData->GetAnimCount(); i++) - { - mAnims[i] = animation( mData->GetAnimationData(mData->GetIndex(i)), mData->GetIndex(i) ); //make sure mData->GetIndex(i) returns correct ID - } -} - -animation* AnimPack::ActivateAnimation(int AnimationID, int flags) -{ - for (int i = 0; i < mData->GetAnimCount(); i++) - { - if (mData->GetIndex(i) == AnimationID) - { - if (mLastIndex != i) - { - mAnims[mLastIndex].Stop(); - mLastIndex = i; - } - - mAnims[i].Play(flags); - return &mAnims[i]; - } - } - gCons->ConsPrintf("Invalid Animation ID; Could not find Animation\n"); - return NULL; - -} - -bool FrameCompare(Frame f1, Frame f2) -{ - if (f1.FrameSource == f2.FrameSource) - { - if (f1.FrameRect.x == f2.FrameRect.x) - { - return true; - } - } - return false; -}- \ No newline at end of file diff --git a/.svn/pristine/97/97a637a7d2a06cf53738ea2a7044cfc691f045ac.svn-base b/.svn/pristine/97/97a637a7d2a06cf53738ea2a7044cfc691f045ac.svn-base Binary files differ. diff --git a/.svn/pristine/97/97af8dc05e77be4af2d22d3f4f4b8b9a885e0236.svn-base b/.svn/pristine/97/97af8dc05e77be4af2d22d3f4f4b8b9a885e0236.svn-base @@ -1,198 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup> - <Filter Include="Source Files"> - <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> - <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> - </Filter> - <Filter Include="Header Files"> - <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> - <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions> - </Filter> - <Filter Include="Resource Files"> - <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> - <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> - </Filter> - </ItemGroup> - <ItemGroup> - <ClCompile Include="Animation.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Camera.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Console.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="MiscDraw.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Terrain.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Utils.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Actor.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Event.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Physics.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Input.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="DiagnosticDraw.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="ActorCollision.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Main.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Level.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="cJSON.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="symbol.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Particle.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="sound.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="HUD.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Sequence.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Context.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Loading.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="AnimationGraph.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Layer.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Emitter.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Dialogue.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="ActorHandle.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="BinaryTree.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="bones.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Mapper.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ClInclude Include="Actor.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Animation.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Camera.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Console.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="MiscDraw.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Terrain.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Utils.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Event.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Physics.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Input.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="ActorCollision.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="DiagnosticDraw.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Level.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="cJSON.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="symbol.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Particle.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="sound.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="HUD.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Sequence.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Context.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Loading.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="AnimationGraph.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Layer.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Emitter.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Dialogue.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="ActorHandle.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="BinaryTree.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="bones.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="Mapper.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> -</Project>- \ No newline at end of file diff --git a/.svn/pristine/97/97f1610c40b54eb1f56be8215a1630a41cf3d80d.svn-base b/.svn/pristine/97/97f1610c40b54eb1f56be8215a1630a41cf3d80d.svn-base Binary files differ. diff --git a/.svn/pristine/98/98c37704a7207f9de9f09698d7c3f81ab88450cf.svn-base b/.svn/pristine/98/98c37704a7207f9de9f09698d7c3f81ab88450cf.svn-base Binary files differ. diff --git a/.svn/pristine/99/994015a13ad09a9bd17b812cc7ec3803594f4a0f.svn-base b/.svn/pristine/99/994015a13ad09a9bd17b812cc7ec3803594f4a0f.svn-base Binary files differ. diff --git a/.svn/pristine/99/994c75b0801edc6645af68423b3e7a4a8ad43779.svn-base b/.svn/pristine/99/994c75b0801edc6645af68423b3e7a4a8ad43779.svn-base @@ -1,1030 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - IIS configuration sections. - - For schema documentation, see - %IIS_BIN%\config\schema\IIS_schema.xml. - - Please make a backup of this file before making any changes to it. - - NOTE: The following environment variables are available to be used - within this file and are understood by the IIS Express. - - %IIS_USER_HOME% - The IIS Express home directory for the user - %IIS_SITES_HOME% - The default home directory for sites - %IIS_BIN% - The location of the IIS Express binaries - %SYSTEMDRIVE% - The drive letter of %IIS_BIN% - ---> - -<configuration> - - <!-- - - The <configSections> section controls the registration of sections. - Section is the basic unit of deployment, locking, searching and - containment for configuration settings. - - Every section belongs to one section group. - A section group is a container of logically-related sections. - - Sections cannot be nested. - Section groups may be nested. - - <section - name="" [Required, Collection Key] [XML name of the section] - allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set] - overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode] - allowLocation="true" [true|false] [Allowed in location tags] - /> - - The recommended way to unlock sections is by using a location tag: - <location path="Default Web Site" overrideMode="Allow"> - <system.webServer> - <asp /> - </system.webServer> - </location> - - --> - <configSections> - <sectionGroup name="system.applicationHost"> - <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - </sectionGroup> - - <sectionGroup name="system.webServer"> - <section name="asp" overrideModeDefault="Deny" /> - <section name="caching" overrideModeDefault="Allow" /> - <section name="cgi" overrideModeDefault="Deny" /> - <section name="defaultDocument" overrideModeDefault="Allow" /> - <section name="directoryBrowse" overrideModeDefault="Allow" /> - <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="handlers" overrideModeDefault="Deny" /> - <section name="httpCompression" overrideModeDefault="Allow" /> - <section name="httpErrors" overrideModeDefault="Allow" /> - <section name="httpLogging" overrideModeDefault="Deny" /> - <section name="httpProtocol" overrideModeDefault="Allow" /> - <section name="httpRedirect" overrideModeDefault="Allow" /> - <section name="httpTracing" overrideModeDefault="Deny" /> - <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /> - <section name="odbcLogging" overrideModeDefault="Deny" /> - <sectionGroup name="security"> - <section name="access" overrideModeDefault="Deny" /> - <section name="applicationDependencies" overrideModeDefault="Deny" /> - <sectionGroup name="authentication"> - <section name="anonymousAuthentication" overrideModeDefault="Deny" /> - <section name="basicAuthentication" overrideModeDefault="Deny" /> - <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="digestAuthentication" overrideModeDefault="Deny" /> - <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="windowsAuthentication" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="authorization" overrideModeDefault="Allow" /> - <section name="ipSecurity" overrideModeDefault="Deny" /> - <section name="dynamicIpSecurity" overrideModeDefault="Deny" /> - <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="requestFiltering" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="serverRuntime" overrideModeDefault="Deny" /> - <section name="serverSideInclude" overrideModeDefault="Deny" /> - <section name="staticContent" overrideModeDefault="Allow" /> - <sectionGroup name="tracing"> - <section name="traceFailedRequests" overrideModeDefault="Allow" /> - <section name="traceProviderDefinitions" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="urlCompression" overrideModeDefault="Allow" /> - <section name="validation" overrideModeDefault="Allow" /> - <sectionGroup name="webdav"> - <section name="globalSettings" overrideModeDefault="Deny" /> - <section name="authoring" overrideModeDefault="Deny" /> - <section name="authoringRules" overrideModeDefault="Deny" /> - </sectionGroup> - <sectionGroup name="rewrite"> - <section name="allowedServerVariables" overrideModeDefault="Deny" /> - <section name="rules" overrideModeDefault="Allow" /> - <section name="outboundRules" overrideModeDefault="Allow" /> - <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" /> - <section name="providers" overrideModeDefault="Allow" /> - <section name="rewriteMaps" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="webSocket" overrideModeDefault="Deny" /> - </sectionGroup> - </configSections> - - <configProtectedData> - <providers> - <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> - <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAAKmFQvWHDEETRz8l2bjZlRxIkwcqTFaCUnCLljn3Q1OkesrhEO9YyLyx4bUhsj1/DyShAv7OAFFhXlrlomaornnk5PLeyO4lIXxaiT33yOFUUgxDx4GSaygkqghVV0tO5yQ/XguUBp2juMfZyztnsNa4pLcz7ZNZQ6p4yn9hxwNs=" /> - <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA4WoiRJ8KHwzAG8AgejPxEOO4/2Vhkolbwo/8gZeNdUDSD36m55hWv4uC9tr/MlKdnwRLL0NhT50Gccyftqz5xTZ0dg5FtvQhTw/he1NwexTKbV+I4Zrd+sZUqHZTsr7JiEr6OHGXL70qoISW5G2m9U8wKT3caPiDPNj2aAaYPLo=" /> - </providers> - </configProtectedData> - - <system.applicationHost> - - <applicationPools> - <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /> - <applicationPoolDefaults managedRuntimeLoader="v4.0" > - <processModel/> - </applicationPoolDefaults> - </applicationPools> - - <!-- - - The <listenerAdapters> section defines the protocols with which the - Windows Process Activation Service (WAS) binds. - - --> - <listenerAdapters> - <add name="http" /> - </listenerAdapters> - - <sites> - <site name="WebSite1" id="1" serverAutoStart="true"> - <application path="/"> - <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> - </application> - <bindings> - <binding protocol="http" bindingInformation=":8080:localhost" /> - </bindings> - </site> - <siteDefaults> - <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> - <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> - </siteDefaults> - <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> - <virtualDirectoryDefaults allowSubDirConfig="true" /> - </sites> - - <webLimits /> - - </system.applicationHost> - - <system.webServer> - - <serverRuntime /> - - <asp scriptErrorSentToBrowser="true"> - <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> - <limits /> - </asp> - - <caching enabled="true" enableKernelCache="true"> - </caching> - - <cgi /> - - <defaultDocument enabled="true"> - <files> - <add value="Default.htm" /> - <add value="Default.asp" /> - <add value="index.htm" /> - <add value="index.html" /> - <add value="iisstart.htm" /> - <add value="default.aspx" /> - </files> - </defaultDocument> - - <directoryBrowse enabled="false" /> - - <fastCgi /> - - <!-- - - The <globalModules> section defines all native-code modules. - To enable a module, specify it in the <modules> section. - - --> - <globalModules> - <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" /> - <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" /> -<!-- <add name="FileCacheModule" image="%IIS_BIN%\cachfile.dll" /> --> - <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" /> -<!-- <add name="HttpCacheModule" image="%IIS_BIN%\cachhttp.dll" /> --> - <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" /> - <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" /> - <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" /> - <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" /> - <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" /> - <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" /> - <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" /> - <add name="StaticFileModule" image="%IIS_BIN%\static.dll" /> - <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" /> - <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" /> - <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" /> - <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" /> - <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" /> -<!-- <add name="DigestAuthenticationModule" image="%IIS_BIN%\authmd5.dll" /> --> - <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" /> - <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" /> - <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" /> - <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" /> - <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" /> - <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" /> -<!-- <add name="TracingModule" image="%IIS_BIN%\iisetw.dll" /> --> - <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" /> - <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" /> - <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" /> - <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" /> - <add name="CgiModule" image="%IIS_BIN%\cgi.dll" /> - <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" /> -<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> --> - <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" /> - <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" /> - <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" /> - <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" /> - <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" /> - <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" /> - <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" /> - <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" /> - <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" /> - </globalModules> - - <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files"> - <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> - <dynamicTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </dynamicTypes> - <staticTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="image/svg+xml" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </staticTypes> - </httpCompression> - - <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> - <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> - <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> - <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" /> - <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" /> - <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" /> - <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" /> - <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" /> - <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> - <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> - </httpErrors> - - <httpLogging dontLog="false" /> - - <httpProtocol> - <customHeaders> - <clear /> - <add name="X-Powered-By" value="ASP.NET" /> - </customHeaders> - <redirectHeaders> - <clear /> - </redirectHeaders> - </httpProtocol> - - <httpRedirect enabled="false" /> - - <httpTracing> - </httpTracing> - - <isapiFilters> - <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" /> - <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> - <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" /> - </isapiFilters> - - <odbcLogging /> - - <security> - - <access sslFlags="None" /> - - <applicationDependencies> - <application name="Active Server Pages" groupId="ASP" /> - </applicationDependencies> - - <authentication> - - <anonymousAuthentication enabled="true" userName="" /> - - <basicAuthentication enabled="false" /> - - <clientCertificateMappingAuthentication enabled="false" /> - - <digestAuthentication enabled="false" /> - - <iisClientCertificateMappingAuthentication enabled="false"> - </iisClientCertificateMappingAuthentication> - - <windowsAuthentication enabled="false"> - <providers> - <add value="Negotiate" /> - <add value="NTLM" /> - </providers> - </windowsAuthentication> - - </authentication> - - <authorization> - <add accessType="Allow" users="*" /> - </authorization> - - <ipSecurity allowUnlisted="true" /> - - <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> - <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - </isapiCgiRestriction> - - <requestFiltering> - <fileExtensions allowUnlisted="true" applyToWebDAV="true"> - <add fileExtension=".asa" allowed="false" /> - <add fileExtension=".asax" allowed="false" /> - <add fileExtension=".ascx" allowed="false" /> - <add fileExtension=".master" allowed="false" /> - <add fileExtension=".skin" allowed="false" /> - <add fileExtension=".browser" allowed="false" /> - <add fileExtension=".sitemap" allowed="false" /> - <add fileExtension=".config" allowed="false" /> - <add fileExtension=".cs" allowed="false" /> - <add fileExtension=".csproj" allowed="false" /> - <add fileExtension=".vb" allowed="false" /> - <add fileExtension=".vbproj" allowed="false" /> - <add fileExtension=".webinfo" allowed="false" /> - <add fileExtension=".licx" allowed="false" /> - <add fileExtension=".resx" allowed="false" /> - <add fileExtension=".resources" allowed="false" /> - <add fileExtension=".mdb" allowed="false" /> - <add fileExtension=".vjsproj" allowed="false" /> - <add fileExtension=".java" allowed="false" /> - <add fileExtension=".jsl" allowed="false" /> - <add fileExtension=".ldb" allowed="false" /> - <add fileExtension=".dsdgm" allowed="false" /> - <add fileExtension=".ssdgm" allowed="false" /> - <add fileExtension=".lsad" allowed="false" /> - <add fileExtension=".ssmap" allowed="false" /> - <add fileExtension=".cd" allowed="false" /> - <add fileExtension=".dsprototype" allowed="false" /> - <add fileExtension=".lsaprototype" allowed="false" /> - <add fileExtension=".sdm" allowed="false" /> - <add fileExtension=".sdmDocument" allowed="false" /> - <add fileExtension=".mdf" allowed="false" /> - <add fileExtension=".ldf" allowed="false" /> - <add fileExtension=".ad" allowed="false" /> - <add fileExtension=".dd" allowed="false" /> - <add fileExtension=".ldd" allowed="false" /> - <add fileExtension=".sd" allowed="false" /> - <add fileExtension=".adprototype" allowed="false" /> - <add fileExtension=".lddprototype" allowed="false" /> - <add fileExtension=".exclude" allowed="false" /> - <add fileExtension=".refresh" allowed="false" /> - <add fileExtension=".compiled" allowed="false" /> - <add fileExtension=".msgx" allowed="false" /> - <add fileExtension=".vsdisco" allowed="false" /> - <add fileExtension=".rules" allowed="false" /> - </fileExtensions> - <verbs allowUnlisted="true" applyToWebDAV="true" /> - <hiddenSegments applyToWebDAV="true"> - <add segment="web.config" /> - <add segment="bin" /> - <add segment="App_code" /> - <add segment="App_GlobalResources" /> - <add segment="App_LocalResources" /> - <add segment="App_WebReferences" /> - <add segment="App_Data" /> - <add segment="App_Browsers" /> - </hiddenSegments> - </requestFiltering> - - </security> - - <serverSideInclude ssiExecDisable="false" /> - - <staticContent lockAttributes="isDocFooterFileName"> - <mimeMap fileExtension=".323" mimeType="text/h323" /> - <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".aac" mimeType="audio/aac" /> - <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".aca" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".accdb" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accde" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accdt" mimeType="application/msaccess" /> - <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" /> - <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".afm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ai" mimeType="application/postscript" /> - <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" /> - <mimeMap fileExtension=".aifc" mimeType="audio/aiff" /> - <mimeMap fileExtension=".aiff" mimeType="audio/aiff" /> - <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" /> - <mimeMap fileExtension=".application" mimeType="application/x-ms-application" /> - <mimeMap fileExtension=".art" mimeType="image/x-jg" /> - <mimeMap fileExtension=".asd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asm" mimeType="text/plain" /> - <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".atom" mimeType="application/atom+xml" /> - <mimeMap fileExtension=".au" mimeType="audio/basic" /> - <mimeMap fileExtension=".avi" mimeType="video/msvideo" /> - <mimeMap fileExtension=".axs" mimeType="application/olescript" /> - <mimeMap fileExtension=".bas" mimeType="text/plain" /> - <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" /> - <mimeMap fileExtension=".bin" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".bmp" mimeType="image/bmp" /> - <mimeMap fileExtension=".c" mimeType="text/plain" /> - <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" /> - <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" /> - <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" /> - <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" /> - <mimeMap fileExtension=".chm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".class" mimeType="application/x-java-applet" /> - <mimeMap fileExtension=".clp" mimeType="application/x-msclip" /> - <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" /> - <mimeMap fileExtension=".cnf" mimeType="text/plain" /> - <mimeMap fileExtension=".cod" mimeType="image/cis-cod" /> - <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" /> - <mimeMap fileExtension=".cpp" mimeType="text/plain" /> - <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" /> - <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" /> - <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".csh" mimeType="application/x-csh" /> - <mimeMap fileExtension=".css" mimeType="text/css" /> - <mimeMap fileExtension=".csv" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".cur" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dcr" mimeType="application/x-director" /> - <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".dib" mimeType="image/bmp" /> - <mimeMap fileExtension=".dir" mimeType="application/x-director" /> - <mimeMap fileExtension=".disco" mimeType="text/xml" /> - <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" /> - <mimeMap fileExtension=".dll.config" mimeType="text/xml" /> - <mimeMap fileExtension=".dlm" mimeType="text/dlm" /> - <mimeMap fileExtension=".doc" mimeType="application/msword" /> - <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" /> - <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /> - <mimeMap fileExtension=".dot" mimeType="application/msword" /> - <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" /> - <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" /> - <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dtd" mimeType="text/xml" /> - <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" /> - <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" /> - <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" /> - <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dxr" mimeType="application/x-director" /> - <mimeMap fileExtension=".eml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".emz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> - <mimeMap fileExtension=".eps" mimeType="application/postscript" /> - <mimeMap fileExtension=".etx" mimeType="text/x-setext" /> - <mimeMap fileExtension=".evy" mimeType="application/envoy" /> - <mimeMap fileExtension=".exe" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".exe.config" mimeType="text/xml" /> - <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" /> - <mimeMap fileExtension=".fif" mimeType="application/fractals" /> - <mimeMap fileExtension=".fla" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".flv" mimeType="video/x-flv" /> - <mimeMap fileExtension=".gif" mimeType="image/gif" /> - <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" /> - <mimeMap fileExtension=".gz" mimeType="application/x-gzip" /> - <mimeMap fileExtension=".h" mimeType="text/plain" /> - <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" /> - <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" /> - <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" /> - <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hlp" mimeType="application/winhlp" /> - <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" /> - <mimeMap fileExtension=".hta" mimeType="application/hta" /> - <mimeMap fileExtension=".htc" mimeType="text/x-component" /> - <mimeMap fileExtension=".htm" mimeType="text/html" /> - <mimeMap fileExtension=".html" mimeType="text/html" /> - <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" /> - <mimeMap fileExtension=".hxt" mimeType="text/html" /> - <mimeMap fileExtension=".ico" mimeType="image/x-icon" /> - <mimeMap fileExtension=".ics" mimeType="text/calendar" /> - <mimeMap fileExtension=".ief" mimeType="image/ief" /> - <mimeMap fileExtension=".iii" mimeType="application/x-iphone" /> - <mimeMap fileExtension=".inf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" /> - <mimeMap fileExtension=".jar" mimeType="application/java-archive" /> - <mimeMap fileExtension=".java" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" /> - <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jpe" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".js" mimeType="application/javascript" /> - <mimeMap fileExtension=".json" mimeType="application/json" /> - <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" /> - <mimeMap fileExtension=".jsx" mimeType="text/jscript" /> - <mimeMap fileExtension=".latex" mimeType="application/x-latex" /> - <mimeMap fileExtension=".less" mimeType="text/css" /> - <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" /> - <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m1v" mimeType="video/mpeg" /> - <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" /> - <mimeMap fileExtension=".m4a" mimeType="audio/mp4" /> - <mimeMap fileExtension=".m4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".man" mimeType="application/x-troff-man" /> - <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" /> - <mimeMap fileExtension=".map" mimeType="text/plain" /> - <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" /> - <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".me" mimeType="application/x-troff-me" /> - <mimeMap fileExtension=".mht" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mid" mimeType="audio/mid" /> - <mimeMap fileExtension=".midi" mimeType="audio/mid" /> - <mimeMap fileExtension=".mix" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" /> - <mimeMap fileExtension=".mno" mimeType="text/xml" /> - <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" /> - <mimeMap fileExtension=".mov" mimeType="video/quicktime" /> - <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" /> - <mimeMap fileExtension=".mp2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" /> - <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> - <mimeMap fileExtension=".mp4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".mpa" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpe" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" /> - <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" /> - <mimeMap fileExtension=".msi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mso" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" /> - <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" /> - <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".nws" mimeType="message/rfc822" /> - <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".oda" mimeType="application/oda" /> - <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" /> - <mimeMap fileExtension=".ods" mimeType="application/oleobject" /> - <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> - <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> - <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> - <mimeMap fileExtension=".one" mimeType="application/onenote" /> - <mimeMap fileExtension=".onea" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetmp" mimeType="application/onenote" /> - <mimeMap fileExtension=".onepkg" mimeType="application/onenote" /> - <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" /> - <mimeMap fileExtension=".otf" mimeType="font/otf" /> - <mimeMap fileExtension=".p10" mimeType="application/pkcs10" /> - <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" /> - <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" /> - <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" /> - <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pdf" mimeType="application/pdf" /> - <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" /> - <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" /> - <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".png" mimeType="image/png" /> - <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" /> - <mimeMap fileExtension=".pnz" mimeType="image/png" /> - <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" /> - <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" /> - <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" /> - <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" /> - <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" /> - <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" /> - <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" /> - <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" /> - <mimeMap fileExtension=".prf" mimeType="application/pics-rules" /> - <mimeMap fileExtension=".prm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".prx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ps" mimeType="application/postscript" /> - <mimeMap fileExtension=".psd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" /> - <mimeMap fileExtension=".qt" mimeType="video/quicktime" /> - <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" /> - <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".rar" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" /> - <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" /> - <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" /> - <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" /> - <mimeMap fileExtension=".rmi" mimeType="audio/mid" /> - <mimeMap fileExtension=".roff" mimeType="application/x-troff" /> - <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" /> - <mimeMap fileExtension=".rtf" mimeType="application/rtf" /> - <mimeMap fileExtension=".rtx" mimeType="text/richtext" /> - <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" /> - <mimeMap fileExtension=".sct" mimeType="text/scriptlet" /> - <mimeMap fileExtension=".sea" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" /> - <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" /> - <mimeMap fileExtension=".sgml" mimeType="text/sgml" /> - <mimeMap fileExtension=".sh" mimeType="application/x-sh" /> - <mimeMap fileExtension=".shar" mimeType="application/x-shar" /> - <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" /> - <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" /> - <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" /> - <mimeMap fileExtension=".smd" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".smx" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smz" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".snd" mimeType="audio/basic" /> - <mimeMap fileExtension=".snp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".spl" mimeType="application/futuresplash" /> - <mimeMap fileExtension=".spx" mimeType="audio/ogg" /> - <mimeMap fileExtension=".src" mimeType="application/x-wais-source" /> - <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" /> - <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" /> - <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" /> - <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" /> - <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" /> - <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" /> - <mimeMap fileExtension=".t" mimeType="application/x-troff" /> - <mimeMap fileExtension=".tar" mimeType="application/x-tar" /> - <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" /> - <mimeMap fileExtension=".tex" mimeType="application/x-tex" /> - <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" /> - <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" /> - <mimeMap fileExtension=".thn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tif" mimeType="image/tiff" /> - <mimeMap fileExtension=".tiff" mimeType="image/tiff" /> - <mimeMap fileExtension=".toc" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tr" mimeType="application/x-troff" /> - <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" /> - <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" /> - <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".txt" mimeType="text/plain" /> - <mimeMap fileExtension=".u32" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".uls" mimeType="text/iuls" /> - <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" /> - <mimeMap fileExtension=".vbs" mimeType="text/vbscript" /> - <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" /> - <mimeMap fileExtension=".vcs" mimeType="text/plain" /> - <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" /> - <mimeMap fileExtension=".vml" mimeType="text/xml" /> - <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" /> - <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".wav" mimeType="audio/wav" /> - <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" /> - <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" /> - <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".webm" mimeType="video/webm" /> - <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" /> - <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" /> - <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" /> - <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" /> - <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" /> - <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" /> - <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" /> - <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" /> - <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" /> - <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" /> - <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" /> - <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" /> - <mimeMap fileExtension=".woff" mimeType="font/x-woff" /> - <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> - <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" /> - <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wsdl" mimeType="text/xml" /> - <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" /> - <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" /> - <mimeMap fileExtension=".x" mimeType="application/directx" /> - <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" /> - <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" /> - <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" /> - <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" /> - <mimeMap fileExtension=".xdr" mimeType="text/plain" /> - <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" /> - <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" /> - <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" /> - <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> - <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" /> - <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" /> - <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xml" mimeType="text/xml" /> - <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" /> - <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" /> - <mimeMap fileExtension=".xsd" mimeType="text/xml" /> - <mimeMap fileExtension=".xsf" mimeType="text/xml" /> - <mimeMap fileExtension=".xsl" mimeType="text/xml" /> - <mimeMap fileExtension=".xslt" mimeType="text/xml" /> - <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" /> - <mimeMap fileExtension=".z" mimeType="application/x-compress" /> - <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> - </staticContent> - - <tracing> - - <traceProviderDefinitions> - <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> - <areas> - <clear /> - <add name="Authentication" value="2" /> - <add name="Security" value="4" /> - <add name="Filter" value="8" /> - <add name="StaticFile" value="16" /> - <add name="CGI" value="32" /> - <add name="Compression" value="64" /> - <add name="Cache" value="128" /> - <add name="RequestNotifications" value="256" /> - <add name="Module" value="512" /> - <add name="Rewrite" value="1024" /> - <add name="FastCGI" value="4096" /> - <add name="WebSocket" value="16384" /> - </areas> - </add> - <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}"> - <areas> - <clear /> - </areas> - </add> - <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}"> - <areas> - <clear /> - </areas> - </add> - <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}"> - <areas> - <add name="Infrastructure" value="1" /> - <add name="Module" value="2" /> - <add name="Page" value="4" /> - <add name="AppServices" value="8" /> - </areas> - </add> - </traceProviderDefinitions> - - <traceFailedRequests> - <add path="*"> - <traceAreas> - <add provider="ASP" verbosity="Verbose" /> - <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> - <add provider="ISAPI Extension" verbosity="Verbose" /> - <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" /> - </traceAreas> - <failureDefinitions statusCodes="200-999" /> - </add> - </traceFailedRequests> - - </tracing> - - <urlCompression /> - - <validation /> - <webdav> - <globalSettings> - <propertyStores> - <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" /> - </propertyStores> - <lockStores> - <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" /> - </lockStores> - - </globalSettings> - <authoring> - <locks enabled="true" lockStore="webdav_simple_lock" /> - </authoring> - <authoringRules /> - </webdav> - <webSocket /> - <applicationInitialization /> - - </system.webServer> - <location path="" overrideMode="Allow"> - <system.webServer> - <modules> - <add name="IsapiFilterModule" lockItem="true" /> - <add name="BasicAuthenticationModule" lockItem="true" /> - <add name="IsapiModule" lockItem="true" /> - <add name="HttpLoggingModule" lockItem="true" /> - <!-- - <add name="HttpCacheModule" lockItem="true" /> ---> - <add name="DynamicCompressionModule" lockItem="true" /> - <add name="StaticCompressionModule" lockItem="true" /> - <add name="DefaultDocumentModule" lockItem="true" /> - <add name="DirectoryListingModule" lockItem="true" /> - - <add name="ProtocolSupportModule" lockItem="true" /> - <add name="HttpRedirectionModule" lockItem="true" /> - <add name="ServerSideIncludeModule" lockItem="true" /> - <add name="StaticFileModule" lockItem="true" /> - <add name="AnonymousAuthenticationModule" lockItem="true" /> - <add name="CertificateMappingAuthenticationModule" lockItem="true" /> - <add name="UrlAuthorizationModule" lockItem="true" /> - <add name="WindowsAuthenticationModule" lockItem="true" /> - <!-- - <add name="DigestAuthenticationModule" lockItem="true" /> ---> - <add name="IISCertificateMappingAuthenticationModule" lockItem="true" /> - <add name="WebMatrixSupportModule" lockItem="true" /> - <add name="IpRestrictionModule" lockItem="true" /> - <add name="DynamicIpRestrictionModule" lockItem="true" /> - <add name="RequestFilteringModule" lockItem="true" /> - <add name="CustomLoggingModule" lockItem="true" /> - <add name="CustomErrorModule" lockItem="true" /> - <add name="FailedRequestsTracingModule" lockItem="true" /> - <add name="CgiModule" lockItem="true" /> - <add name="FastCgiModule" lockItem="true" /> - <!-- <add name="WebDAVModule" /> --> - <add name="RewriteModule" /> - <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" /> - <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" /> - <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" /> - <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> - <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" /> - <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" /> - <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" /> - <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" /> - <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" /> - <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" /> - <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" /> - <add name="ConfigurationValidationModule" lockItem="true" /> - <add name="WebSocketModule" lockItem="true" /> - <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" /> - <add name="ApplicationInitializationModule" lockItem="true" /> - </modules> - <handlers accessPolicy="Read, Script"> - <!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> --> - <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="ExtensionlessUrl-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" /> - <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> - </handlers> - </system.webServer> - </location> -</configuration> diff --git a/.svn/pristine/99/99bc22874c0b398b19232e30d057132c64f68b44.svn-base b/.svn/pristine/99/99bc22874c0b398b19232e30d057132c64f68b44.svn-base Binary files differ. diff --git a/.svn/pristine/99/99c5c29d138c91c6627319e0d96ce29f8463581b.svn-base b/.svn/pristine/99/99c5c29d138c91c6627319e0d96ce29f8463581b.svn-base @@ -1,23 +0,0 @@ -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\vc140.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\utils.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\terrain.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\symbol.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\physics.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\miscdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\level.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\input.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\event.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\diagnosticdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\console.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\cjson.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\camera.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\animation.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\actorcollision.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\actor.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\main.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.write.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.write.1.tlog diff --git a/.svn/pristine/9a/9a2c61667218e1cc69b06188da5ec6fec17a903c.svn-base b/.svn/pristine/9a/9a2c61667218e1cc69b06188da5ec6fec17a903c.svn-base @@ -1,1735 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" -#include "ActorHandle.h" -#include "ActorCollision.h" - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mSpatCell(-1) -{ - mAnimGraph = AnimData; - mPosData = Pos; - mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - mAHM = AHM; - //if (AHM != NULL) { mHandle = AHM->EventProcess(Event(ASSIGN_HANDLE, (EventReceiver*)this)); } - if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself - - mSpat = spat; - if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collsion system. - - mParticleLib = prtLib; - mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: -// gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - //gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case TERMINATE_DIALOGUE: - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -Gateman::Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) -{ - mLOS = Pos; - mLOS.w = 150; - mLOS.x = mLOS.x - 75 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - - mDir = mAHM->GetActorAddress(mGateH)->GetDir(); -} - - -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - //mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - //((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DIALOGUE, mStr, mHandle)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - ((ActorHandleManager*)mAHM)->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - //( mAHM->EventProcess(Event(GET_ACTOR_ADDRESS, mGateH)) ).EventProcess(Event(INTERACT)); //Event process can only return bools. Might change later. - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Gateman received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; -// CalcDrawRect(); -// mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); -} - -//bool Mobile::ModifyActorPosition(int x, int y) -//{ -// mPosData.x = x + mPosData.x; -// mPosData.y = y + mPosData.y; -// mDrawPos = mPosData; -// return false; -//} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - CalcDrawRect(); - SDL_Rect debug_draw = mDrawPos; - debug_draw.x += mPosData.x; - debug_draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(debug_draw); - //gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib ) , mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ -} - -bool Character::DetectFalling() -{ - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mHandle)) == false)) - { - return true; - } - else - { - return false; - } -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN_DRAWN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN_DRAWN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 - 10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mHandle)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) //this should probably be lower - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mHandle))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mHandle))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mHandle)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); - return true; - } - else - { - return false; - } -} - -//Player Functions -Player::Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalkerID(-1), mHP(100), mHPmax(100), mHPtimer(0), mRecover(0), mTouch(Pos), mAttackZone(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mTouch.h = Pos.h; - mTouch.w = 18; - - mAttackZone.w = 16; - ((sword*)(mAHM->GetActorAddress(mHatIndex_Sword)))->ToggleHat(true); -} - -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - mAHM->GetActorAddress(eve.GetReturnAddress())->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData(), mHandle)); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalkerID = eve.GetEventData()->dd.talkerID; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mAHM->GetActorAddress(mTalkerID)->EventProcess(eve); - mTalkerID = -1; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10, FADE_BLACK, 255)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - gCons->ConsPrintf("actor x: %i, actor y: %i", mPosData.x, mPosData.y); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(INTERACT, mHandle)); - break; - case Attack: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DAMAGE, 10, mHandle)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->damd.damage; - mHPtimer = 350; - mFeed.EventProcess(Event(FADE, 10, FADE_RED, 50)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "ouch", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - //mBlinkDuration = gTime->GetCurrentCycle(); - //mBlinkPeriod = gTime->GetCurrentCycle(); - //gCons->ConsPrintf("Player has received a damage event!\n"); - //gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - if (mState == ATTACK) { break; } - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - if (mState == ATTACK) { break; } - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalkerID != -1) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalkerID != -1) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalkerID != -1) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mHandle)); - } - break; - case SDL_SCANCODE_Q: - if (mTalkerID != -1) { break; } - mWielded = !mWielded; - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - break; - case SDL_SCANCODE_W: - if (mTalkerID != -1 ) { break; } - if (mWielded != true) { break; } - mTimer = gTime->GetCurrentMS(); - if ((mState != JUMP) && (mState != FALL)) - { - mXmove = 0; - } - mState = ATTACK; - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "player_attack", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Attack, &mAttackZone, mHandle)); - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWielded == false - { - mAnimID = RUN; - } - break; - case JUMP: - if (mWielded == true) - { - mAnimID = JUMP_DRAWN; - } - else - { - mAnimID = JUMP; - } - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case ATTACK: - mAnimID = ATTACK; - break; - case IDLE: - default: - if (mWielded == true) - { - mAnimID = IDLE_DRAWN; - } - else - { - mAnimID = IDLE; - } - //break; - if (mColMan.DetectSwim() == true) //overwrite previous logic if this condition is true - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) && (mState != ATTACK) ) - { - if (mWielded == true) - { - mAnimID = FALL_DRAWN; - } - else - { - mAnimID = FALL; - } - } - mFrame = mAnimGraph->UpdateAnimation(); - CalcDrawRect(); - return true; -} - -bool Player::ActorUpdate() -{ - if (mHP <= 0) - { - mFeed.EventProcess(Event(GAME_OVER)); - //game over - } - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - case ATTACK: - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Attack, &mAttackZone, mHandle)); - if (gTime->GetCurrentMS() - mTimer >= 600) - { - mState = IDLE; - } - //gCons->ConsPrintf("Player attacks!\n"); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - if ((mHPtimer == 0) && (mHP < mHPmax)) - { - mHP++; - } - if (mHPtimer > 0) - { - mHPtimer--; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - mAttackZone.y = mPosData.y; - switch (mDir) - { - case LEFT: - mAttackZone.x = mPosData.x - 20; - break; - case RIGHT: - mAttackZone.x = mPosData.x + 6; - break; - default: - gCons->ConsPrintf("Player has no direction\n"); - } - - mAHM->GetActorAddress(mHatIndex_Sword)->ActorUpdate(); - -// gDiagDraw->LogDiagRect(mAttackZone); -// gDiagDraw->LogDiagRect(mTouch); - -// Node** hat_array = mHats.Dump(); -// for (int i = 0; i < mHats.Size(); i++) -// { -// mAHM->GetActorAddress(hat_array[i]->GetItem())->ActorUpdate(); -// } - -// gCons->ConsPrintf("pos : x=%i, y=%i, h=%i, w=%i\n", mPosData.x, mPosData.y, mPosData.h, mPosData.w); -// gCons->ConsPrintf("draw: x=%i, y=%i, h=%i, w=%i\n", mDrawPos.x, mDrawPos.y, mDrawPos.h, mDrawPos.w); - - -// SDL_Rect draw = mDrawPos; -// draw.x += mPosData.x; -// draw.y += mPosData.y; -// gDiagDraw->LogDiagRect(draw); -// gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - -//Sludge_Seal functions - -bool Sludge_Seal::Pursue() -{ - - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - Actor* target = mAHM->GetActorAddress(mTarget); - - if ((target->GetX() - mPosData.x > -5)) - { - mXmove = 2; - mDir = LEFT; - } - else if ((target->GetX() - mPosData.x < 5)) - { - mXmove = -2; - mDir = RIGHT; - } - else - { - mXmove = 0; - mState = IDLE; - - return true; - } - return false; -} - -bool Sludge_Seal::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Sludge_Seal::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 30); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Sludge_Seal::EventProcess(Event eve) -{ - if (mState == DEAD) - { - return false; - } - int AttackerX; - - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (mState == STUN) { break; } - if (eve.GetEventData()->i == mTarget) - { - if (mState == PURSUE) - { - //mAHM->GetActorAddress(mTarget)->EventProcess(Event(PLAYER_CHECK, EventData(), mHandle)); - mAHM->GetActorAddress(mTarget)->EventProcess(Event(DAMAGE, mDamage, mHandle)); - mState = IDLE; - } - } - break; - case SENSOR_COLLISION: - if (mState == STUN) { break; } - switch (eve.GetEventData()->sr.st) - { - case LOS: - mAHM->GetActorAddress(eve.GetEventData()->sr.id)->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - case PLAYER_CONFIRM: - //mAHM->GetActorAddress(eve.GetReturnAddress())->EventProcess(Event(DAMAGE, mDamage, mHandle)); - - mTarget = eve.GetEventData()->sr.id; - - if ((rest(50) == false) && (abs(mAHM->GetActorAddress(mTarget)->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - - break; - case DAMAGE: - if (mState == STUN) { break; } - - mHP -= eve.GetEventData()->damd.damage; - mDamagedTimer = gTime->GetCurrentMS(); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "sludge_hit", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - - AttackerX = mAHM->GetActorAddress(eve.GetEventData()->damd.attackerID)->GetX(); - if ((AttackerX+6) < (mPosData.x + 11)) //attacker is to the left - { - mXspd = 4; - mYspd = -3; - } - else if ((AttackerX+6) > (mPosData.x + 11)) //attacker is to the right - { - mXspd = -4; - mYspd = -3; - } - - mState = STUN; - - if (mHP <= 0) - { - mState = DEAD; - } - break; - default: - return false; - //gCons->ConsPrintf("Sludge Seal asked to process unrecognized event\n"); - } - - return false; -} - -bool Sludge_Seal::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - break; - case DEAD: - mAnimID = DEAD; - break; - case STUN: - case IDLE: - default: - mAnimID = IDLE; - - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - - mFrame = mAnimGraph->UpdateAnimation(); - CalcDrawRect(); - return true; -} - -bool Sludge_Seal::ActorUpdate() -{ - switch (mState) - { - case STUN: - //gCons->ConsPrintf("seal stunned!\n"); - mXmove = 0; - if (gTime->GetCurrentMS() - mDamagedTimer >= 700) - { - mState = IDLE; - //gCons->ConsPrintf("seal recovers!\n"); - } - break; - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - //Wander(); - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - case DEAD: - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - - if ((mPhysMan.Floating() == true) | (mYspd == 0)) - { - mXspd = 0; - } - - if (mState != DEAD) - { - if (UpdatePosition() == true) - { - - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ((170 - mPosData.w) / 2); - mLOS.w = 170; - //gCons->ConsPrintf("Seal: Cell %i\n", mSpatCell); - } - } - UpdateAnimation(); - return true; -} - -// - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10, mHandle)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - //gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/9a/9a4555eecddd20aa47f9467f9e376e1205b062d3.svn-base b/.svn/pristine/9a/9a4555eecddd20aa47f9467f9e376e1205b062d3.svn-base Binary files differ. diff --git a/.svn/pristine/9a/9ab242fa143d69f7d8bf770d487e54efb02d6afc.svn-base b/.svn/pristine/9a/9ab242fa143d69f7d8bf770d487e54efb02d6afc.svn-base Binary files differ. diff --git a/.svn/pristine/9b/9bb8ca150ccfe9da48b8ed98dd9246aa5c17a7c9.svn-base b/.svn/pristine/9b/9bb8ca150ccfe9da48b8ed98dd9246aa5c17a7c9.svn-base Binary files differ. diff --git a/.svn/pristine/9c/9c0f207ec6de00d72aad0f999dbb78baba016eec.svn-base b/.svn/pristine/9c/9c0f207ec6de00d72aad0f999dbb78baba016eec.svn-base Binary files differ. diff --git a/.svn/pristine/9c/9c17c205152f2a1fde93f7cc245fd0fdce7249e4.svn-base b/.svn/pristine/9c/9c17c205152f2a1fde93f7cc245fd0fdce7249e4.svn-base Binary files differ. diff --git a/.svn/pristine/9c/9ce7e6656eb8babfc7f324192d35a9502c2d0669.svn-base b/.svn/pristine/9c/9ce7e6656eb8babfc7f324192d35a9502c2d0669.svn-base Binary files differ. diff --git a/.svn/pristine/9d/9d1f88cbcca5274f814344e246b9cb46af960c32.svn-base b/.svn/pristine/9d/9d1f88cbcca5274f814344e246b9cb46af960c32.svn-base Binary files differ. diff --git a/.svn/pristine/9d/9dc1c0f661ef6496ea4183d59cb0bd73d46ffae9.svn-base b/.svn/pristine/9d/9dc1c0f661ef6496ea4183d59cb0bd73d46ffae9.svn-base Binary files differ. diff --git a/.svn/pristine/9e/9e12773a9dfbb5cb74eb50beaf92a243c96c461b.svn-base b/.svn/pristine/9e/9e12773a9dfbb5cb74eb50beaf92a243c96c461b.svn-base Binary files differ. diff --git a/.svn/pristine/9e/9ee496c4f10e7d2c14c999ca8e8234e7bd1f1c77.svn-base b/.svn/pristine/9e/9ee496c4f10e7d2c14c999ca8e8234e7bd1f1c77.svn-base @@ -1,61 +0,0 @@ -#include "Context.h" - -bool ContextManager::LogContext(Context* con, char* name) -{ - mContexts.push_back(con); - mNames.push_back(name); - return false; -} - -bool ContextManager::LoadContext(char* ContextName) -{ - for (int i = 0; i < (int)mNames.size(); i++) - { - if (!strcmp(ContextName, mNames.at(i))) - { - mContexts.at(i)->Load(mGameDataPath); - mActiveContext = mContexts.at(i); - return true; - } - } - gCons->ConsPrintf("Unable to load context; No context matching name %s was found\n", ContextName); - return false; -} - -bool ContextManager::ContextUpdate() -{ - return mActiveContext->Update(); -} - -bool ContextManager::EventProcess(Event eve) -{ - return false; -} - -bool GameOver::Update() -{ - SDL_RenderCopy(mRen, mSplash, NULL, NULL); - - return true; -} - -bool GameOver::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case KEY_DOWN: - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_R: - //reload level; - break; - } - break; - default: - - return false; - } - - return false; -} - diff --git a/.svn/pristine/9f/9f6828a54a144f45c7478728b586e599411a758e.svn-base b/.svn/pristine/9f/9f6828a54a144f45c7478728b586e599411a758e.svn-base Binary files differ. diff --git a/.svn/pristine/9f/9fda4ecb23e297b886b0e36918274ff6fed3748d.svn-base b/.svn/pristine/9f/9fda4ecb23e297b886b0e36918274ff6fed3748d.svn-base Binary files differ. diff --git a/.svn/pristine/a0/a070a46c9789ea4e9878f92d11d9d6bf97d826eb.svn-base b/.svn/pristine/a0/a070a46c9789ea4e9878f92d11d9d6bf97d826eb.svn-base Binary files differ. diff --git a/.svn/pristine/a0/a07c9b200fe33a3bff42a44b385ea3a8d19cecfa.svn-base b/.svn/pristine/a0/a07c9b200fe33a3bff42a44b385ea3a8d19cecfa.svn-base Binary files differ. diff --git a/.svn/pristine/a2/a24f8151d5aaba2dcc8a71739703f348e99b636c.svn-base b/.svn/pristine/a2/a24f8151d5aaba2dcc8a71739703f348e99b636c.svn-base Binary files differ. diff --git a/.svn/pristine/a2/a25e40313f716e58236fc7277caf444d53820ab4.svn-base b/.svn/pristine/a2/a25e40313f716e58236fc7277caf444d53820ab4.svn-base Binary files differ. diff --git a/.svn/pristine/a2/a2dd0fcfd456b325942b7895ff96ba1d7d04c4e6.svn-base b/.svn/pristine/a2/a2dd0fcfd456b325942b7895ff96ba1d7d04c4e6.svn-base Binary files differ. diff --git a/.svn/pristine/a3/a314e1b9af338e3b1458857815d1386f781f679f.svn-base b/.svn/pristine/a3/a314e1b9af338e3b1458857815d1386f781f679f.svn-base Binary files differ. diff --git a/.svn/pristine/a3/a31fee0bf9e64054705adea05c59302c07999788.svn-base b/.svn/pristine/a3/a31fee0bf9e64054705adea05c59302c07999788.svn-base @@ -1,119 +0,0 @@ -#ifndef ACTORCOLLISION_H -#define ACTORCOLLISION_H - -#include "Utils.h" -#include "Console.h" -#include "DiagnosticDraw.h" -#include "Event.h" -#include "Actor.h" -#include "ActorHandle.h" - -#define MAX_ACTORS 1024 - -#define CELLS_X 10 -#define CELLS_Y 2 -#define CELL_COUNT (CELLS_X*CELLS_Y) - -class Cell -{ -public: - Cell() : mCell_Rect() - { - mActors_In_Cell = BinaryTree(); - } - - Cell(SDL_Rect rect) : mCell_Rect(rect) - { - mActors_In_Cell = BinaryTree(); - } - - SDL_Rect* GetCellRect() - { - return &mCell_Rect; - } - - BinaryTree* GetActorTree() - { - return &mActors_In_Cell; - } -protected: - SDL_Rect mCell_Rect; - BinaryTree mActors_In_Cell; -}; - -class SpatialMonitor : public EventReceiver -{ -public: - - SpatialMonitor() - { - } - - SpatialMonitor(int worldH, int worldW, ActorHandleManager* AHM) : mAHM(AHM) - { - PartitionCells(worldH, worldW); - } - - int GetAdjacentCells(int cellnum, Cell* cells[9]); - - bool LogActor(int id); //Logs an actor with the spatial monitor. called on program startup - - bool EventProcess(Event eve); - - Cell* GetCell(int i) //Gets the cell from a cell number. - { - if ((0 <= i) && (i < CELL_COUNT)) - { - return &mCells[i]; - } - else - { - //gCons->ConsPrintf("Cell %i does not exist\n", i) - return NULL; - } - } - -protected: - - bool PartitionCells(int worldH, int worldW); //divides the level into cells based on macro'd parameters - - //bool GetActorsInCell(int cellnum); - - //bool GetAdjacentActors(int cellnum); - - bool DetectActorCollision(int id1, int id2); //checks two logged actors for intersection - - bool DetectRectSensors(SDL_Rect* sensor, int detectorID, int foreignID); //Called in HandleRectSensors, checks given rectangle for intersects - - bool ClearActorCell(int id); - - int UpdateActorCell(int id); //Updates the the cell number that contains a logged actor, Called when an MOVED_THIS_FRAME event is processed - - int GetActorCell(int id) //Gets the cell number of an actor - { - - return (mAHM->GetActorAddress(id)->GetSpatCell()); - - //return mActorCells[id]; - } - - //int* GetAdjacentCells(int cellnum, int cells[9]); //populates and returns cells[9] with the cell numbers of cellnum and the 8 surrounding cells - - bool HandleCollisions(int CallerID); //Called in event process, finds the actors in the cells adjacent to the cell of CallerID and checks them for collision with CallerID - - bool HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType); - - bool TestBlockers(SDL_Rect* sensor, int CallerID); - - - //BinaryTree mActors; - ActorHandleManager* mAHM; - //int mActorCells[MAX_ACTORS]; - Cell mCells[CELL_COUNT]; - //int mActorCount; - //int mAdjacentActorIDs[MAX_ACTORS]; - //int mAdjacentActorCount; -}; - -#endif - diff --git a/.svn/pristine/a3/a340b365da861b0097b231efc4a94a3c1d8dc5ee.svn-base b/.svn/pristine/a3/a340b365da861b0097b231efc4a94a3c1d8dc5ee.svn-base Binary files differ. diff --git a/.svn/pristine/a3/a35daa28ae4369f4b149785dfd5b400c3013e5fb.svn-base b/.svn/pristine/a3/a35daa28ae4369f4b149785dfd5b400c3013e5fb.svn-base Binary files differ. diff --git a/.svn/pristine/a3/a393f3010b7d19b79a82698d8ef6394a0236d4cd.svn-base b/.svn/pristine/a3/a393f3010b7d19b79a82698d8ef6394a0236d4cd.svn-base @@ -1,148 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <ProjectGuid>{7BB3F3F9-5600-4309-A1DA-D14BA7B40E91}</ProjectGuid> - <RootNamespace>TapestryEngine</RootNamespace> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v140</PlatformToolset> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v140</PlatformToolset> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>MultiByte</CharacterSet> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <IncludePath>C:\SDL2_ttf-2.0.12\include;C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\include;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\include;$(IncludePath)</IncludePath> - <LibraryPath>C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\lib\x86;C:\SDL2_ttf-2.0.12\lib\x64;C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\VisualC\Win32\Release;$(LibraryPath)</LibraryPath> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <IncludePath>C:\SDL2_ttf-2.0.12\include;C:\SDL2-2.0.3\include;$(IncludePath)</IncludePath> - <LibraryPath>C:\SDL2_ttf-2.0.12\lib\x64;C:\SDL2-2.0.3\lib\x64;$(LibraryPath)</LibraryPath> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> - <AdditionalIncludeDirectories>C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\SDL2-2.0.4\include;C:\SDL2_ttf-2.0.12\include;C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>C:\SDL2_mixer-devel-2.0.1-VC\SDL2_mixer-2.0.1\lib\x86;C:\SDL2_ttf-2.0.12\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>SDL2main.lib;SDL2.lib;SDL2_mixer.lib;SDL2test.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies> - <SubSystem>Windows</SubSystem> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <WarningLevel>Level3</WarningLevel> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <SDLCheck>true</SDLCheck> - <AdditionalIncludeDirectories>C:\SDL2-2.0.3\include;C:\SDL2_ttf-2.0.12\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> - <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> - </ClCompile> - <Link> - <GenerateDebugInformation>true</GenerateDebugInformation> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <AdditionalLibraryDirectories>C:\SDL2-2.0.3\lib\x86;C:\SDL2_ttf-2.0.12\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>SDL2main.lib;SDL2.lib;SDL2test.lib;SDL2_ttf.lib;%(AdditionalDependencies)</AdditionalDependencies> - <SubSystem>Windows</SubSystem> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClCompile Include="Actor.cpp" /> - <ClCompile Include="ActorCollision.cpp" /> - <ClCompile Include="ActorHandle.cpp" /> - <ClCompile Include="Animation.cpp" /> - <ClCompile Include="AnimationGraph.cpp" /> - <ClCompile Include="BinaryTree.cpp" /> - <ClCompile Include="Camera.cpp" /> - <ClCompile Include="cJSON.cpp" /> - <ClCompile Include="Console.cpp" /> - <ClCompile Include="Context.cpp" /> - <ClCompile Include="DiagnosticDraw.cpp" /> - <ClCompile Include="Dialogue.cpp" /> - <ClCompile Include="Emitter.cpp" /> - <ClCompile Include="Event.cpp" /> - <ClCompile Include="HUD.cpp" /> - <ClCompile Include="Input.cpp" /> - <ClCompile Include="Layer.cpp" /> - <ClCompile Include="Level.cpp" /> - <ClCompile Include="Loading.cpp" /> - <ClCompile Include="Main.cpp" /> - <ClCompile Include="MiscDraw.cpp" /> - <ClCompile Include="Particle.cpp" /> - <ClCompile Include="Physics.cpp" /> - <ClCompile Include="Sequence.cpp" /> - <ClCompile Include="sound.cpp" /> - <ClCompile Include="symbol.cpp" /> - <ClCompile Include="Terrain.cpp" /> - <ClCompile Include="Utils.cpp"> - <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">MultiThreadedDebugDLL</RuntimeLibrary> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ClInclude Include="Actor.h" /> - <ClInclude Include="ActorCollision.h" /> - <ClInclude Include="ActorHandle.h" /> - <ClInclude Include="Animation.h" /> - <ClInclude Include="AnimationGraph.h" /> - <ClInclude Include="BinaryTree.h" /> - <ClInclude Include="Camera.h" /> - <ClInclude Include="cJSON.h" /> - <ClInclude Include="Console.h" /> - <ClInclude Include="Context.h" /> - <ClInclude Include="DiagnosticDraw.h" /> - <ClInclude Include="Dialogue.h" /> - <ClInclude Include="Emitter.h" /> - <ClInclude Include="Event.h" /> - <ClInclude Include="HUD.h" /> - <ClInclude Include="Input.h" /> - <ClInclude Include="Layer.h" /> - <ClInclude Include="Level.h" /> - <ClInclude Include="Loading.h" /> - <ClInclude Include="MiscDraw.h" /> - <ClInclude Include="Particle.h" /> - <ClInclude Include="Physics.h" /> - <ClInclude Include="Sequence.h" /> - <ClInclude Include="sound.h" /> - <ClInclude Include="symbol.h" /> - <ClInclude Include="Terrain.h" /> - <ClInclude Include="Utils.h" /> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project>- \ No newline at end of file diff --git a/.svn/pristine/a3/a3dca5d158d3426daec307abe07570fd3aaebeaf.svn-base b/.svn/pristine/a3/a3dca5d158d3426daec307abe07570fd3aaebeaf.svn-base Binary files differ. diff --git a/.svn/pristine/a4/a4839fff10aa0027710c345290ce138706d766ab.svn-base b/.svn/pristine/a4/a4839fff10aa0027710c345290ce138706d766ab.svn-base Binary files differ. diff --git a/.svn/pristine/a4/a4eff8c2e219d426c7039756c2178bcf9141cf04.svn-base b/.svn/pristine/a4/a4eff8c2e219d426c7039756c2178bcf9141cf04.svn-base Binary files differ. diff --git a/.svn/pristine/a5/a57a2c996d418947f3aac5f57e7bb8e478ff1f2c.svn-base b/.svn/pristine/a5/a57a2c996d418947f3aac5f57e7bb8e478ff1f2c.svn-base @@ -1,2 +0,0 @@ -#TargetFrameworkVersion=v4.0:PlatformToolSet=v140:EnableManagedIncrementalBuild=false:VCToolArchitecture=Native32Bit:WindowsTargetPlatformVersion=8.1 -Debug|Win32|C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\| diff --git a/.svn/pristine/a6/a6045ef42762c678bf77858908ca3d3b063a5a8c.svn-base b/.svn/pristine/a6/a6045ef42762c678bf77858908ca3d3b063a5a8c.svn-base Binary files differ. diff --git a/.svn/pristine/a6/a62ee0ed2f6923967b4db9d235071d83dc83c456.svn-base b/.svn/pristine/a6/a62ee0ed2f6923967b4db9d235071d83dc83c456.svn-base @@ -1,10 +0,0 @@ -#ifndef SYMBOL_H -#define SYMBOL_H - -#include "Utils.h" -#include "Console.h" -#include"Actor.h" - -int ConvertStringToSymbol(char * str); - -#endif- \ No newline at end of file diff --git a/.svn/pristine/a6/a6480001211dcf5c90e38749ad56b620853efb36.svn-base b/.svn/pristine/a6/a6480001211dcf5c90e38749ad56b620853efb36.svn-base @@ -1,97 +0,0 @@ -#ifndef LEVEL_H -#define LEVEL_H - -#include "Utils.h" -#include "Console.h" -#include "Context.h" - -#include "Actor.h" -#include "ActorCollision.h" -#include "Particle.h" -#include "Camera.h" -#include "Event.h" -#include "Input.h" -#include "symbol.h" -#include "MiscDraw.h" -#include "sound.h" -#include "HUD.h" -#include "Dialogue.h" - -struct ActorName -{ - char* name; - Actor* act; -}; - -Actor* FindRef(std::vector<ActorName*> refs, char* name); - -class Level : public Context, public EventReceiver -{ -public: - - Level() {} - - Level(SDL_Renderer* ren, Control* ctrl) - { - mRen = ren; - mInput = ctrl; - } - - bool LoadWorld(cJSON* level); - - bool LoadCamera(cJSON* level); - - bool LoadAnimations(cJSON* level); - - bool LoadAnimGraph(cJSON* anim_pack); - - bool LoadActors(cJSON* level); - - bool LoadParticles(cJSON* level); - - bool LoadSounds(cJSON* level); - - bool LoadHud(cJSON* level); - - bool Load(const char* filename); - - bool Update(); - - bool EventProcess(Event eve); - - ActorHandleManager mAHM; - SpatialMonitor mSpatMon; - Control* mInput; - ParticleManager mPrtLib; - SoundManager mSoundLib; - - - int mHeight; - int mWidth; - Camera mCam; - - SDL_Surface* mColMap; - - std::vector<AnimDataPack*> mAnimData; - std::vector<AnimGraphData*> mAnimGraphs; - - std::vector<Actor*> mCast; - - std::vector<SDL_Texture*> mBack; - std::vector<float> mParallax_back; - - std::vector<SDL_Texture*> mFore; - - std::vector<SDL_Texture*> mOver; - std::vector<float> mParallax_over; - - HUD mHUD; - -protected: - - char** mAnim_names; - Player* mPlayer; - -}; - -#endif diff --git a/.svn/pristine/a6/a6af49b0f77364c5f35d59f843b10f8c99af28d8.svn-base b/.svn/pristine/a6/a6af49b0f77364c5f35d59f843b10f8c99af28d8.svn-base @@ -1,145 +0,0 @@ -#include"Utils.h" -#include"Console.h" -#include "MiscDraw.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)floor((float)(act.GetDrawHeight()) * ((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)floor((float)(act.GetDrawWidth()) * ((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)floor((float)(act.GetDrawX() + act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)floor((float)(act.GetDrawY() + act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - return ScreenPos; -} - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW) -{ - int imgH; - int imgW; - SDL_QueryTexture(img, NULL, NULL, &imgW, &imgH); - - SDL_Rect clip; - clip.h = (int)(cam.GetCamView()->h * scale); - clip.w = (int)(cam.GetCamView()->w * scale); - clip.x = (int)(cam.GetCamX() / ( (worldW - cam.GetCamView()->w) / ( imgW - (cam.GetCamView()->w)*scale) )); - clip.y = (int)(cam.GetCamY() / ( (worldH - cam.GetCamView()->h) / ( imgH - (cam.GetCamView()->h)*scale) )); - -// gCons->ConsPrintf("para bound x: %i - %i\n", clip.x, clip.w + clip.x); -// gCons->ConsPrintf("para bound y: %i - %i\n", clip.y, clip.h + clip.y); - - SDL_RenderCopy(ren, img, &clip, NULL); - - return true; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame* RenderFrame = act.GetFrame(); - - if (RenderFrame != NULL) - { - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); - SDL_SetTextureAlphaMod(RenderFrame->FrameSource, act.GetOpacity()); - - SDL_RenderCopyEx(ren, RenderFrame->FrameSource, &(RenderFrame->FrameRect), &ScreenPos, 0, NULL, flip); - Node** hat_array = act.GetHats()->Dump(); - for (int i = 0; i < act.GetHats()->Size(); i++) - { - if (((Hat*)( hat_array[i]->GetData() ))->IsEnabled()) - { - DrawActor(ren, *(Actor*)(hat_array[i]->GetData()), cam); - } - } - } - else - { - //gCons->ConsPrintf("Actor frame is null\n"); - } - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} - -bool DrawText(SDL_Renderer* ren, TTF_Font* font, char* text, SDL_Color Text_c, SDL_Color Back_c) -{ - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(font, text, Text_c, Back_c); - if (!LineSur) - { - error = SDL_GetError(); - } - - SDL_SetColorKey(LineSur, SDL_TRUE, SDL_MapRGB(LineSur->format, 0xFF, 0x00, 0xFF)); - - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - - SDL_Rect TextRect; - - if (SDL_QueryTexture(LineTex, NULL, NULL, &TextRect.w, &TextRect.h)) - { - error = SDL_GetError(); - } - - SDL_Rect LinePosRect; - - LinePosRect.w = TextRect.w; - LinePosRect.h = TextRect.h; - LinePosRect.x = 0; - LinePosRect.y = 0; - //Why comment? -// if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) -// { -// error = SDL_GetError(); -// } - SDL_DestroyTexture(LineTex); - - return false; -} - -//bool DrawBone(SDL_Renderer* ren, Bone* bone) -//{ - -//} - -bool DrawMapTest(SDL_Renderer* ren, SDL_Surface* map) -{ - SDL_Texture* map_tex = SDL_CreateTextureFromSurface(ren, map); - const char* error = SDL_GetError(); - SDL_RenderCopy(ren, map_tex, NULL, NULL); - return false; -} diff --git a/.svn/pristine/a6/a6d057532f8604ade33918f3a62b14eea99d84fc.svn-base b/.svn/pristine/a6/a6d057532f8604ade33918f3a62b14eea99d84fc.svn-base @@ -1,201 +0,0 @@ -#include "Utils.h" -#include "DiagnosticDraw.h" -#include "Console.h" - -ParticleTypeData NullPTdata() -{ - ParticleTypeData ptData; - ptData.NoData = true; - return ptData; -} - -Time* gTime = NULL; - -//int GetTimeF() //measures in frames -//{ -// int time = (clock() / CLOCKS_PER_FRAME); -// return time; -//} - -int GetRealTimeMS() //measures in milliseconds -{ - int time = (clock() / (CLOCKS_PER_SEC / 1000)); - return time; -} - -SDL_Surface* LoadSurfaceBMP(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\imgs\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\imgs\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - SDL_Surface* surface = SDL_LoadBMP(strcat(pathbuffer, filename)); - if (surface == NULL) - { - gCons->ConsPrintf("SDL_LoadBMP Error: %s", SDL_GetError()); - } - - SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF)); - - return surface; -} - -TTF_Font* LoadFont(char* filename, int ptsize) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\fonts\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\fonts\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - char* fullpath = strcat(pathbuffer, filename); - - TTF_Font* font = TTF_OpenFont(fullpath, ptsize); - - assert(font != NULL); - - return font; -} -cJSON * LoadJSON(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\json\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\json\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - strcat(pathbuffer, filename); - - struct stat filestats; - stat(pathbuffer, &filestats); - - char* filecontent = (char*)malloc( (filestats.st_size + 1) ); - - FILE* fp; - fp = fopen(pathbuffer, "rt"); - - size_t size = fread(filecontent, 1, filestats.st_size, fp); - fclose(fp); - - filecontent[size] = 0; - - //gCons->ConsPrintf("%s\n", filecontent); - - return cJSON_Parse(filecontent); -} - -void PrintJSON(cJSON* json) -{ - gCons->ConsPrintf(cJSON_Print(json)); -} - -float GetSign(float x) -{ - if (x > 0) { return 1; } - if (x < 0) { return -1; } - return 0; -} - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2) -{ - //if ( ((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ( (r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w)) )) //if r1 and r2 intersect in x - - int r1x1 = r1->x; - int r1x2 = r1->x + r1->w; - int r2x1 = r2->x; - int r2x2 = r2->x + r2->w; - - int r1y1 = r1->y; - int r1y2 = r1->y + r1->h; - int r2y1 = r2->y; - int r2y2 = r2->y + r2->h; - - //if (((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ((r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w))) || ((r1->x <= r2->x) && (r2->x + r2->w) >= (r1->x + r1->w)) || ( (r1->x >= r2->x)&&( (r1->x + r1->w) >= (r2->x + r2->w) ) ) ) //if r1 and r2 intersect in x - if - ( - (r1x1 <= r2x2 && r1x1 >= r2x1) || - (r1x2 <= r2x2 && r1x2 >= r2x1) || - (r1x1 <= r2x1 && r1x2 >= r2x2) - ) - { - if - ( - (r1y1 <= r2y2 && r1y1 >= r2y1) || - (r1y2 <= r2y2 && r1y2 >= r2y1) || - (r1y1 <= r2y1 && r1y2 >= r2y2) - ) - { - //gCons->ConsPrintf("Rect Intersect Detected!\n"); - return true; - } - } - //gCons->ConsPrintf("No Rect Intersect Detected!\n"); - return false; -} - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point) //this is a likely culprit -{ - gDiagDraw->LogDiagRect(*point); - int pointX = point->x + (int)((float)point->w / 2); - int pointY = point->y + (int)((float)point->h / 2); - if ( (zone->x <= pointX) && (pointX <= (zone->x + zone->w)) ) - { - if ((zone->y <= pointY) && (pointY <= (zone->y + zone->h))) - { - //gCons->ConsPrintf("Center point intersect detected\n"); - return true; - } - } - //gCons->ConsPrintf("center point not intersecting\n"); - return false; -} - -int CalcDistance(int x1, int y1, int x2, int y2) -{ - int Xdelt = abs(x1 - x2); - int Ydelt = abs(y1 - y2); - - return (int)sqrt((Xdelt*Xdelt) + (Ydelt*Ydelt)); -} - -int EvenOutcomes(int NumberofOutcomes) -{ - int i = (rand() % (NumberofOutcomes)) + 1; - //gCons->ConsPrintf("Roll : %i\n", i); - return i; -} - -int RandRange(int min, int max) -{ - int i = (min + (rand() % (max-min))); - //gCons->ConsPrintf("Range Roll : %i\n", i); - return i; -} - - -bool IsEven(int i) //Not working alawys return true -{ - if ( (i % 2) == 0) - { - return true; - } - else - { - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/a6/a6eef2ff4d8d42063f9bca6148453302948f8f94.svn-base b/.svn/pristine/a6/a6eef2ff4d8d42063f9bca6148453302948f8f94.svn-base @@ -1,599 +0,0 @@ -#include "Level.h" - -Actor* FindRef(std::vector<ActorName*> refs, char* name) -{ - for (int i = 0; i < (int)refs.size(); i++) - { - if (strcmp(refs.at(i)->name, name) == false) - { - return refs.at(i)->act; - } - } - - return NULL; -} - -bool Level::LoadWorld(cJSON* level) -{ - cJSON* world = cJSON_GetObjectItem(level, "world"); - mHeight = cJSON_GetObjectItem(world, "world_h")->valueint; - mWidth = cJSON_GetObjectItem(world, "world_w")->valueint; - - - - char * ter = cJSON_GetObjectItem(world, "terrain")->valuestring; - mColMap = LoadSurfaceBMP(ter); - - cJSON* backs = cJSON_GetObjectItem(world, "backgrounds"); - for (int i = 0; i < cJSON_GetArraySize(backs); i++) - { - cJSON* layer = cJSON_GetArrayItem(backs, i); - char* back = cJSON_GetObjectItem(layer, "back")->valuestring; - - SDL_Texture* back_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(back)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(back_tex, alpha); - } - - mBack.push_back(back_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_back.push_back(p_factor); - } - - cJSON* fores = cJSON_GetObjectItem(world, "foregrounds"); - for (int i = 0; i < cJSON_GetArraySize(fores); i++) - { - cJSON* layer = cJSON_GetArrayItem(fores, i); - char* fore = cJSON_GetObjectItem(layer, "fore")->valuestring; - - SDL_Texture* fore_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(fore)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(fore_tex, alpha); - } - - mFore.push_back(fore_tex); - } - - cJSON* overs = cJSON_GetObjectItem(world, "overlays"); - for (int i = 0; i < cJSON_GetArraySize(overs); i++) - { - cJSON* layer = cJSON_GetArrayItem(overs, i); - char* overs = cJSON_GetObjectItem(layer, "over")->valuestring; - - SDL_Texture* over_tex = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(overs)); - int alpha = cJSON_GetObjectItem(layer, "alpha")->valueint; - - if (alpha != 0) - { - SDL_SetTextureAlphaMod(over_tex, alpha); - } - - mOver.push_back(over_tex); - - float p_factor = (float)cJSON_GetObjectItem(layer, "parallax_factor")->valueint; - mParallax_over.push_back(p_factor); - } - return true; -} - -bool Level::LoadCamera(cJSON* level) -{ - cJSON* camera = cJSON_GetObjectItem(level, "camera"); - int camx = cJSON_GetObjectItem(camera, "x")->valueint; - int camy = cJSON_GetObjectItem(camera, "y")->valueint; - int camh = cJSON_GetObjectItem(camera, "h")->valueint; - int camw = cJSON_GetObjectItem(camera, "w")->valueint; - - mCam = Camera(camh, camw, camx, camy, mHeight, mWidth); - - cJSON* blockers = cJSON_GetObjectItem(camera, "blockers"); - - for (int i = 0; i < cJSON_GetArraySize(blockers); i++) - { - cJSON* blocker = cJSON_GetArrayItem(blockers, i); - SDL_Rect* r = new SDL_Rect; - r->h = cJSON_GetObjectItem(blocker, "h")->valueint; - r->w = cJSON_GetObjectItem(blocker, "w")->valueint; - r->x = cJSON_GetObjectItem(blocker, "x")->valueint; - r->y = cJSON_GetObjectItem(blocker, "y")->valueint; - - mCam.LogBlocker(r); - } - - return true; -} - -bool Level::LoadAnimations(cJSON* level) -{ - cJSON* animations = cJSON_GetObjectItem(level, "animations"); - mAnim_names = (char**)malloc(cJSON_GetArraySize(animations) * sizeof(char*)); - for (int i = 0; i < cJSON_GetArraySize(animations); i++) - { - cJSON* anim_pack = cJSON_GetArrayItem(animations, i); - mAnim_names[i] = cJSON_GetObjectItem(anim_pack, "pack_name")->valuestring; - //gCons->ConsPrintf("Animation Pack Name: %s\n", anim_names[i]); - - cJSON* frame_size = cJSON_GetObjectItem(anim_pack, "frame_size"); - int h = cJSON_GetObjectItem(frame_size, "h")->valueint; - int w = cJSON_GetObjectItem(frame_size, "w")->valueint; - - cJSON* col_data = cJSON_GetObjectItem(anim_pack, "col_data"); - int off_x = cJSON_GetObjectItem(col_data, "off_x")->valueint; - int off_y = cJSON_GetObjectItem(col_data, "off_y")->valueint; - int col_h = cJSON_GetObjectItem(col_data, "col_h")->valueint; - int col_w = cJSON_GetObjectItem(col_data, "col_w")->valueint; - - cJSON* anim_set = cJSON_GetObjectItem(anim_pack, "anim_set"); - - FrameSet* frame_data = (FrameSet*)malloc(cJSON_GetArraySize(anim_set) * sizeof(FrameSet)); - int* Index = (int*)malloc(cJSON_GetArraySize(anim_set) * sizeof(int)); - - for (int j = 0; j < cJSON_GetArraySize(anim_set); j++) - { - cJSON* anim = cJSON_GetArrayItem(anim_set, j); - char* filename = cJSON_GetObjectItem(anim, "filename")->valuestring; - int frame_count = cJSON_GetObjectItem(anim, "frame_count")->valueint; - int frame_rate = cJSON_GetObjectItem(anim, "frame_rate")->valueint; - //int h = cJSON_GetObjectItem(anim, "h")->valueint; - //int w = cJSON_GetObjectItem(anim, "w")->valueint; - char* id_str = cJSON_GetObjectItem(anim, "id")->valuestring; - - int id = ConvertStringToSymbol(id_str); - //gCons->ConsPrintf("image source path: %s\n", filename); - frame_data[j] = FrameSet(mRen, filename, frame_count, frame_rate, h, w); - Index[j] = id; - } - AnimDataPack* pack = new AnimDataPack(cJSON_GetArraySize(anim_set), frame_data, Index); - pack->SetColData(off_x, off_y, col_h, col_w); - mAnimData.push_back(pack); - - - LoadAnimGraph(anim_pack); - } - - return true; -} - -bool Level::LoadAnimGraph(cJSON* anim_pack) -{ - AnimGraphData* anim_g = new AnimGraphData( *mAnimData.back() ); - - cJSON* loop_ids = cJSON_GetObjectItem(anim_pack, "loop_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(loop_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(loop_ids, i)->valuestring); - anim_g->DefineLoop(id); - } - anim_g->CreateTranisitionMatrix(); - - cJSON* transition_ids = cJSON_GetObjectItem(anim_pack, "transition_ids"); - for (int i = 0; i < (int)cJSON_GetArraySize(transition_ids); i++) - { - int id = ConvertStringToSymbol(cJSON_GetArrayItem(transition_ids, i)->valuestring); - anim_g->DefineTransitions(id); - } - - cJSON* anim_graph = cJSON_GetObjectItem(anim_pack, "anim_graph"); - for (int i = 0; i < (int)cJSON_GetArraySize(anim_graph); i++) - { - cJSON* loop = cJSON_GetArrayItem(anim_graph, i); - char* loop_name = cJSON_GetObjectItem(loop, "loop_name")->valuestring; - int init_id = ConvertStringToSymbol(loop_name); - - cJSON* transitions = cJSON_GetObjectItem(loop, "transitions"); - for(int j = 0; j < (int)cJSON_GetArraySize(transitions); j++) - { - char* transition = cJSON_GetArrayItem(transitions, j)->valuestring; - int trans_id = ConvertStringToSymbol(transition); - - int target_id = anim_g->GetLoopIDIndex(j); - - anim_g->PopulateTransitionMatrix(init_id, target_id, trans_id); - } - } - mAnimGraphs.push_back(anim_g); - - return false; -} - -bool Level::LoadActors(cJSON* level) -{ - cJSON* actors = cJSON_GetObjectItem(level, "actors"); - std::vector<ActorName*> ActorRefs; - - mAHM = ActorHandleManager(); - mSpatMon = SpatialMonitor(mHeight, mWidth, &mAHM); - - for (int i = 0; i < cJSON_GetArraySize(actors); i++) - { - cJSON* act = cJSON_GetArrayItem(actors, i); - - char* anim_pack = cJSON_GetObjectItem(act, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - AnimGraph* actor_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp(anim_pack, mAnim_names[j])) - { - actor_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(actor_pack != NULL); -#endif - - - SDL_Rect PosRect; - PosRect.x = cJSON_GetObjectItem(act, "x")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y")->valueint; - PosRect.h = actor_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = actor_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - SDL_Rect DrawRect; - DrawRect.x = actor_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = actor_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = actor_pack->GetH(); - DrawRect.w = actor_pack->GetW(); - - ActorName* ref = new ActorName; - ref->name = cJSON_GetObjectItem(act, "name")->valuestring; - - char* type = cJSON_GetObjectItem(act, "type")->valuestring; - if (!strcmp(type, "player")) - { - Player* actor = new Player(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); //needs a delete - ref->act = actor; - mInput->mFeed.Subscribe(actor); - - - mCam.SetFollowTarget(actor); - mCast.push_back(actor); - mPlayer = actor; - - AnimGraph* hat_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("sword", mAnim_names[j])) - { - hat_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - actor->SetSword(actor->AttachHat(new sword(hat_pack, actor, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib))); - } - else if (!strcmp(type, "test_blocker")) - { - Test_Blocker* actor = new Test_Blocker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "gate")) //Gate is a multiactor entity. - { - int dir = ConvertStringToSymbol(cJSON_GetObjectItem(act, "dir")->valuestring); - Gate* actor = new Gate(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, dir); - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - actor_pack->mFeed.Subscribe(actor); - - AnimGraph* winch_pack = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - if (!strcmp("winch", mAnim_names[j])) - { - winch_pack = new AnimGraph(mAnimGraphs.at(j)); - } - } - PosRect.h = winch_pack->GetAnimPack()->GetAnimData()->GetCol_h(); - PosRect.w = winch_pack->GetAnimPack()->GetAnimData()->GetCol_w(); - PosRect.y -= 29; - if (dir == LEFT) - { - PosRect.x += 7; - } - else //dir == right - { - PosRect.x -= (21); - } - - DrawRect.x = winch_pack->GetAnimPack()->GetAnimData()->GetOff_x(); - DrawRect.y = winch_pack->GetAnimPack()->GetAnimData()->GetOff_y(); - DrawRect.h = winch_pack->GetH(); - DrawRect.w = winch_pack->GetW(); - Winch* actor2 = new Winch(winch_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, actor, dir); - ref->act = actor2; //Gate ref refers to the paired winch because its more useful - actor2->mFeed.Subscribe(actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor2); - } - else if (!strcmp(type, "gateman")) //Gateman must be attached to a gate. currently hardcoded to actor name "gate0" - { - Gateman* actor = new Gateman(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring, FindRef(ActorRefs, "gate0")->GetHandle()); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "talker")) - { - Talker* actor = new Talker(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, cJSON_GetObjectItem(act, "lines")->valuestring); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "door")) - { - int x_off = cJSON_GetObjectItem(act, "x_off")->valueint; - int y_off = cJSON_GetObjectItem(act, "y_off")->valueint; - Door* actor = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - ref->act = actor; - PosRect.x = cJSON_GetObjectItem(act, "x2")->valueint; - PosRect.y = cJSON_GetObjectItem(act, "y2")->valueint; - Door* actor2 = new Door(actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib, x_off, y_off); - actor->SetTeleDest(actor2->GetTelePos()); - actor2->SetTeleDest(actor->GetTelePos()); - SDL_Rect* r = new SDL_Rect; - r->h = 0; - r->w = 0; - r->x = 100; - r->y = 100; - //actor->SetTeleDest(r); - //mSpatMon.LogActor(*actor); - //mSpatMon.LogActor(*actor2); - mCast.push_back(actor); - mCast.push_back(actor2); - } - else if (!strcmp(type, "pursuer")) - { - Pursuer* actor = new Pursuer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "wanderer")) - { - Wanderer* actor = new Wanderer(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else if (!strcmp(type, "rabbit")) - { - Rabbit* actor = new Rabbit(mColMap, actor_pack, PosRect, DrawRect, &mAHM, &mSpatMon, &mPrtLib, &mSoundLib); - ref->act = actor; - //mSpatMon.LogActor(*actor); - mCast.push_back(actor); - } - else - { - gCons->ConsPrintf("Failed to load actor: %s is an unrecognized actor type\n", type); - } - ActorRefs.push_back(ref); - } - - return true; -} - -bool Level::LoadParticles(cJSON* level) -{ - cJSON* particles = cJSON_GetObjectItem(level, "particles"); - for (int i = 0; i < cJSON_GetArraySize(particles); i++) - { - cJSON* prt = cJSON_GetArrayItem(particles, i); - - char* anim_pack = cJSON_GetObjectItem(prt, "anim_pack")->valuestring; - //gCons->ConsPrintf("sought set name: %s\n", anim_pack); - - //AnimDataPack* particle_anims = NULL; - AnimGraph* particle_anims = NULL; - for (int j = 0; j < (int)mAnimData.size(); j++) - { - //gCons->ConsPrintf("stored set name: %s\n", anim_names[j]); - if (!strcmp(anim_pack, mAnim_names[j])) - { - particle_anims = new AnimGraph(mAnimGraphs.at(j)); - } - } -#ifdef DEBUG - assert(particle_anims != NULL); -#endif - int prth = particle_anims->GetH(); - int prtw = particle_anims->GetW(); - - ParticleData* pd = new ParticleData; - pd->AnimData = particle_anims; - pd->Height = prth; - pd->Width = prtw; - pd->spat = &mSpatMon; - - mPrtLib.LogParticleData(pd, anim_pack); - return true; - } - return false; -} - -bool Level::LoadSounds(cJSON* level) -{ - cJSON* sounds = cJSON_GetObjectItem(level, "sounds"); - - for (int i = 0; i < cJSON_GetArraySize(sounds); i++) - { - cJSON* sound = cJSON_GetArrayItem(sounds, i); - char* fname = cJSON_GetObjectItem(sound, "filename")->valuestring; - char* name = cJSON_GetObjectItem(sound, "name" )->valuestring; - int vol = cJSON_GetObjectItem(sound, "vol" )->valueint; - - Mix_Chunk* snd = new Mix_Chunk; - snd = LoadSound(fname); - Mix_VolumeChunk(snd, vol); - - mSoundLib.LogSoundData(snd, name); - } - - cJSON* sound_regions = cJSON_GetObjectItem(level, "sound_regions"); - - for (int i = 0; i < cJSON_GetArraySize(sound_regions); i++) - { - cJSON* region = cJSON_GetArrayItem(sound_regions, i); - SDL_Rect reg_rect; - reg_rect.x = cJSON_GetObjectItem(region, "x")->valueint; - reg_rect.y = cJSON_GetObjectItem(region, "y")->valueint; - reg_rect.h = cJSON_GetObjectItem(region, "h")->valueint; - reg_rect.w = cJSON_GetObjectItem(region, "w")->valueint; - - RegionSound* rs = mSoundLib.SpawnRegionSound(reg_rect); - - cJSON* tracks = cJSON_GetObjectItem(region, "tracks"); - for (int j = 0; j < cJSON_GetArraySize(tracks); j++) - { - char* track = cJSON_GetArrayItem(tracks, j)->valuestring; - rs->LogTrack(mSoundLib.GetSoundData(track)); - } - } - - return false; -} - -bool Level::LoadHud(cJSON* level) -{ - cJSON* texs = cJSON_GetObjectItem(level, "hud_textures"); - - //Load LifeMeter Widget - char* life_base = cJSON_GetObjectItem(texs, "life_base")->valuestring; - char* life_bar = cJSON_GetObjectItem(texs, "life_bar" )->valuestring; - - SDL_Rect LifePos; - LifePos.h = 15; - LifePos.w = 250; - LifePos.x = 25; - LifePos.y = 25; - mHUD.LogWidget( new LifeMeter(mPlayer, LifePos, mRen, life_base, life_bar) ); - // - - //Load Fader widget - char* black = cJSON_GetObjectItem(texs, "fader")->valuestring; - - Fader* f = new Fader(mRen, black); - mPlayer->mFeed.Subscribe(f); - mHUD.LogWidget(f); - // - - //Load Dialogue Widget - char* text_box = cJSON_GetObjectItem(texs, "text_box")->valuestring; - - SDL_Rect DialoguePos; - DialoguePos.h = 0; - DialoguePos.w = 0; - DialoguePos.x = 300; - DialoguePos.y = 200; - - SDL_Color fg = {0,0,0}; - - Dialogue* d = new Dialogue(DialoguePos, mRen, "Tapestry.ttf", text_box, fg, mPlayer); - mPlayer->mFeed.Subscribe(d); - - mHUD.LogWidget(d); - // - - return true; -} - -bool Level::Load(const char* filename) -{ - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* level = cJSON_GetObjectItem(root, "level"); - - LoadWorld(level); - - LoadCamera(level); - - gDiagDraw = new DiagnosticDraw(mRen, mCam); - - LoadAnimations(level); - - LoadActors(level); - - LoadParticles(level); - - LoadSounds(level); - - LoadHud(level); - -// int cells[9]; - -// mSpatMon.GetAdjacentCells(36, cells); - - return true; -} - -bool Level::Update() -{ - ///Update Actors - for (int i = 0; i < (int)(mCast.size()); i++) - { - mCast.at(i)->ActorUpdate(); - } - ///Update Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - mPrtLib.GetParticles()->at(i)->ActorUpdate(); - } - - ///Draw HUD - mHUD.UpdateWidgets(); - - mCam.ActorFollow(mRen, 150, 75); - - ///Draw Backgrounds - for (int i = 0; i < (int)mBack.size(); i++) - { - DrawParallax(mRen, mBack.at(i), mCam, mParallax_back.at(i), mHeight, mWidth); - } - ///Draw Foregrounds - for (int i = 0; i < (int)mFore.size(); i++) - { - SDL_RenderCopy(mRen, mFore.at(i), mCam.GetCamView(), NULL); - } - - ///Draw Actors - for (int i = 0; i < (int)mCast.size(); i++) - { - DrawActor(mRen, *mCast.at(i), mCam); - } - - ///Draw Particles - for (int i = 0; i < (int)(mPrtLib.GetParticles()->size()); i++) - { - DrawActor(mRen, *mPrtLib.GetParticles()->at(i), mCam); - } - - ///Draw overlays - for (int l = 0; l < (int)mOver.size(); l++) - { - DrawParallax(mRen, mOver.at(l), mCam, mParallax_over.at(l), mHeight, mWidth); - } - - mHUD.DrawWidgets(); - - ///Play Sounds - mSoundLib.UpdateRegionSounds(mPlayer->GetPosition()); - mSoundLib.UpdatePointSounds(mCam.GetCenterX(), mCam.GetCenterY()); - - //gCons->ConsPrintf("%d channels are playing\n", Mix_Playing(-1)); - - ///Draw Diagnositic rectangles - gDiagDraw->Update(); - - return true; -} - -bool Level::EventProcess(Event eve) -{ - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/a7/a7d259c394586ccca0ac487b860e756a17852f17.svn-base b/.svn/pristine/a7/a7d259c394586ccca0ac487b860e756a17852f17.svn-base Binary files differ. diff --git a/.svn/pristine/a8/a82095dfb8afed31ae97192949705171d1e7f9e1.svn-base b/.svn/pristine/a8/a82095dfb8afed31ae97192949705171d1e7f9e1.svn-base Binary files differ. diff --git a/.svn/pristine/a8/a8d37e9056610a7516b7b770d42795583ab0104e.svn-base b/.svn/pristine/a8/a8d37e9056610a7516b7b770d42795583ab0104e.svn-base @@ -1,39 +0,0 @@ -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\vc140.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\main.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\loading.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\level.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\layer.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\input.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\hud.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\event.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\emitter.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\dialogue.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\diagnosticdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\context.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\console.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\cjson.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\camera.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\binarytree.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\animationgraph.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\animation.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\actorhandle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\actorcollision.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\actor.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\utils.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\terrain.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\symbol.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\sound.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\sequence.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\physics.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\particle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\miscdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\release\tapestryengine.exe -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\release\tapestryengine.ipdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\release\tapestryengine.iobj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\release\tapestryengine.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\cl.write.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\release\tapestryengine.tlog\link.write.1.tlog diff --git a/.svn/pristine/a9/a909522627b36fd7769141dcfda3a5162899a5b7.svn-base b/.svn/pristine/a9/a909522627b36fd7769141dcfda3a5162899a5b7.svn-base Binary files differ. diff --git a/.svn/pristine/a9/a90f8c9849617c53a4a7da234c485014062d28aa.svn-base b/.svn/pristine/a9/a90f8c9849617c53a4a7da234c485014062d28aa.svn-base @@ -1,37 +0,0 @@ -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.idb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\console.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\context.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\diagnosticdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\dialogue.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\emitter.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\event.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\hud.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\input.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\layer.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\level.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\loading.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\main.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\miscdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\particle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\physics.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sequence.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sound.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\symbol.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\terrain.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\utils.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actor.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actorcollision.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animation.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animationgraph.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\camera.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\cjson.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.ilk -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.exe -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.write.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.write.1.tlog diff --git a/.svn/pristine/a9/a94ff71fe029d9b5e3f73f615c2837ba2bef4114.svn-base b/.svn/pristine/a9/a94ff71fe029d9b5e3f73f615c2837ba2bef4114.svn-base @@ -1,132 +0,0 @@ -#include"Utils.h" -#include"Console.h" -#include "MiscDraw.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)floor((float)(act.GetDrawHeight()) * ((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)floor((float)(act.GetDrawWidth()) * ((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)floor((float)(act.GetDrawX() + act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)floor((float)(act.GetDrawY() + act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - return ScreenPos; -} - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW) -{ - int imgH; - int imgW; - SDL_QueryTexture(img, NULL, NULL, &imgW, &imgH); - - SDL_Rect clip; - clip.h = (int)(cam.GetCamView()->h * scale); - clip.w = (int)(cam.GetCamView()->w * scale); - clip.x = (int)(cam.GetCamX() / ( (worldW - cam.GetCamView()->w) / ( imgW - (cam.GetCamView()->w)*scale) )); - clip.y = (int)(cam.GetCamY() / ( (worldH - cam.GetCamView()->h) / ( imgH - (cam.GetCamView()->h)*scale) )); - -// gCons->ConsPrintf("para bound x: %i - %i\n", clip.x, clip.w + clip.x); -// gCons->ConsPrintf("para bound y: %i - %i\n", clip.y, clip.h + clip.y); - - SDL_RenderCopy(ren, img, &clip, NULL); - - return true; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame* RenderFrame = act.GetFrame(); - - if (RenderFrame != NULL) - { - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); //this is why LEFT and RIGHT have thier specific definitions - SDL_SetTextureAlphaMod(RenderFrame->FrameSource, act.GetOpacity()); - - SDL_RenderCopyEx(ren, RenderFrame->FrameSource, &(RenderFrame->FrameRect), &ScreenPos, 0, NULL, flip); - Node** hat_array = act.GetHats()->Dump(); - for (int i = 0; i < act.GetHats()->Size(); i++) - { - // if (((Hat*)( hat_array[i]->GetData() ))->IsEnabled()) - // { - // DrawActor(ren, *(Actor*)(hat_array[i]->GetData()), cam); - // } - } - } - else - { - //gCons->ConsPrintf("Actor frame is null\n"); - } - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} - -bool DrawText(SDL_Renderer* ren, TTF_Font* font, char* text, SDL_Color Text_c, SDL_Color Back_c) -{ - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(font, text, Text_c, Back_c); - if (!LineSur) - { - error = SDL_GetError(); - } - - SDL_SetColorKey(LineSur, SDL_TRUE, SDL_MapRGB(LineSur->format, 0xFF, 0x00, 0xFF)); - - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - - SDL_Rect TextRect; - - if (SDL_QueryTexture(LineTex, NULL, NULL, &TextRect.w, &TextRect.h)) - { - error = SDL_GetError(); - } - - SDL_Rect LinePosRect; - - LinePosRect.w = TextRect.w; - LinePosRect.h = TextRect.h; - LinePosRect.x = 0; - LinePosRect.y = 0; - //Why comment? -// if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) -// { -// error = SDL_GetError(); -// } - SDL_DestroyTexture(LineTex); - - return false; -} diff --git a/.svn/pristine/aa/aaef5112cbcbda373dd1478d1cc7ee4a6df2df6b.svn-base b/.svn/pristine/aa/aaef5112cbcbda373dd1478d1cc7ee4a6df2df6b.svn-base Binary files differ. diff --git a/.svn/pristine/aa/aafefe9abab6be9c1c00693cbc0197a43331dd49.svn-base b/.svn/pristine/aa/aafefe9abab6be9c1c00693cbc0197a43331dd49.svn-base @@ -1,157 +0,0 @@ -#include "AnimationGraph.h" - -//AnimGraphData functions -bool AnimGraphData::DefineLoop(int AnimID) -{ - if (mAnimData.GetAnimationData(AnimID) != NULL) - { - mLoopsAnimIDs.push_back(AnimID); - return true; - } - else - { - gCons->ConsPrintf("Invalid animation ID, Animation Graph could not define loop\n"); - return false; - } -} - -bool AnimGraphData::DefineTransitions(int AnimID) -{ - if (mAnimData.GetAnimationData(AnimID) != NULL) - { - mTransitionsAnimIDs.push_back(AnimID); - return true; - } - return false; -} - -bool AnimGraphData::DefineFireables(int AnimID) -{ - if (mAnimData.GetAnimationData(AnimID) != NULL) - { - mFireablesAnimIDs.push_back(AnimID); - return true; - } - else - { - gCons->ConsPrintf("Invalid animation ID, Animation Graph could not define fireable\n"); - return false; - } -} - -bool AnimGraphData::CreateTranisitionMatrix() //call only after all loops have been defined -{ - mTransitionMatrix = new int*[mLoopsAnimIDs.size()]; - - for (int i = 0; i < (int)mLoopsAnimIDs.size(); i++) - { - mTransitionMatrix[i] = new int[mLoopsAnimIDs.size()]; - for (int j = 0; j < (int)mLoopsAnimIDs.size(); j++) - { - mTransitionMatrix[i][j] = -1; //-1 represents no transition - } - } - return true; -} - -bool AnimGraphData::PopulateTransitionMatrix(int initState, int targetState, int transitionID) -{ - int initIndex = -1; - int targetIndex = -1; - - for (int i = 0; i < (int)mLoopsAnimIDs.size(); i++) - { - if (initState == mLoopsAnimIDs.at(i)) - { - initIndex = i; - } - if (targetState == mLoopsAnimIDs.at(i)) - { - targetIndex = i; - } - } - - if ((initIndex != -1) && (targetIndex != -1)) - { - mTransitionMatrix[initIndex][targetIndex] = transitionID; - return true; - } - return false; -} - -//Anim Graph Functions -int AnimGraph::GetTransitionID(int initState, int targetState) -{ - int initIndex = -1; - int targetIndex = -1; - - for (int i = 0; i < (int)mAGD->mLoopsAnimIDs.size(); i++) - { - if (initState == mAGD->mLoopsAnimIDs.at(i)) - { - initIndex = i; - } - if (targetState == mAGD->mLoopsAnimIDs.at(i)) - { - targetIndex = i; - } - } - - if ((initIndex != -1) && (targetIndex != -1)) - { - return mAGD->mTransitionMatrix[initIndex][targetIndex]; - } - else - { - return -1; - } -} - -Frame* AnimGraph::UpdateAnimation() -{ - if (mState != *mActorState) - { - if ( (GetTransitionID(mState, *mActorState) != -1) && mState != 0 ) - { - mCurrentFrame = mAnimPack.ActivateAnimation(GetTransitionID(mState, *mActorState), ONCE)->GetCurrentFrame(); - return &mCurrentFrame; - } - else - { - mState = *mActorState; - return &mCurrentFrame; - } - } - else - { - for (int i = 0; i < (int)mAGD->mLoopsAnimIDs.size(); i++) - { - if (mAGD->mLoopsAnimIDs.at(i) == mState) - { - mCurrentFrame = mAnimPack.ActivateAnimation(mAGD->mLoopsAnimIDs.at(i))->GetCurrentFrame(); - return &mCurrentFrame; - } - } - } - return NULL; -} - -Frame* AnimGraph::PlayOnce(int AnimID) -{ - mCurrentFrame = mAnimPack.ActivateAnimation(AnimID, ONCE)->GetCurrentFrame(); - return &mCurrentFrame; -} - -bool AnimGraph::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = *mActorState; - mFeed.EventProcess(Event(ANIM_COMPLETE, eve.GetEventData()->i)); - return true; - default: - gCons->ConsPrintf("Animation Graph asked to process unrecgonized event\n"); - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/ab/ab2c6470a7936ca638e12091207ac99184dd0a0f.svn-base b/.svn/pristine/ab/ab2c6470a7936ca638e12091207ac99184dd0a0f.svn-base Binary files differ. diff --git a/.svn/pristine/ab/ab369f16f87b16ebd1c3128c1a368a1a90f992f2.svn-base b/.svn/pristine/ab/ab369f16f87b16ebd1c3128c1a368a1a90f992f2.svn-base @@ -1,122 +0,0 @@ -#include "BinaryTree.h" -#include "Utils.h" - -bool Node::Insert(int i, void* data) -{ - return InsertNode(new Node(this, i, data)); -} - -Node* Node::Search(int i) -{ - if (mItem == i) { return this; } - else if (i < mItem && mLeft != NULL ) { return mLeft->Search(i); } - else if (mItem < i && mRight != NULL) { return mRight->Search(i); } - else //Item Could not be found - { - return NULL; - } -} - -int Node::Size(int i) -{ - i++; - if (mLeft != NULL) { i = mLeft->Size(i); } - if (mRight != NULL) { i = mRight->Size(i); } - return i; -} - -Node** Node::Dump(int index, Node** contents) -{ - if (contents == 0) - { - //contents = (Node**)malloc(Size()); - contents = new Node*[Size()]; - } - contents[index] = this; - index++; - - - if (mLeft != NULL ) { mLeft->Dump(index, contents); } - if (mRight != NULL) { mRight->Dump(index, contents); } - - return contents; -} - -bool Node::InsertNode(Node* n) -{ - - if (n->mItem < mItem) - { - if (mLeft == NULL) { mLeft = n; return true; } - else { return mLeft->InsertNode(n); } - } - - else if (mItem < n->mItem) - { - if (mRight == NULL) { mRight = n; return true; } - else { return mRight->InsertNode(n); } - } - else// i==mItem this should never happen - { - //error - return false; - } -} - -bool Node::InsertNodeAtRoot(Node* n) -{ - if (mParent != NULL) - { - return mParent->InsertNodeAtRoot(n); - } - else - { - bool r = InsertNode(n); - return r; - } -} - -void Node::Delete() -{ - if (mParent->mLeft == this ) { mParent->mLeft = NULL; } - else if (mParent->mRight == this) { mParent->mRight = NULL; } - else - { - return; //If the node being deleted is the root. - } - InsertNodeAtRoot(mLeft); - InsertNodeAtRoot(mRight); - mLeft->Delete(); - mRight->Delete(); - delete this; -} - -void Node::rotate_left() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(left_i); } - else if (mParent->mRight == this) { mParent->AttachRight(left_i); } - - Node* orphan = left_i->mLeft; - left_i->AttachLeft(this); - - mRight->AttachRight(orphan); -} - -void Node::rotate_right() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(right_i); } - else if (mParent->mRight == this) { mParent->AttachRight(right_i); } - - Node* orphan = right_i->mRight; - left_i->AttachRight(this); - - mRight->AttachLeft(orphan); -} diff --git a/.svn/pristine/ab/ab94bca54a203736e3651e39bf9b46a90641eda7.svn-base b/.svn/pristine/ab/ab94bca54a203736e3651e39bf9b46a90641eda7.svn-base Binary files differ. diff --git a/.svn/pristine/ac/ac30b1b67edb3ba2d710c4b56ef20c72479ec327.svn-base b/.svn/pristine/ac/ac30b1b67edb3ba2d710c4b56ef20c72479ec327.svn-base Binary files differ. diff --git a/.svn/pristine/ac/ace8ecae769a71ac9aaeac6c709a2f0328cdfa7c.svn-base b/.svn/pristine/ac/ace8ecae769a71ac9aaeac6c709a2f0328cdfa7c.svn-base Binary files differ. diff --git a/.svn/pristine/ad/ad21ea876bd455dbebeec26e6b2ec765541a46b0.svn-base b/.svn/pristine/ad/ad21ea876bd455dbebeec26e6b2ec765541a46b0.svn-base @@ -1,131 +0,0 @@ -#include"Utils.h" -#include"Console.h" -#include "MiscDraw.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)floor((float)(act.GetDrawHeight()) * ((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)floor((float)(act.GetDrawWidth()) * ((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)floor((float)(act.GetDrawX() + act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)floor((float)(act.GetDrawY() + act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - return ScreenPos; -} - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW) -{ - int imgH; - int imgW; - SDL_QueryTexture(img, NULL, NULL, &imgW, &imgH); - - SDL_Rect clip; - clip.h = (int)(cam.GetCamView()->h * scale); - clip.w = (int)(cam.GetCamView()->w * scale); - clip.x = (int)(cam.GetCamX() / ( (worldW - cam.GetCamView()->w) / ( imgW - (cam.GetCamView()->w)*scale) )); - clip.y = (int)(cam.GetCamY() / ( (worldH - cam.GetCamView()->h) / ( imgH - (cam.GetCamView()->h)*scale) )); - -// gCons->ConsPrintf("para bound x: %i - %i\n", clip.x, clip.w + clip.x); -// gCons->ConsPrintf("para bound y: %i - %i\n", clip.y, clip.h + clip.y); - - SDL_RenderCopy(ren, img, &clip, NULL); - - return true; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame* RenderFrame = act.GetFrame(); - - if (RenderFrame != NULL) - { - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); //this is why LEFT and RIGHT have thier specific definitions - SDL_SetTextureAlphaMod(RenderFrame->FrameSource, act.GetOpacity()); - - SDL_RenderCopyEx(ren, RenderFrame->FrameSource, &(RenderFrame->FrameRect), &ScreenPos, 0, NULL, flip); - for (int i = 0; i < (int)act.GetHats().size(); i++) - { - if (((Hat*)(act.GetHats().at(i)))->IsEnabled()) - { - DrawActor(ren, *act.GetHats().at(i), cam); - } - } - } - else - { - //gCons->ConsPrintf("Actor frame is null\n"); - } - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} - -bool DrawText(SDL_Renderer* ren, TTF_Font* font, char* text, SDL_Color Text_c, SDL_Color Back_c) -{ - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(font, text, Text_c, Back_c); - if (!LineSur) - { - error = SDL_GetError(); - } - - SDL_SetColorKey(LineSur, SDL_TRUE, SDL_MapRGB(LineSur->format, 0xFF, 0x00, 0xFF)); - - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - - SDL_Rect TextRect; - - if (SDL_QueryTexture(LineTex, NULL, NULL, &TextRect.w, &TextRect.h)) - { - error = SDL_GetError(); - } - - SDL_Rect LinePosRect; - - LinePosRect.w = TextRect.w; - LinePosRect.h = TextRect.h; - LinePosRect.x = 0; - LinePosRect.y = 0; - //Why comment? -// if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) -// { -// error = SDL_GetError(); -// } - SDL_DestroyTexture(LineTex); - - return false; -} diff --git a/.svn/pristine/ae/aec4cae9c241cf28ed12f06661c7e1c1b8cc040b.svn-base b/.svn/pristine/ae/aec4cae9c241cf28ed12f06661c7e1c1b8cc040b.svn-base Binary files differ. diff --git a/.svn/pristine/ae/aed928218aec9a4d191f5f1de931f71b4e0f637e.svn-base b/.svn/pristine/ae/aed928218aec9a4d191f5f1de931f71b4e0f637e.svn-base @@ -1,9 +0,0 @@ -#include "Emitter.h" - - -//Emitter Functions -bool Emitter::EmitParticle() -{ - mPrtMan->EventProcess(Event(EMIT_PARTICLE, this)); - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/ae/aedf301d0e353f371ca722d198ccee2545ceb7e0.svn-base b/.svn/pristine/ae/aedf301d0e353f371ca722d198ccee2545ceb7e0.svn-base Binary files differ. diff --git a/.svn/pristine/af/af035263b04307ab5b6e8e1d2281b8988f41c564.svn-base b/.svn/pristine/af/af035263b04307ab5b6e8e1d2281b8988f41c564.svn-base Binary files differ. diff --git a/.svn/pristine/af/afc83b06f97ba7704a514122d1661abcdb97c478.svn-base b/.svn/pristine/af/afc83b06f97ba7704a514122d1661abcdb97c478.svn-base @@ -1,108 +0,0 @@ -#include "BinaryTree.h" - -bool Node::Insert(int i, void* data) -{ - if (mActive == false) - { - PopulateNode(i, data); - } - else //mActive == true - { - if (i < mItem) { mLeft->Insert(i, data); } - else if (mItem < i) { mRight->Insert(i, data); } - else// i==mItem this should never happen - { - //error - return false; - } - } - return true; -} - -Node* Node::Search(int i) -{ - if (mActive == false)// target value not found - { - return NULL; - } - if (i < mItem) { return mLeft->Search(i); } - else if (mItem < i) { return mRight->Search(i); } - else// i==mItem - { - return this; - } -} - -bool Node::InsertNode(Node* n) -{ - n->mActive = false; - if (mActive == false) - { - mActive = true; - - mItem = n->mItem; - mData = n->GetData(); - - if (n->mLeft->IsActive()) { InsertNodeAtRoot(n->mLeft); } - if (n->mRight->IsActive()) { InsertNodeAtRoot(n->mRight); } - - return true; - } - else //mActive == true - { - if (n->mItem < mItem) { mLeft->InsertNode(n); } - else if (mItem < n->mItem) { mRight->InsertNode(n); } - else// i==mItem this should never happen - { - //error - return false; - } - return true; - } -} - -bool Node::InsertNodeAtRoot(Node* n) -{ - n->mActive = false; - if (mParent != NULL) - { - return mParent->InsertNodeAtRoot(n); - } - else - { - bool r = InsertNode(n); - //n->Delete(); - return r; - } -} - -void Node::Delete() -{ - mActive = false; - - InsertNodeAtRoot(mLeft); - InsertNodeAtRoot(mRight); -} - -bool Node::DisableTree() -{ - return false; -} - -void Node::PopulateNode(int item, void* data) //Should only be called by inactive nodes -{ - if (mActive == false) - { - mItem = item; - mData = data; - - mLeft = new Node(this); - mRight = new Node(this); - - mActive = true; - } - else - { - //error - } -}- \ No newline at end of file diff --git a/.svn/pristine/b0/b06aa133013d8cf8c865eaed518c0fc9e82196f2.svn-base b/.svn/pristine/b0/b06aa133013d8cf8c865eaed518c0fc9e82196f2.svn-base Binary files differ. diff --git a/.svn/pristine/b0/b0c464970c712cc6c252043dfaa292889c4caecb.svn-base b/.svn/pristine/b0/b0c464970c712cc6c252043dfaa292889c4caecb.svn-base Binary files differ. diff --git a/.svn/pristine/b1/b102775b51abad5d24f9f377b62158ac05465f95.svn-base b/.svn/pristine/b1/b102775b51abad5d24f9f377b62158ac05465f95.svn-base Binary files differ. diff --git a/.svn/pristine/b2/b238c7c17dafbaa17f8cd086f25afb7a60df13cb.svn-base b/.svn/pristine/b2/b238c7c17dafbaa17f8cd086f25afb7a60df13cb.svn-base Binary files differ. diff --git a/.svn/pristine/b3/b349a7a168aa0e156b6fec77a463957864302d63.svn-base b/.svn/pristine/b3/b349a7a168aa0e156b6fec77a463957864302d63.svn-base Binary files differ. diff --git a/.svn/pristine/b3/b354792797c7779d966a30e8662690466bf19fb0.svn-base b/.svn/pristine/b3/b354792797c7779d966a30e8662690466bf19fb0.svn-base @@ -1,75 +0,0 @@ -#ifndef TERRAIN_H -#define TERRAIN_H - -#include "Utils.h" -#include "Console.h" - -#define AIR 0x00 -#define GROUND 0x01 -#define PLATFORM 0x02 -#define WATER 0x03 - -//BUG: Diagonal Stretch occurs when world H and world W are not multiples - -class TerrainCollisionManager -{ -public: - - TerrainCollisionManager() : mCol_Map(NULL) {} - - TerrainCollisionManager(SDL_Surface* Col_Map); - - bool DetectTerrainIntersect(SDL_Rect* Bounds, int ttype1, int ttype2 = -1); - - bool DetectWorldEscape(SDL_Rect* Bounds); - - void DrawTerrain(); //scans the entire collison map and draws each pixel, utterly obliterates framerate - -protected: - SDL_Surface* mCol_Map; -}; - -class colman_Character : public TerrainCollisionManager -{ -public: - - colman_Character() {} - - colman_Character(SDL_Surface* Col_Map, SDL_Rect* PosData, SDL_Rect* DestData, int EdgeThickness); - - bool DetectEdgeCollision(SDL_Rect* Bounds); - - int DetectIncline(int StepSizeLimit); - - bool DetectFalling(); - - bool DetectDirectionalCollision(SDL_Rect* bounds, int dir); - - bool DetectSideCollision(SDL_Rect* Bounds); - - bool DetectSwim(); - - bool DetectSurface(); - - int FindSurface(); - - bool DetectWade(); - - bool SetPlaformCollision(bool b) - { - //gCons->ConsPrintf("Platform Collisions %i\n", b); - return mPlatformCollision = b; - } - -protected: - - bool mPlatformCollision; - - SDL_Rect* mPosition; - SDL_Rect* mDestination; - - int mWallThickness; - -}; - -#endif diff --git a/.svn/pristine/b4/b4e04e09d854fcf974faf45f72cd4e4e3d3d0c81.svn-base b/.svn/pristine/b4/b4e04e09d854fcf974faf45f72cd4e4e3d3d0c81.svn-base Binary files differ. diff --git a/.svn/pristine/b4/b4e5172babd0805a532745e96d2693638cce480a.svn-base b/.svn/pristine/b4/b4e5172babd0805a532745e96d2693638cce480a.svn-base Binary files differ. diff --git a/.svn/pristine/b6/b62fe4240dbfd52d132afd8ef96d373b8c16b26c.svn-base b/.svn/pristine/b6/b62fe4240dbfd52d132afd8ef96d373b8c16b26c.svn-base @@ -1,1333 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" -#include "ActorHandle.h" -#include "ActorCollision.h" - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mSpatCell(-1) -{ - mAnimGraph = AnimData; - mPosData = Pos; - mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - mAHM = AHM; - //if (AHM != NULL) { mHandle = AHM->EventProcess(Event(ASSIGN_HANDLE, (EventReceiver*)this)); } - if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself - - mSpat = spat; - if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collsion system. - - mParticleLib = prtLib; - mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: - gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - //((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DIALOGUE, mStr, mHandle)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - ((ActorHandleManager*)mAHM)->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - //( mAHM->EventProcess(Event(GET_ACTOR_ADDRESS, mGateH)) ).EventProcess(Event(INTERACT)); //Event process can only return bools. Might change later. - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; - CalcDrawRect(); - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); -} - -bool Mobile::ModifyActorPosition(int x, int y) -{ - mPosData.x = x + mPosData.x; - mPosData.y = y + mPosData.y; - mDrawPos = mPosData; - return false; -} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib ) , mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ -} - -bool Character::DetectFalling() -{ - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mHandle)) == false)) - { - return true; - } - else - { - return false; - } -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mHandle)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) //this should probably be lower - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mHandle))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mHandle))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mHandle)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); - return true; - } - else - { - return false; - } -} - -//Player Functions -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - //((EventReceiver*)(eve.GetReturnAddress()))->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalkerID = eve.GetEventData()->dd.talkerID; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mAHM->GetActorAddress(mTalkerID)->EventProcess(eve); - mTalkerID = -1; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(INTERACT, mHandle)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->i; - gCons->ConsPrintf("Player has received a damage event!\n"); - gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalkerID != -1) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalkerID != -1) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalkerID != -1) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mHandle)); - } - break; - case SDL_SCANCODE_Q: - if (mTalkerID != -1) { break; } - mWielded = !mWielded; - ((sword*)(mHats.at(mHatIndex_Sword)))->ToggleHat(mWielded); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWieled == false - { - mAnimID = RUN; - - } - break; - case JUMP: - mAnimID = JUMP; - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case IDLE: - default: - mAnimID = IDLE; - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) ) - { - mAnimID = FALL; - } - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Player::ActorUpdate() -{ - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - for (int i = 0; i < (int)mHats.size(); i++) - { - mHats.at(i)->ActorUpdate(); - } - - //SDL_Rect draw = mDrawPos; - //draw.x += mPosData.x; - //draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(draw); - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/b6/b63f2a7b3ee4d2a310c48cd4f61c3b22fb945e86.svn-base b/.svn/pristine/b6/b63f2a7b3ee4d2a310c48cd4f61c3b22fb945e86.svn-base Binary files differ. diff --git a/.svn/pristine/b6/b64224437461705677b471a128ad8151a2423dd8.svn-base b/.svn/pristine/b6/b64224437461705677b471a128ad8151a2423dd8.svn-base Binary files differ. diff --git a/.svn/pristine/b6/b6ccf4ae24670c6a3200d8dc3eef505520e709ea.svn-base b/.svn/pristine/b6/b6ccf4ae24670c6a3200d8dc3eef505520e709ea.svn-base Binary files differ. diff --git a/.svn/pristine/b7/b70869f6b8cc8445c711319e34246e2b4519604f.svn-base b/.svn/pristine/b7/b70869f6b8cc8445c711319e34246e2b4519604f.svn-base Binary files differ. diff --git a/.svn/pristine/b7/b77732042f30c0a5b130f321913738a62d2767a0.svn-base b/.svn/pristine/b7/b77732042f30c0a5b130f321913738a62d2767a0.svn-base Binary files differ. diff --git a/.svn/pristine/b7/b77b42e010a226d8dacfa5e7e9b7d40816a9b298.svn-base b/.svn/pristine/b7/b77b42e010a226d8dacfa5e7e9b7d40816a9b298.svn-base @@ -1,110 +0,0 @@ -#ifndef CONTEXT_H -#define CONTEXT_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -#include "Mapper.h" -#include "MiscDraw.h" - -class Context -{ -public: - - Context() {} - - virtual bool Load(const char* filename) = 0; - - virtual bool Update() = 0; - - SDL_Renderer* mRen; - EventFeed mFeed; - -protected: -}; - -class ContextManager : public EventReceiver -{ -public: - - ContextManager() {} - - ContextManager(char* GameDataPath) : mGameDataPath(GameDataPath) {} - - bool LogContext(Context* con, char* name); - - bool LoadContext(char* ContextName); - - bool ContextUpdate(); - - bool EventProcess(Event eve); - -protected: - - char* mGameDataPath; - Context* mActiveContext; - std::vector<Context*> mContexts; - std::vector<char*> mNames; - -}; - - -class GameOver : public Context, public EventReceiver -{ -public: - - GameOver() {}; - - GameOver(SDL_Renderer* ren, SDL_Texture* splash) - { - mRen = ren; - mSplash = splash; - } - - bool Update(); - - bool EventProcess(Event eve); - - EventFeed mFeed; - -protected: - - SDL_Texture* mSplash; - -}; - -class MapTest : public Context -{ -public: - - MapTest(SDL_Renderer* ren) : mRen(ren) - { - mMapper = new Mapper(); - } - - bool Load(const char* filename) - { - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* map_test = cJSON_GetObjectItem(root, "map_test"); - int h = cJSON_GetObjectItem(map_test, "h")->valueint; - int w = cJSON_GetObjectItem(map_test, "w")->valueint; - - mMapper->GenerateMap(h, w); - return false; - } - - bool Update() - { - mMapper->AddFeature(); - DrawMapTest(mRen, mMapper->GetMap()); - return false; - } - -protected: - - SDL_Renderer* mRen; - Mapper* mMapper; -}; - -#endif diff --git a/.svn/pristine/b7/b7a4f16c211aedd88bccef3f9657a9af33520f40.svn-base b/.svn/pristine/b7/b7a4f16c211aedd88bccef3f9657a9af33520f40.svn-base Binary files differ. diff --git a/.svn/pristine/b8/b85721680534f8c9f0ee0d858cacfb327c7b3e90.svn-base b/.svn/pristine/b8/b85721680534f8c9f0ee0d858cacfb327c7b3e90.svn-base Binary files differ. diff --git a/.svn/pristine/b8/b890ebdbc1d4230a5b06e181768171dc653cc0f1.svn-base b/.svn/pristine/b8/b890ebdbc1d4230a5b06e181768171dc653cc0f1.svn-base Binary files differ. diff --git a/.svn/pristine/b9/b9443fd81d30e82517aab902923bd07e6397b887.svn-base b/.svn/pristine/b9/b9443fd81d30e82517aab902923bd07e6397b887.svn-base Binary files differ. diff --git a/.svn/pristine/b9/b98d0395846e8d7f371f910ca6ce8e2c9afa9ddc.svn-base b/.svn/pristine/b9/b98d0395846e8d7f371f910ca6ce8e2c9afa9ddc.svn-base Binary files differ. diff --git a/.svn/pristine/b9/b9a729d1621116259f75f3ca856567f6bd9be864.svn-base b/.svn/pristine/b9/b9a729d1621116259f75f3ca856567f6bd9be864.svn-base Binary files differ. diff --git a/.svn/pristine/b9/b9e850b2854d13fcfc2a02ced94b5aa5690ad280.svn-base b/.svn/pristine/b9/b9e850b2854d13fcfc2a02ced94b5aa5690ad280.svn-base Binary files differ. diff --git a/.svn/pristine/ba/bac35858f02ed9cb9be760e78f9b98b1fdd9665a.svn-base b/.svn/pristine/ba/bac35858f02ed9cb9be760e78f9b98b1fdd9665a.svn-base Binary files differ. diff --git a/.svn/pristine/bb/bb680fdac05e4b5c089b3af14220d59e2bcf6a8c.svn-base b/.svn/pristine/bb/bb680fdac05e4b5c089b3af14220d59e2bcf6a8c.svn-base @@ -1,25 +0,0 @@ -#ifndef INPUT_H -#define INPUT_H - -#include "Utils.h" -#include "Event.h" - -class Control -{ -public: - - Control(); - - bool SendKeyEvent(int KeyID, int KeyState); - - void ProcessKeyboard(); - - EventFeed mFeed; - -protected: - - const Uint8* mKeyState; - Uint8 mLastState[512]; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/bb/bb923d41694b1379f89c82fea2254ad55edd3d21.svn-base b/.svn/pristine/bb/bb923d41694b1379f89c82fea2254ad55edd3d21.svn-base Binary files differ. diff --git a/.svn/pristine/bb/bbb0b8d5ba824451a2bee8528b1d6f03b8525815.svn-base b/.svn/pristine/bb/bbb0b8d5ba824451a2bee8528b1d6f03b8525815.svn-base Binary files differ. diff --git a/.svn/pristine/bc/bcdd1acb09ae81dbcf4cbbdd72939812f32f2921.svn-base b/.svn/pristine/bc/bcdd1acb09ae81dbcf4cbbdd72939812f32f2921.svn-base @@ -1,1014 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>68</LINE> - <COLUMN>6</COLUMN> - </SFA> - <DEFECTCODE>6246</DEFECTCODE> - <DESCRIPTION>Local declaration of 'overs' hides declaration of the same name in outer scope. For additional information, see previous declaration at line '64' of 'c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\level.cpp'.</DESCRIPTION> - <FUNCTION>Level::LoadWorld</FUNCTION> - <DECORATED>?LoadWorld@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>16</FUNCLINE> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>64</LINE> - <COLUMN>14</COLUMN> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'Index': the writable size is '(unsigned int)cJSON_GetArraySize(anim_set)*sizeof(int)' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>53</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'j' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'Index', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <DEFECTCODE>6011</DEFECTCODE> - <DESCRIPTION>Dereferencing NULL pointer 'Index'. </DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' may be NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'Index' is dereferenced, but may still be NULL</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mAnim_names': the writable size is '(unsigned int)cJSON_GetArraySize(animations)*sizeof(char *)' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume '&lt;branch condition&gt;')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>153</LINE> - <COLUMN>14</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>154</LINE> - <COLUMN>18</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>155</LINE> - <COLUMN>21</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>158</LINE> - <COLUMN>15</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>54</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume '&lt;branch condition&gt;')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'i' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mAnim_names', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'frame_data': the writable size is '(unsigned int)cJSON_GetArraySize(anim_set)*sizeof(FrameSet)' bytes, but '8216' bytes might be written.</DESCRIPTION> - <FUNCTION>Level::LoadAnimations</FUNCTION> - <DECORATED>?LoadAnimations@Level@@QAE_NPAUcJSON@@@Z</DECORATED> - <FUNCLINE>113</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>115</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>116</LINE> - <COLUMN>13</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>117</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>119</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>120</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>123</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>124</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>125</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>127</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>128</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>129</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>130</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>131</LINE> - <COLUMN>6</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>133</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>135</LINE> - <COLUMN>10</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'frame_data' is a 0 byte array</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>136</LINE> - <COLUMN>5</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>151</LINE> - <COLUMN>12</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>53</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>138</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;cJSON_GetArraySize(anim_set)')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>140</LINE> - <COLUMN>8</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>'j' is an In/Out argument to 'cJSON_GetArrayItem' (declared at c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\cjson.h:80)</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>141</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>142</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>143</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>146</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>148</LINE> - <COLUMN>7</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>level.cpp</FILENAME> - <LINE>150</LINE> - <COLUMN>17</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'frame_data', (outside its writable range)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/bd/bdb70fc76cf056ff538d1cac875bcce9afeae58d.svn-base b/.svn/pristine/bd/bdb70fc76cf056ff538d1cac875bcce9afeae58d.svn-base @@ -1,161 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -//#define RELEASE -#define DEBUG - - -#include <vector> -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include <stdlib.h> -#include <math.h> -#include "cJSON.h" -#include "SDL.h" -#include "SDL_ttf.h" -#include "SDL_Mixer.h" -#include "BinaryTree.h" - -//Screen size defines //These must be a whole multiple of the camera size otherwise pixel stretching occurs -#define SCREEN_W 1344 -#define SCREEN_H 756 -// - -//Direction Defines. Used by actor and terrain systems -#define DOWN 3 -#define UP 2 -#define LEFT 1 // must be 1 because of SDL draw function -#define RIGHT 0 // must be 0 because of SDL draw function -// - -//Time Defines -#define MS_PER_FRAME 16 //this is normal speed -//#define MS_PER_FRAME 40 //useful slow speed -#define FRAMES_PER_SECOND (1/MS_PER_FRAME)*1000 //62.5 @16ms - -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -// - - -//Actor State Defines -#define IDLE 10 -#define FALL 11 -#define JUMP_TO_FALL 13 -#define RUN 20 -#define RUN_DRAWN 25 -#define IDLE_BEGIN 30 -#define JUMP 40 -#define WANDER 50 -#define PURSUE 60 -#define SWIM 110 -#define TREAD 120 -#define LOOK 121 -#define EAT 122 -#define SLEEP 123 -#define PARTICLE 124 - -#define SWIM_LEFT 130 -#define SWIM_RIGHT 131 -#define SWIM_DOWN 132 -#define SWIM_UP 133 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 - -#define WALK_LEFT 0x5 -#define WALK_RIGHT 0x06 -#define WALK_DOWN 0x007 -#define WALK_UP 0x0008 - -#define GATE_UP 201 -#define GATE_DOWN 202 -#define GATE_LOWER 203 -#define GATE_LOWER_BEGIN 204 -#define GATE_RAISE 205 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 -#define HAZE 100 -// - -//This is a strange place for this stuff. Should maybe be its own ParticleTypeData.h -struct drift_data -{ - int mXspd; - int mYspd; -}; - -union ParticleTypeData -{ - bool NoData; - drift_data drift; -}; - -ParticleTypeData NullPTdata(); -// - -class Time -{ -public: - - Time() : mCycle(0) {}; - - int ProgressCycle() - { - mCycle = (mCycle + 1); - return mCycle; - } - - int GetCurrentCycle() - { - return mCycle; - } - - int GetCurrentMS() - { - return (mCycle*MS_PER_FRAME); - } -protected: - - int mCycle; -}; - -//int GetTimeF(); -int GetRealTimeMS(); - -SDL_Surface* LoadSurfaceBMP(const char* filename); - -TTF_Font* LoadFont(char* file, int ptsize); - -cJSON * LoadJSON(const char* filename); - -void PrintJSON(cJSON* json); - -bool ReadBTree(Node* root, char* str); - -void PrintBTree(Node* root); - -float GetSign(float x); - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2); - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point); //Detects collision between a rectangle "zone" and the center of a rectangle "point" - -int CalcDistance(int x1, int y1, int x2, int y2); - -int EvenOutcomes(int NumberofOutcomes); - -int RandRange(int min, int max); - -bool IsEven(int i); - -extern Time* gTime; - -#endif diff --git a/.svn/pristine/bd/bdd4d790d4c9bcbebbcc35816136cbb693125368.svn-base b/.svn/pristine/bd/bdd4d790d4c9bcbebbcc35816136cbb693125368.svn-base Binary files differ. diff --git a/.svn/pristine/bf/bf23c719bdedd59dafccec35a902b3820772636d.svn-base b/.svn/pristine/bf/bf23c719bdedd59dafccec35a902b3820772636d.svn-base Binary files differ. diff --git a/.svn/pristine/bf/bf6d3c2bd9a06991e068f5763447a38461149af8.svn-base b/.svn/pristine/bf/bf6d3c2bd9a06991e068f5763447a38461149af8.svn-base Binary files differ. diff --git a/.svn/pristine/bf/bfd8b298715f4ef1cefa51fdc1417f341cc04172.svn-base b/.svn/pristine/bf/bfd8b298715f4ef1cefa51fdc1417f341cc04172.svn-base Binary files differ. diff --git a/.svn/pristine/c0/c0a64aee929cd8e86aba9b1c8ed9e5e6b133c7cf.svn-base b/.svn/pristine/c0/c0a64aee929cd8e86aba9b1c8ed9e5e6b133c7cf.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c10a7cbed1eb8e71d70542b24a7a550a23a6ccaa.svn-base b/.svn/pristine/c1/c10a7cbed1eb8e71d70542b24a7a550a23a6ccaa.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c12094c7aa889f971c07c1f22216e00212e92c7a.svn-base b/.svn/pristine/c1/c12094c7aa889f971c07c1f22216e00212e92c7a.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c1351dafdb2553e35399e558ab46782416473682.svn-base b/.svn/pristine/c1/c1351dafdb2553e35399e558ab46782416473682.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c169a0cf8aa5d50892b2b8bbfe114e4d01bf01a5.svn-base b/.svn/pristine/c1/c169a0cf8aa5d50892b2b8bbfe114e4d01bf01a5.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c1c039bda5d0e066b24c90a64091fb08ef10893b.svn-base b/.svn/pristine/c1/c1c039bda5d0e066b24c90a64091fb08ef10893b.svn-base Binary files differ. diff --git a/.svn/pristine/c1/c1db2e7f9e37689de09f80bda36318f0a12a2f4e.svn-base b/.svn/pristine/c1/c1db2e7f9e37689de09f80bda36318f0a12a2f4e.svn-base Binary files differ. diff --git a/.svn/pristine/c2/c25d92e0729fb6a3161d234590c1a9be5872328e.svn-base b/.svn/pristine/c2/c25d92e0729fb6a3161d234590c1a9be5872328e.svn-base Binary files differ. diff --git a/.svn/pristine/c2/c2d9fc0dc1bcf4fb7651dfaabcc1381133fcdfaa.svn-base b/.svn/pristine/c2/c2d9fc0dc1bcf4fb7651dfaabcc1381133fcdfaa.svn-base Binary files differ. diff --git a/.svn/pristine/c3/c3db3437c5b3fe2cbd8cc45a8d0bf42b923cff05.svn-base b/.svn/pristine/c3/c3db3437c5b3fe2cbd8cc45a8d0bf42b923cff05.svn-base Binary files differ. diff --git a/.svn/pristine/c4/c4afa2f97810080d49ce314ba6e583a56bb2e8e5.svn-base b/.svn/pristine/c4/c4afa2f97810080d49ce314ba6e583a56bb2e8e5.svn-base @@ -1,71 +0,0 @@ -#ifndef BINARY_TREE_H -#define BINARY_TREE_H - -#define NULL 0 - -class Node -{ -public: - - Node() : mParent(NULL), mLeft(NULL), mRight(NULL), mActive(false) - {} - - Node(Node* parent) : mParent(parent), mLeft(NULL), mRight(NULL), mActive(false) - {} - - Node(int item, void* data) : mParent(NULL), mActive(false) //Used to create root node - { - PopulateNode(item, data); - } - - bool Insert(int i, void* data); - - Node* Search(int i); - - bool InsertNode(Node* n); - - bool InsertNodeAtRoot(Node* n); - - void Delete(); - - bool DisableTree(); - - bool IsActive() - { - return mActive; - } - - int GetItem() - { - return mItem; - } - - void* GetData() - { - return mData; - } - - Node* mParent; - Node* mLeft; - Node* mRight; - -protected: - - void PopulateNode(int item, void* data); //Should only be called by inactive nodes - - int mItem; - - void* mData; - - bool mActive; -}; - - -class BinaryTree -{ -public: -protected: - - Node mRoot; -}; -#endif- \ No newline at end of file diff --git a/.svn/pristine/c4/c4b3029bb5776f698af93d9f080f42cb350907f7.svn-base b/.svn/pristine/c4/c4b3029bb5776f698af93d9f080f42cb350907f7.svn-base Binary files differ. diff --git a/.svn/pristine/c4/c4e8bfdbf9cf68aac5097510ad1905f73fc96100.svn-base b/.svn/pristine/c4/c4e8bfdbf9cf68aac5097510ad1905f73fc96100.svn-base Binary files differ. diff --git a/.svn/pristine/c4/c4ecf0b17c9d938ad59bf1f5e7dc0fb2951abb27.svn-base b/.svn/pristine/c4/c4ecf0b17c9d938ad59bf1f5e7dc0fb2951abb27.svn-base Binary files differ. diff --git a/.svn/pristine/c5/c5469d9b56e5ca42078edadacd36844e27d0a405.svn-base b/.svn/pristine/c5/c5469d9b56e5ca42078edadacd36844e27d0a405.svn-base @@ -1,185 +0,0 @@ -#include "Utils.h" -#include "Console.h" -#include "MiscDraw.h" -#include "DiagnosticDraw.h" -#include "ActorCollision.h" -#include "Input.h" -#include "Actor.h" -#include "sound.h" - -#include "Dialogue.h" - -#include "Loading.h" -#include "Level.h" - -#include "BinaryTree.h" //remove later - -FILE _iob[] = { *stdin, *stdout, *stderr }; - -extern "C" FILE * __cdecl __iob_func(void) -{ - return _iob; -} - -int main(int argc, char *argv[]) -{ - gTime = new Time(); - gRandom = new Random(); - - TTF_Init(); -// BinaryTree TestTree = BinaryTree(new Node(10, NULL)); -// TestTree.Insert(5, NULL); -// TestTree.Insert(15, NULL); -// TestTree.Insert(7, NULL); -// TestTree.Insert(2, NULL); -// TestTree.Insert(20, NULL); -// TestTree.Insert(17, NULL); -// TestTree.Insert(35, NULL); -// TestTree.Insert(31, NULL); -// int s = TestTree.Size(); - -// Node** contents = TestTree.Dump(); - - //Node* tar = TestTree.Search(5);//->Delete(); - - //char buff1[256]; - //memset(buff1, 0, sizeof(buff1)); - //ReadBTree(&TestTree, buff1); - //tar->Delete(); - //char buff2[256]; - //memset(buff2, 0, sizeof(buff2)); - //ReadBTree(&TestTree, buff2); - -// Node* Tree = new Node(); -// Tree->InsertNode() - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_AUDIO) != 0) - { - gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); - SDL_Quit(); - return 1; - } - - Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048); -// Mix_Init(MIX_INIT_MP3); - - if (TTF_Init() != 0) - { - gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); - TTF_Quit(); - SDL_Quit(); - return 1; - } - - - SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); - if (window == NULL) - { - gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (ren == NULL) - { - gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - -#ifdef DEBUG - SDL_Color fg = { 255, 255, 255 }; - SDL_Color bg = { 0, 0, 255 }; - gCons = new Console("ARIAL.TTF", 12, fg, bg); - //gCons = new Console("Tapestry.ttf", 16, fg, bg); -#endif // DEBUG - - - Control ctrl = Control(); - - ContextManager ConMan = ContextManager("level_arid_land.json"); - - Level* lvl = new Level(ren, &ctrl); - ConMan.LogContext(lvl, "level"); - //DiagnosticDraw* gDiagDraw = new DiagnosticDraw(ren, lvl->mCam); - - Loading* load = new Loading(ren); - ConMan.LogContext(load, "load"); - - MapTest* map_test = new MapTest(ren); - ConMan.LogContext(map_test, "map_test"); - - ConMan.LoadContext("map_test"); - ConMan.ContextUpdate(); - SDL_RenderPresent(ren); - - //ConMan.LoadContext("load"); - //ConMan.ContextUpdate(); - //SDL_RenderPresent(ren); - - //ConMan.LoadContext("level"); - - //Mix_Chunk* dhaka = LoadSound("Dhaka.mp3"); - //Mix_Chunk* ftst = LoadSound("footstep.wav"); - - SDL_Event e; - - //if (Mix_PlayingMusic() == false) - //{ - //Mix_PlayMusic(dhaka, -1); - //Mix_Volume(1, 6); - //Mix_VolumeChunk(dhaka, 6); - //Mix_PlayChannel(1, dhaka, -1); - - //} - bool quit = false; - while (!quit) - { - int CycleStart = GetRealTimeMS(); - //srand(time(NULL)); - - SDL_RenderClear(ren); - - ctrl.ProcessKeyboard(); - - ConMan.ContextUpdate(); - - //PrintBTree(&TestTree); - -#ifdef DEBUG - gCons->DrawConsole(ren); //Console is currently causing crashes for unknown reasons. No changes made to console system; very confusing -#endif - - SDL_RenderPresent(ren); - - SDL_PollEvent(&e); - - if (e.type == SDL_QUIT) - { - quit = true; - } - - gTime->ProgressCycle(); - - int DeltaTime = (GetRealTimeMS() - CycleStart); - assert(DeltaTime >= 0); - - int DelayTime = MS_PER_FRAME - DeltaTime; - - if (DelayTime >= 0) - { - //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); - SDL_Delay(DelayTime); - } - else - { - //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); - } - } - - delete gCons; - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -}- \ No newline at end of file diff --git a/.svn/pristine/c5/c57271c3e479a8d0b80820394bd5b9380716c292.svn-base b/.svn/pristine/c5/c57271c3e479a8d0b80820394bd5b9380716c292.svn-base Binary files differ. diff --git a/.svn/pristine/c5/c588db9e75d0e963c2499980820f0fa6dc62f25f.svn-base b/.svn/pristine/c5/c588db9e75d0e963c2499980820f0fa6dc62f25f.svn-base Binary files differ. diff --git a/.svn/pristine/c5/c59fceca8a746d80f8087af35eeb9158fae48ec3.svn-base b/.svn/pristine/c5/c59fceca8a746d80f8087af35eeb9158fae48ec3.svn-base Binary files differ. diff --git a/.svn/pristine/c6/c688f9b032cb5333de5ede7f5a5a140933815624.svn-base b/.svn/pristine/c6/c688f9b032cb5333de5ede7f5a5a140933815624.svn-base Binary files differ. diff --git a/.svn/pristine/c6/c6a0d9884228ec5fd060c99112edbc70db767365.svn-base b/.svn/pristine/c6/c6a0d9884228ec5fd060c99112edbc70db767365.svn-base Binary files differ. diff --git a/.svn/pristine/c6/c6b32991259428367a509033e2b7d77dced37b19.svn-base b/.svn/pristine/c6/c6b32991259428367a509033e2b7d77dced37b19.svn-base Binary files differ. diff --git a/.svn/pristine/c7/c751945e0712468cd05fd40ccb430fd3f2187d92.svn-base b/.svn/pristine/c7/c751945e0712468cd05fd40ccb430fd3f2187d92.svn-base Binary files differ. diff --git a/.svn/pristine/c7/c7a1a481997bd6f119345db9c161bdf00b5f6527.svn-base b/.svn/pristine/c7/c7a1a481997bd6f119345db9c161bdf00b5f6527.svn-base Binary files differ. diff --git a/.svn/pristine/c7/c7d1e2c08d1ef58be7d6452c6a2821c63ee7edc1.svn-base b/.svn/pristine/c7/c7d1e2c08d1ef58be7d6452c6a2821c63ee7edc1.svn-base Binary files differ. diff --git a/.svn/pristine/c7/c7dd5ec4035cda96c4e34d2e4c645732f2560492.svn-base b/.svn/pristine/c7/c7dd5ec4035cda96c4e34d2e4c645732f2560492.svn-base @@ -1,77 +0,0 @@ -#include "Sequence.h" - -Sequence::Sequence(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : mAnimPack(pck), mPrtLib(prtlib), mSndLib(sndlib), mPlaying(false), mLooping(true) -{ - for(int i = 0; i < mAnimPack->GetAnimData()->GetAnimCount(); i++) - { - mAnimPack->GetAnimationDirect(i)->mFeed.Subscribe(this); - } -} - -seq_player_idle::seq_player_idle(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : Sequence(pck, prtlib, sndlib) -{ -} - -Frame seq_player_idle::Run() -{ - if (mLooping == false) - { - return mAnimPack->ActivateAnimation(IDLE_BEGIN, ONCE)->GetCurrentFrame(); - } - else - { - return mAnimPack->ActivateAnimation(IDLE)->GetCurrentFrame(); - } -} - -bool seq_player_idle::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - if (eve.GetEventData()->i == IDLE_BEGIN) - { - mLooping = true; - } - default: - gCons->ConsPrintf("Sequence asked to process unrecognized event\n"); - } - return false; -} - - -seq_player_run::seq_player_run(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib) : Sequence(pck, prtlib, sndlib) -{ -} - -Frame seq_player_run::Run() -{ - return mAnimPack->ActivateAnimation(RUN)->GetCurrentFrame(); -} - -bool seq_player_run::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - if (eve.GetEventData()->i == IDLE_BEGIN) - { - mLooping = true; - } - default: - gCons->ConsPrintf("Sequence asked to process unrecognized event\n"); - } - return false; -} - -SequenceGraph::SequenceGraph(AnimPack pck, EventReceiver* prtlib, EventReceiver* sndlib) : mAnimPack(pck) -{ -} - -bool SequenceGraph::LogSequence(Sequence* seq, int ID) -{ - mSeqs.push_back(seq); - mIDs.push_back(ID); - seq->SetSequenceGraph(this); - return false; -}- \ No newline at end of file diff --git a/.svn/pristine/c8/c84e4e9421c2258f3fcdcccb54f8cd57e4986f26.svn-base b/.svn/pristine/c8/c84e4e9421c2258f3fcdcccb54f8cd57e4986f26.svn-base Binary files differ. diff --git a/.svn/pristine/c8/c85c86c938b9dd92a222ff73d7d15140140952e3.svn-base b/.svn/pristine/c8/c85c86c938b9dd92a222ff73d7d15140140952e3.svn-base Binary files differ. diff --git a/.svn/pristine/c8/c8844d3186c8855c1d62f985d23fc351d4a33914.svn-base b/.svn/pristine/c8/c8844d3186c8855c1d62f985d23fc351d4a33914.svn-base Binary files differ. diff --git a/.svn/pristine/c8/c89fa2bda8a4b16d3b55047945b676378b518be4.svn-base b/.svn/pristine/c8/c89fa2bda8a4b16d3b55047945b676378b518be4.svn-base Binary files differ. diff --git a/.svn/pristine/c8/c8a204146cb1e6269639d8add7c7571ff2d7042e.svn-base b/.svn/pristine/c8/c8a204146cb1e6269639d8add7c7571ff2d7042e.svn-base @@ -1,1517 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" -#include "ActorHandle.h" -#include "ActorCollision.h" - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mSpatCell(-1) -{ - mAnimGraph = AnimData; - mPosData = Pos; - mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - mAHM = AHM; - //if (AHM != NULL) { mHandle = AHM->EventProcess(Event(ASSIGN_HANDLE, (EventReceiver*)this)); } - if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself - - mSpat = spat; - if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collsion system. - - mParticleLib = prtLib; - mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: - gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - //((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DIALOGUE, mStr, mHandle)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - ((ActorHandleManager*)mAHM)->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - //( mAHM->EventProcess(Event(GET_ACTOR_ADDRESS, mGateH)) ).EventProcess(Event(INTERACT)); //Event process can only return bools. Might change later. - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - ((Actor*)(eve.GetEventData()->p))->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; - CalcDrawRect(); -// mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); -} - -bool Mobile::ModifyActorPosition(int x, int y) -{ - mPosData.x = x + mPosData.x; - mPosData.y = y + mPosData.y; - mDrawPos = mPosData; - return false; -} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib ) , mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ -} - -bool Character::DetectFalling() -{ - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mHandle)) == false)) - { - return true; - } - else - { - return false; - } -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mHandle)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) //this should probably be lower - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mHandle))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mHandle))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mHandle)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); - return true; - } - else - { - return false; - } -} - -//Player Functions -Player::Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalkerID(-1), mHP(100), mHPmax(100), mRecover(0), mTouch(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mTouch.h = Pos.h; - mTouch.w = 18; -// ((sword*)(mAHM->GetActorAddress(mHatIndex_Sword)))->ToggleHat(true); -} - -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - //((EventReceiver*)(eve.GetReturnAddress()))->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData())); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalkerID = eve.GetEventData()->dd.talkerID; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mAHM->GetActorAddress(mTalkerID)->EventProcess(eve); - mTalkerID = -1; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(INTERACT, mHandle)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->i; - gCons->ConsPrintf("Player has received a damage event!\n"); - gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalkerID != -1) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalkerID != -1) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalkerID != -1) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mHandle)); - } - break; - case SDL_SCANCODE_Q: - if (mTalkerID != -1) { break; } - mWielded = !mWielded; - //((sword*)(mAHM->GetActorAddress(mHatIndex_Sword)))->ToggleHat(mWielded); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWielded == false - { - mAnimID = RUN; - } - break; - case JUMP: - if (mWielded == true) - { - mAnimID = JUMP_DRAWN; - } - else - { - mAnimID = JUMP; - } - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case IDLE: - default: - if (mWielded == true) - { - mAnimID = IDLE_DRAWN; - } - else - { - mAnimID = IDLE; - } - //break; - if (mColMan.DetectSwim() == true) //overwrite previous logic if this condition is true - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) ) - { - if (mWielded == true) - { - mAnimID = FALL_DRAWN; - } - else - { - mAnimID = FALL; - } - } - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Player::ActorUpdate() -{ - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - - mAHM->GetActorAddress(mHatIndex_Sword)->ActorUpdate(); - -// Node** hat_array = mHats.Dump(); -// for (int i = 0; i < mHats.Size(); i++) -// { -// mAHM->GetActorAddress(hat_array[i]->GetItem())->ActorUpdate(); -// } - - //SDL_Rect draw = mDrawPos; - //draw.x += mPosData.x; - //draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(draw); - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - -//Sludge_Seal functions - -bool Sludge_Seal::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - Actor* target = mAHM->GetActorAddress(mTarget); - - if ((target->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((target->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Sludge_Seal::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Sludge_Seal::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->i == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = eve.GetEventData()->i; - - if ((rest(50) == false) && (abs(mAHM->GetActorAddress(mTarget)->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Sludge_Seal::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - break; - case IDLE: - default: - mAnimID = IDLE; - - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Sludge_Seal::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ((170 - mPosData.w) / 2); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -// - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/c9/c944c2e4adec5494570158a1f5a92d0558099932.svn-base b/.svn/pristine/c9/c944c2e4adec5494570158a1f5a92d0558099932.svn-base Binary files differ. diff --git a/.svn/pristine/c9/c9a65c4137b9c575d436bf77e205e78fa623b462.svn-base b/.svn/pristine/c9/c9a65c4137b9c575d436bf77e205e78fa623b462.svn-base Binary files differ. diff --git a/.svn/pristine/ca/ca12fdfce61a2e8da4957b685df1e69782895918.svn-base b/.svn/pristine/ca/ca12fdfce61a2e8da4957b685df1e69782895918.svn-base Binary files differ. diff --git a/.svn/pristine/ca/ca1a54dc6bcd4e52b0c2311ea3181f9091caafc8.svn-base b/.svn/pristine/ca/ca1a54dc6bcd4e52b0c2311ea3181f9091caafc8.svn-base Binary files differ. diff --git a/.svn/pristine/ca/cafe8d0198df16000da85da4e336491632aef83a.svn-base b/.svn/pristine/ca/cafe8d0198df16000da85da4e336491632aef83a.svn-base Binary files differ. diff --git a/.svn/pristine/cb/cb3f7d6b20829417adefefa5b001436def09e314.svn-base b/.svn/pristine/cb/cb3f7d6b20829417adefefa5b001436def09e314.svn-base Binary files differ. diff --git a/.svn/pristine/cd/cd6a85bee1f5bf3f39d6e87688f51be68b284630.svn-base b/.svn/pristine/cd/cd6a85bee1f5bf3f39d6e87688f51be68b284630.svn-base Binary files differ. diff --git a/.svn/pristine/cd/cd737789e48f9cf9e6fb050996f0779129d809ce.svn-base b/.svn/pristine/cd/cd737789e48f9cf9e6fb050996f0779129d809ce.svn-base Binary files differ. diff --git a/.svn/pristine/cd/cdf3504dcc29397acb565acc0ea2b6966d56394e.svn-base b/.svn/pristine/cd/cdf3504dcc29397acb565acc0ea2b6966d56394e.svn-base @@ -1,66 +0,0 @@ -#ifndef CONSOLE_H -#define CONSOLE_H - -#include "Utils.h" - - -#define LINE_LIMIT 40 -#define LINE_SIZE 100 -#define CONSOLE_TEXT_LIMIT ((LINE_LIMIT+1)*LINE_SIZE) - -class ConsoleStringManager -{ -public: - ConsoleStringManager(); - - void AddLine(char* string, int CharCount); - - void ConsoleLog(char* msg); - - void ConsolePrintf(char* fmt, ...); - - char* GetLine(int x) - { - return mLines[x]; - } - - int GetNextLineIndex() - { - return mNextLineIndex; - } - -protected: - - char* mLines[LINE_LIMIT]; - int mNextLineIndex; - - char mText[CONSOLE_TEXT_LIMIT]; - char* mEndPointer; - - -}; - -class Console -{ -public: - Console(char* filename, int ptsize, SDL_Color Text, SDL_Color BG); - - void ConsPrintf(char* fmt, ...); - - void DrawConsole(SDL_Renderer* ren); - - void DrawConsoleReadout(SDL_Renderer* ren, int x, int y); - -protected: - TTF_Font* mFont; - SDL_Color mText; - SDL_Color mBG; - SDL_Rect mTextRect; - SDL_Rect mLinePosRect; - ConsoleStringManager mCSM; -}; - - -extern Console* gCons; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/cd/cdff0b4eb62a5dfeafc875e9725b5c71aa0ecdd5.svn-base b/.svn/pristine/cd/cdff0b4eb62a5dfeafc875e9725b5c71aa0ecdd5.svn-base Binary files differ. diff --git a/.svn/pristine/cf/cfee0bcd7f2231a4b922986ba68096529dae2a49.svn-base b/.svn/pristine/cf/cfee0bcd7f2231a4b922986ba68096529dae2a49.svn-base Binary files differ. diff --git a/.svn/pristine/d0/d04dca3a1ff86c2fb34bdb9a9e5c29e7719f243f.svn-base b/.svn/pristine/d0/d04dca3a1ff86c2fb34bdb9a9e5c29e7719f243f.svn-base @@ -1,40 +0,0 @@ -#include "symbol.h" - -int ConvertStringToSymbol(char * str) -{ - - if (!strcmp(str, "IDLE") ) { return IDLE; } - else if (!strcmp(str, "IDLE_DRAWN") ) { return IDLE_DRAWN; } - else if (!strcmp(str, "RUN") ) { return RUN; } - else if (!strcmp(str, "RUN_DRAWN") ) { return RUN_DRAWN; } - else if (!strcmp(str, "JUMP") ) { return JUMP; } - else if (!strcmp(str, "JUMP_DRAWN") ) { return JUMP_DRAWN; } - else if (!strcmp(str, "JUMP_TO_FALL") ) { return JUMP_TO_FALL; } - else if (!strcmp(str, "JUMP_TO_FALL_DRAWN") ) { return JUMP_TO_FALL_DRAWN; } - else if (!strcmp(str, "FALL") ) { return FALL; } - else if (!strcmp(str, "FALL_DRAWN") ) { return FALL_DRAWN; } - else if (!strcmp(str, "IDLE_BEGIN") ) { return IDLE_BEGIN; } - else if (!strcmp(str, "IDLE_BEGIN_DRAWN") ) { return IDLE_BEGIN_DRAWN; } - else if (!strcmp(str, "SWIM") ) { return SWIM; } - else if (!strcmp(str, "SWIM_BEGIN") ) { return SWIM_BEGIN; } - else if (!strcmp(str, "TREAD") ) { return TREAD; } - else if (!strcmp(str, "LOOK") ) { return LOOK; } - else if (!strcmp(str, "EAT") ) { return EAT; } - else if (!strcmp(str, "SLEEP") ) { return SLEEP; } - else if (!strcmp(str, "PARTICLE") ) { return PARTICLE; } - else if (!strcmp(str, "SPLASH") ) { return SPLASH; } - else if (!strcmp(str, "HAZE") ) { return HAZE; } - else if (!strcmp(str, "GATE_UP") ) { return GATE_UP; } - else if (!strcmp(str, "GATE_DOWN") ) { return GATE_DOWN; } - else if (!strcmp(str, "GATE_LOWER") ) { return GATE_LOWER; } - else if (!strcmp(str, "GATE_LOWER_BEGIN") ) { return GATE_LOWER_BEGIN; } - else if (!strcmp(str, "GATE_RAISE") ) { return GATE_RAISE; } - else if (!strcmp(str, "LEFT") ) { return LEFT; } - else if (!strcmp(str, "RIGHT") ) { return RIGHT; } - else if (!strcmp(str, "NONE") ) { return -1; } - else - { - gCons->ConsPrintf("%s : unrecognized string\n", str); - return NULL; - } -} diff --git a/.svn/pristine/d0/d0822d62aed9de9d158f4a030ab44f37201ada2a.svn-base b/.svn/pristine/d0/d0822d62aed9de9d158f4a030ab44f37201ada2a.svn-base Binary files differ. diff --git a/.svn/pristine/d0/d0e4009f48f467babe7a016b10f92b6dbd690c32.svn-base b/.svn/pristine/d0/d0e4009f48f467babe7a016b10f92b6dbd690c32.svn-base Binary files differ. diff --git a/.svn/pristine/d0/d0f04486a5f873c4582ed8694321fa6f6687c2ce.svn-base b/.svn/pristine/d0/d0f04486a5f873c4582ed8694321fa6f6687c2ce.svn-base Binary files differ. diff --git a/.svn/pristine/d2/d245192975652624cdc0d961c61c223fa5fa05fa.svn-base b/.svn/pristine/d2/d245192975652624cdc0d961c61c223fa5fa05fa.svn-base Binary files differ. diff --git a/.svn/pristine/d3/d309eec9b948ea21ce1ad6ea271b9f810aed49bc.svn-base b/.svn/pristine/d3/d309eec9b948ea21ce1ad6ea271b9f810aed49bc.svn-base Binary files differ. diff --git a/.svn/pristine/d3/d38e9d66f505523f29ace0958cbd4e12e92bd613.svn-base b/.svn/pristine/d3/d38e9d66f505523f29ace0958cbd4e12e92bd613.svn-base Binary files differ. diff --git a/.svn/pristine/d3/d3b3e7217bdf7bc7f93559191c2634eb4a396365.svn-base b/.svn/pristine/d3/d3b3e7217bdf7bc7f93559191c2634eb4a396365.svn-base @@ -1,41 +0,0 @@ -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\vc140.idb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\context.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\diagnosticdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\dialogue.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\emitter.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\event.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\hud.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\input.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\layer.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\level.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\loading.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\main.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\mapper.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\miscdraw.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\particle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\physics.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sequence.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\sound.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\symbol.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\terrain.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\utils.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actor.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actorcollision.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\actorhandle.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animation.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\animationgraph.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\binarytree.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\bones.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\camera.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\cjson.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\console.obj -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.ilk -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.exe -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\debug\tapestryengine.pdb -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\cl.write.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.command.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.read.1.tlog -c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\debug\tapestryengine.tlog\link.write.1.tlog diff --git a/.svn/pristine/d3/d3b991a30201eea33280dbdcff588c190188483b.svn-base b/.svn/pristine/d3/d3b991a30201eea33280dbdcff588c190188483b.svn-base Binary files differ. diff --git a/.svn/pristine/d4/d411bf782a7f9fdc4d1a7d0c934c8ff874d16b07.svn-base b/.svn/pristine/d4/d411bf782a7f9fdc4d1a7d0c934c8ff874d16b07.svn-base Binary files differ. diff --git a/.svn/pristine/d4/d4e2747346daf14a420bd1c8fa6d85a367a643d6.svn-base b/.svn/pristine/d4/d4e2747346daf14a420bd1c8fa6d85a367a643d6.svn-base @@ -1 +0,0 @@ -#include "Layer.h"- \ No newline at end of file diff --git a/.svn/pristine/d4/d4fedbbf3ae98f6fead4c2d0dd4f3b147e69ce08.svn-base b/.svn/pristine/d4/d4fedbbf3ae98f6fead4c2d0dd4f3b147e69ce08.svn-base Binary files differ. diff --git a/.svn/pristine/d5/d52c93206df0d4854e58c14d082e6a657a662d1e.svn-base b/.svn/pristine/d5/d52c93206df0d4854e58c14d082e6a657a662d1e.svn-base Binary files differ. diff --git a/.svn/pristine/d5/d58261f1bde731622b0dbb30f4e4bfdf9d91b2bc.svn-base b/.svn/pristine/d5/d58261f1bde731622b0dbb30f4e4bfdf9d91b2bc.svn-base Binary files differ. diff --git a/.svn/pristine/d6/d62636d8caec13f04e28442a0a6fa1afeb024bbb.svn-base b/.svn/pristine/d6/d62636d8caec13f04e28442a0a6fa1afeb024bbb.svn-base @@ -1 +0,0 @@ -ÿþ- \ No newline at end of file diff --git a/.svn/pristine/d6/d634aaa475da18ac7d649a5f82879cb2d281dac3.svn-base b/.svn/pristine/d6/d634aaa475da18ac7d649a5f82879cb2d281dac3.svn-base Binary files differ. diff --git a/.svn/pristine/d6/d63dc8a04ed0e47fbe495675cb79047c8f789cfb.svn-base b/.svn/pristine/d6/d63dc8a04ed0e47fbe495675cb79047c8f789cfb.svn-base Binary files differ. diff --git a/.svn/pristine/d6/d6f5e8a6710c093cbab851008d6fda4004367b6b.svn-base b/.svn/pristine/d6/d6f5e8a6710c093cbab851008d6fda4004367b6b.svn-base Binary files differ. diff --git a/.svn/pristine/d7/d77919a37dcdba7740bd2854a42a497b5f115b3d.svn-base b/.svn/pristine/d7/d77919a37dcdba7740bd2854a42a497b5f115b3d.svn-base Binary files differ. diff --git a/.svn/pristine/d7/d77eb30f84d1d8ef30ff39c6fbd824380f89e6cf.svn-base b/.svn/pristine/d7/d77eb30f84d1d8ef30ff39c6fbd824380f89e6cf.svn-base @@ -1,21 +0,0 @@ -#include "Loading.h" - -bool Loading::Load(const char* filename) -{ - - cJSON* root = LoadJSON(filename); - //PrintJSON(root); - cJSON* loading = cJSON_GetObjectItem(root, "loading"); - - char* SplashPath = cJSON_GetObjectItem(loading, "splash")->valuestring; - - mSplash = SDL_CreateTextureFromSurface(mRen, LoadSurfaceBMP(SplashPath)); - return true; -} - -bool Loading::Update() -{ - SDL_RenderCopy(mRen, mSplash , NULL, NULL); - - return true; -} diff --git a/.svn/pristine/d7/d7b3c33ff348a6363bc54fe12517d1675cb178d4.svn-base b/.svn/pristine/d7/d7b3c33ff348a6363bc54fe12517d1675cb178d4.svn-base Binary files differ. diff --git a/.svn/pristine/d7/d7b818c102e3a23ca5fbccb35e32026c0b4b99d0.svn-base b/.svn/pristine/d7/d7b818c102e3a23ca5fbccb35e32026c0b4b99d0.svn-base @@ -1,212 +0,0 @@ -#include "Utils.h" -#include "DiagnosticDraw.h" -#include "Console.h" - -ParticleTypeData NullPTdata() -{ - ParticleTypeData ptData; - ptData.NoData = true; - return ptData; -} - -Time* gTime = NULL; - -//int GetTimeF() //measures in frames -//{ -// int time = (clock() / CLOCKS_PER_FRAME); -// return time; -//} - -int GetRealTimeMS() //measures in milliseconds -{ - int time = (clock() / (CLOCKS_PER_SEC / 1000)); - return time; -} - -SDL_Surface* LoadSurfaceBMP(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\imgs\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\imgs\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - SDL_Surface* surface = SDL_LoadBMP(strcat(pathbuffer, filename)); - if (surface == NULL) - { - gCons->ConsPrintf("SDL_LoadBMP Error: %s", SDL_GetError()); - } - - SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF)); - - return surface; -} - -TTF_Font* LoadFont(char* filename, int ptsize) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\fonts\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\fonts\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - char* fullpath = strcat(pathbuffer, filename); - - TTF_Font* font = TTF_OpenFont(fullpath, ptsize); - - const char* error = TTF_GetError(); - -// int msgboxID = MessageBox( -// NULL, -// (LPCSTR)error, -// (LPCSTR)L"Account Details", -// MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2 -// ); - - assert(font != NULL); - - //gCons->ConsPrintf(fullpath); - - return font; -} -cJSON * LoadJSON(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\json\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\json\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - strcat(pathbuffer, filename); - - struct stat filestats; - stat(pathbuffer, &filestats); - - char* filecontent = (char*)malloc( (filestats.st_size + 1) ); - - FILE* fp; - fp = fopen(pathbuffer, "rt"); - - size_t size = fread(filecontent, 1, filestats.st_size, fp); - fclose(fp); - - filecontent[size] = 0; - - //gCons->ConsPrintf("%s\n", filecontent); - - return cJSON_Parse(filecontent); -} - -void PrintJSON(cJSON* json) -{ - gCons->ConsPrintf(cJSON_Print(json)); -} - -float GetSign(float x) -{ - if (x > 0) { return 1; } - if (x < 0) { return -1; } - return 0; -} - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2) -{ - //if ( ((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ( (r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w)) )) //if r1 and r2 intersect in x - - int r1x1 = r1->x; - int r1x2 = r1->x + r1->w; - int r2x1 = r2->x; - int r2x2 = r2->x + r2->w; - - int r1y1 = r1->y; - int r1y2 = r1->y + r1->h; - int r2y1 = r2->y; - int r2y2 = r2->y + r2->h; - - //if (((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ((r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w))) || ((r1->x <= r2->x) && (r2->x + r2->w) >= (r1->x + r1->w)) || ( (r1->x >= r2->x)&&( (r1->x + r1->w) >= (r2->x + r2->w) ) ) ) //if r1 and r2 intersect in x - if - ( - (r1x1 <= r2x2 && r1x1 >= r2x1) || - (r1x2 <= r2x2 && r1x2 >= r2x1) || - (r1x1 <= r2x1 && r1x2 >= r2x2) - ) - { - if - ( - (r1y1 <= r2y2 && r1y1 >= r2y1) || - (r1y2 <= r2y2 && r1y2 >= r2y1) || - (r1y1 <= r2y1 && r1y2 >= r2y2) - ) - { - //gCons->ConsPrintf("Rect Intersect Detected!\n"); - return true; - } - } - //gCons->ConsPrintf("No Rect Intersect Detected!\n"); - return false; -} - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point) -{ - //gDiagDraw->LogDiagRect(*point); - int pointX = point->x + (int)((float)point->w / 2); - int pointY = point->y + (int)((float)point->h / 2); - if ( (zone->x <= pointX) && (pointX <= (zone->x + zone->w)) ) - { - if ((zone->y <= pointY) && (pointY <= (zone->y + zone->h))) - { - //gCons->ConsPrintf("Center point intersect detected\n"); - return true; - } - } - //gCons->ConsPrintf("center point not intersecting\n"); - return false; -} - -int CalcDistance(int x1, int y1, int x2, int y2) -{ - int Xdelt = abs(x1 - x2); - int Ydelt = abs(y1 - y2); - - return (int)sqrt((Xdelt*Xdelt) + (Ydelt*Ydelt)); -} - -int EvenOutcomes(int NumberofOutcomes) -{ - int i = (rand() % (NumberofOutcomes)) + 1; - //gCons->ConsPrintf("Roll : %i\n", i); - return i; -} - -int RandRange(int min, int max) -{ - int i = (min + (rand() % (max-min))); - //gCons->ConsPrintf("Range Roll : %i\n", i); - return i; -} - - -bool IsEven(int i) //Not working alawys return true -{ - if ( (i % 2) == 0) - { - return true; - } - else - { - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/d7/d7d45d57758aa7d3b464e8174f5173d3a1aaca3f.svn-base b/.svn/pristine/d7/d7d45d57758aa7d3b464e8174f5173d3a1aaca3f.svn-base Binary files differ. diff --git a/.svn/pristine/d8/d861f35fa5f11db26454df3c408d133427104de5.svn-base b/.svn/pristine/d8/d861f35fa5f11db26454df3c408d133427104de5.svn-base @@ -1,145 +0,0 @@ -#include "BinaryTree.h" -#include "Utils.h" - -bool Node::Insert(int i, void* data) -{ - return InsertNode(new Node(this, i, data)); -} - -Node* Node::Search(int i) -{ - if (mItem == i) { return this; } - else if (i < mItem && mLeft != NULL ) { return mLeft->Search(i); } - else if (mItem < i && mRight != NULL) { return mRight->Search(i); } - else //Item Could not be found - { - return NULL; - } -} - -int Node::Size(int i) -{ - i++; - if (mLeft != NULL) { i = mLeft->Size(i); } - if (mRight != NULL) { i = mRight->Size(i); } - return i; -} - -Node** Node::Dump(int index, Node** contents) -{ - if (contents == 0) - { - //contents = (Node**)malloc(Size()); - contents = new Node*[Size()]; - } - contents[index] = this; - index++; - - - if (mLeft != NULL ) { mLeft->Dump(index, contents); } - if (mRight != NULL) { mRight->Dump(index, contents); } - - return contents; -} - -bool Node::InsertNode(Node* n) -{ - - if (n->mItem < mItem) - { - if (mLeft == NULL) - { - mLeft = n; - n->mParent = this; - return true; - } - else { return mLeft->InsertNode(n); } - } - - else if (mItem < n->mItem) - { - if (mRight == NULL) - { - mRight = n; - n->mParent = this; - return true; - } - else { return mRight->InsertNode(n); } - } - else// i==mItem this should never happen - { - //error - return false; - } -} - -bool Node::InsertNodeAtRoot(Node* n) -{ - if (mParent != NULL) - { - return mParent->InsertNodeAtRoot(n); - } - else - { - bool r = InsertNode(n); - return r; - } -} - -void Node::Delete() -{ - if (mParent == NULL) //If the node being deleted is the root. - { - mItem = 0; - mData = NULL; - return; - } - else if (mParent->mLeft == this ) { mParent->mLeft = NULL; } - else if (mParent->mRight == this) { mParent->mRight = NULL; } - else - { - assert(false); - return; //node listed as parent is does not have this node as a child. Tree broken. - } - if (mLeft != NULL) - { - InsertNodeAtRoot(mLeft); - mLeft->Delete(); - } - if (mRight != NULL) - { - InsertNodeAtRoot(mRight); - mRight->Delete(); - } - delete this; -} - -void Node::rotate_left() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(left_i); } - else if (mParent->mRight == this) { mParent->AttachRight(left_i); } - - Node* orphan = left_i->mLeft; - left_i->AttachLeft(this); - - mRight->AttachRight(orphan); -} - -void Node::rotate_right() -{ - Node* parent_i = mParent; - Node* left_i = mLeft; - Node* right_i = mRight; - - if (mParent->mLeft == this) { mParent->AttachLeft(right_i); } - else if (mParent->mRight == this) { mParent->AttachRight(right_i); } - - Node* orphan = right_i->mRight; - left_i->AttachRight(this); - - mRight->AttachLeft(orphan); -} diff --git a/.svn/pristine/d9/d9cf9685430b93bbff2f74a383419f3e4bbc64ec.svn-base b/.svn/pristine/d9/d9cf9685430b93bbff2f74a383419f3e4bbc64ec.svn-base Binary files differ. diff --git a/.svn/pristine/da/da12327b610d7664cd15ecdb6e76179aa4856116.svn-base b/.svn/pristine/da/da12327b610d7664cd15ecdb6e76179aa4856116.svn-base Binary files differ. diff --git a/.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601890afd80709.svn-base b/.svn/pristine/da/da39a3ee5e6b4b0d3255bfef95601890afd80709.svn-base diff --git a/.svn/pristine/da/da7ea039d0603ca6eef25b76822f741adf0eb352.svn-base b/.svn/pristine/da/da7ea039d0603ca6eef25b76822f741adf0eb352.svn-base @@ -1,32 +0,0 @@ -#ifndef LOADING_H -#define LOADING_H - -#include "Utils.h" -#include "Console.h" -#include "Context.h" -#include "Event.h" - -class Loading : public Context -{ -public: - - Loading() {}; - - Loading(SDL_Renderer* ren) - { - mRen = ren; - } - - bool Load(const char* filename); - - bool Update(); - - EventFeed mFeed; - -protected: - - SDL_Texture* mSplash; - -}; - -#endif diff --git a/.svn/pristine/da/daf76a85ded558e7e67805e8208ceff30548619b.svn-base b/.svn/pristine/da/daf76a85ded558e7e67805e8208ceff30548619b.svn-base Binary files differ. diff --git a/.svn/pristine/db/db18a59600f111a151d772b6c17603c04f587a30.svn-base b/.svn/pristine/db/db18a59600f111a151d772b6c17603c04f587a30.svn-base Binary files differ. diff --git a/.svn/pristine/db/dbdbdd1b50590cd2bffe180a8c66317de08e476b.svn-base b/.svn/pristine/db/dbdbdd1b50590cd2bffe180a8c66317de08e476b.svn-base @@ -1,79 +0,0 @@ -#ifndef CAMERA_H -#define CAMERA_H - -#include "Utils.h" -#include "Console.h" -#include "Actor.h" -#include "Event.h" - -class Camera : public EventReceiver -{ -public: - Camera() : mView() {} - - Camera(int H, int W, int X, int Y, int lvlH, int lvlW); - - bool LogBlocker(SDL_Rect* blocker); - - SDL_Rect SmartAdjust(SDL_Rect* blocker); - - SDL_Rect SetCameraPos(SDL_Renderer* ren, int Xpos, int Ypos); - - SDL_Rect SetCameraPosUnbounded(SDL_Renderer* ren, int Xpos, int Ypos); - - bool ArrowKeyMove(SDL_Renderer* ren, int xspd, int yspd, SDL_Event* eve); - - bool ActorFollow(SDL_Renderer* ren, int Xbound, int Ybound); - - bool EventProcess(Event eve); - - int GetCamX() - { - return mView.x; - } - - int GetCamY() - { - return mView.y; - } - - int GetCenterX() - { - return mView.x + (mView.w / 2); - } - - int GetCenterY() - { - return mView.y + (mView.h / 2); - } - - SDL_Rect* GetCamView() - { - return &mView; - } - - void CamResize(int H, int W) - { - mView.h = H; - mView.w = W; - } - - void SetFollowTarget(Actor* tar) - { - mFollowTarget = tar; - } - -protected: - SDL_Rect mView; - int mLastMoveUpdate; - - int mlvlH; - int mlvlW; - - std::vector<SDL_Rect*> mBlockers; - - Actor* mFollowTarget; -}; - - -#endif- \ No newline at end of file diff --git a/.svn/pristine/dc/dc33724662321bb34bddec40c85762940ed2282a.svn-base b/.svn/pristine/dc/dc33724662321bb34bddec40c85762940ed2282a.svn-base Binary files differ. diff --git a/.svn/pristine/dc/dc6e2ddafde03094841d0f311102bf9e2760dcc0.svn-base b/.svn/pristine/dc/dc6e2ddafde03094841d0f311102bf9e2760dcc0.svn-base Binary files differ. diff --git a/.svn/pristine/dc/dc7997f55c3b145d3082a7d8f171ee61083ac304.svn-base b/.svn/pristine/dc/dc7997f55c3b145d3082a7d8f171ee61083ac304.svn-base Binary files differ. diff --git a/.svn/pristine/dc/dc95ebf61fcc45dece6aefdd27305ab16408922e.svn-base b/.svn/pristine/dc/dc95ebf61fcc45dece6aefdd27305ab16408922e.svn-base Binary files differ. diff --git a/.svn/pristine/dd/dd18cf3c5b42376d648da77f39b8e118e45611aa.svn-base b/.svn/pristine/dd/dd18cf3c5b42376d648da77f39b8e118e45611aa.svn-base Binary files differ. diff --git a/.svn/pristine/dd/ddb77d1b0a09855338fd5dc582fbcf1c55ca4129.svn-base b/.svn/pristine/dd/ddb77d1b0a09855338fd5dc582fbcf1c55ca4129.svn-base Binary files differ. diff --git a/.svn/pristine/dd/dddb2d4f4c4727e9ae6297dba68bbe6e683f6f52.svn-base b/.svn/pristine/dd/dddb2d4f4c4727e9ae6297dba68bbe6e683f6f52.svn-base Binary files differ. diff --git a/.svn/pristine/de/deaf3d04b1dbfd8462cc53f6a7534fc91ec55eaa.svn-base b/.svn/pristine/de/deaf3d04b1dbfd8462cc53f6a7534fc91ec55eaa.svn-base @@ -1,183 +0,0 @@ -#include "Console.h" - - -Console* gCons = NULL; - -ConsoleStringManager::ConsoleStringManager() -{ - mEndPointer = mText; - mNextLineIndex = 0; - memset(mLines, 0, sizeof(mLines)); -} - -void ConsoleStringManager::AddLine(char* string, int CharCount) -{ - if (((mEndPointer - mText) + CharCount + 1) > CONSOLE_TEXT_LIMIT) - { - mEndPointer = mText; - } - - memcpy(mEndPointer, string, CharCount); - mEndPointer[CharCount] = '\0'; - - mLines[mNextLineIndex] = mEndPointer; - mEndPointer = (mEndPointer + CharCount + 1); - - mNextLineIndex = mNextLineIndex + 1; - if (mNextLineIndex == LINE_LIMIT) - { - mNextLineIndex = 0; - } -} - -void ConsoleStringManager::ConsoleLog(char* msg) -{ - while (1) - { - char* TermChar = strchr(msg, '\n'); - if (TermChar == NULL) break; - - AddLine(msg, (TermChar - msg)); - msg = TermChar + 1; - } -} - -void ConsoleStringManager::ConsolePrintf(char* fmt, ...) -{ - char msgf[256]; - - va_list args; - va_start(args, fmt); - sprintf(msgf, fmt, args); - va_end(args); - - ConsoleLog(msgf); -} - -Console::Console(char* filename, int ptsize, SDL_Color Text, SDL_Color BG) -{ - mTextRect.w = 0; - mTextRect.h = 0; - mTextRect.x = 0; - mTextRect.y = 0; - - mLinePosRect.w = 0; - mLinePosRect.h = 0; - mLinePosRect.x = 0; - mLinePosRect.y = 0; - - mFont = LoadFont(filename, ptsize); - - mText = Text; - mBG = BG; -} - -void Console::ConsPrintf(char* fmt, ...) -{ - char msgf[256]; - - va_list args; - va_start(args, fmt); - vsprintf(msgf, fmt, args); - va_end(args); - - mCSM.ConsoleLog(msgf); -} - -void Console::DrawConsole(SDL_Renderer* ren) -{ - - int PrintIndex = mCSM.GetNextLineIndex(); - - for (int i = 0; i < LINE_LIMIT; i++) - { - - int NextLineIndex = (PrintIndex + i); - if (NextLineIndex >= LINE_LIMIT) - { - NextLineIndex = NextLineIndex - LINE_LIMIT; - } - - char* line = mCSM.GetLine(NextLineIndex); - - if (line != NULL) - { - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(mFont, line, mText, mBG); - if (!LineSur) - { - error = SDL_GetError(); - } - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - if (SDL_QueryTexture(LineTex, NULL, NULL, &mTextRect.w, &mTextRect.h)) - { - error = SDL_GetError(); - } - - mLinePosRect.w = mTextRect.w; - mLinePosRect.h = mTextRect.h; - mLinePosRect.x = 0; - mLinePosRect.y = (mTextRect.h * i); - - if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) - { - error = SDL_GetError(); - } - SDL_DestroyTexture(LineTex); - } - } -} - -void Console::DrawConsoleReadout(SDL_Renderer* ren, int x, int y) -{ - int PrintIndex = mCSM.GetNextLineIndex(); - for (int i = 0; i < LINE_LIMIT; i++) - { - int NextLineIndex = (PrintIndex + i); - if (NextLineIndex >= LINE_LIMIT) - { - NextLineIndex = NextLineIndex - LINE_LIMIT; - } - - - char* line = mCSM.GetLine(NextLineIndex); - - if (line != NULL) - { - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(mFont, line, mText, mBG); - if (!LineSur) - { - error = SDL_GetError(); - } - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - if (SDL_QueryTexture(LineTex, NULL, NULL, &mTextRect.w, &mTextRect.h)) - { - error = SDL_GetError(); - } - - mLinePosRect.w = mTextRect.w; - mLinePosRect.h = mTextRect.h; - mLinePosRect.x = x; - mLinePosRect.y = y; - - if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) - { - error = SDL_GetError(); - } - SDL_DestroyTexture(LineTex); - } - } -}- \ No newline at end of file diff --git a/.svn/pristine/df/df359da4d3cb8ef222a79c800f4053442f07e079.svn-base b/.svn/pristine/df/df359da4d3cb8ef222a79c800f4053442f07e079.svn-base @@ -1,137 +0,0 @@ -#include"Utils.h" -#include"Console.h" -#include "MiscDraw.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)floor((float)(act.GetDrawHeight()) * ((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)floor((float)(act.GetDrawWidth()) * ((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)floor((float)(act.GetDrawX() + act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)floor((float)(act.GetDrawY() + act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - return ScreenPos; -} - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW) -{ - int imgH; - int imgW; - SDL_QueryTexture(img, NULL, NULL, &imgW, &imgH); - - SDL_Rect clip; - clip.h = (int)(cam.GetCamView()->h * scale); - clip.w = (int)(cam.GetCamView()->w * scale); - clip.x = (int)(cam.GetCamX() / ( (worldW - cam.GetCamView()->w) / ( imgW - (cam.GetCamView()->w)*scale) )); - clip.y = (int)(cam.GetCamY() / ( (worldH - cam.GetCamView()->h) / ( imgH - (cam.GetCamView()->h)*scale) )); - -// gCons->ConsPrintf("para bound x: %i - %i\n", clip.x, clip.w + clip.x); -// gCons->ConsPrintf("para bound y: %i - %i\n", clip.y, clip.h + clip.y); - - SDL_RenderCopy(ren, img, &clip, NULL); - - return true; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame* RenderFrame = act.GetFrame(); - - if (RenderFrame != NULL) - { - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); - SDL_SetTextureAlphaMod(RenderFrame->FrameSource, act.GetOpacity()); - - SDL_RenderCopyEx(ren, RenderFrame->FrameSource, &(RenderFrame->FrameRect), &ScreenPos, 0, NULL, flip); - Node** hat_array = act.GetHats()->Dump(); - for (int i = 0; i < act.GetHats()->Size(); i++) - { - if (((Hat*)( hat_array[i]->GetData() ))->IsEnabled()) - { - DrawActor(ren, *(Actor*)(hat_array[i]->GetData()), cam); - } - } - } - else - { - //gCons->ConsPrintf("Actor frame is null\n"); - } - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} - -bool DrawText(SDL_Renderer* ren, TTF_Font* font, char* text, SDL_Color Text_c, SDL_Color Back_c) -{ - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(font, text, Text_c, Back_c); - if (!LineSur) - { - error = SDL_GetError(); - } - - SDL_SetColorKey(LineSur, SDL_TRUE, SDL_MapRGB(LineSur->format, 0xFF, 0x00, 0xFF)); - - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - - SDL_Rect TextRect; - - if (SDL_QueryTexture(LineTex, NULL, NULL, &TextRect.w, &TextRect.h)) - { - error = SDL_GetError(); - } - - SDL_Rect LinePosRect; - - LinePosRect.w = TextRect.w; - LinePosRect.h = TextRect.h; - LinePosRect.x = 0; - LinePosRect.y = 0; - //Why comment? -// if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) -// { -// error = SDL_GetError(); -// } - SDL_DestroyTexture(LineTex); - - return false; -} - -//bool DrawBone(SDL_Renderer* ren, Bone* bone) -//{ - -//} diff --git a/.svn/pristine/df/df3e306d07ba9ca033ef49e9ba9dc75f80fa3b21.svn-base b/.svn/pristine/df/df3e306d07ba9ca033ef49e9ba9dc75f80fa3b21.svn-base @@ -1,163 +0,0 @@ -#ifndef UTILS_H -#define UTILS_H - -//#define RELEASE -#define DEBUG - - -#include <vector> -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include <stdlib.h> -#include <math.h> -#include "cJSON.h" -#include "SDL.h" -#include "SDL_ttf.h" -#include "SDL_Mixer.h" -#include "BinaryTree.h" - -//Screen size defines //These must be a whole multiple of the camera size otherwise pixel stretching occurs -#define SCREEN_W 1344 -#define SCREEN_H 756 -// - -//Direction Defines. Used by actor and terrain systems -#define DOWN 3 -#define UP 2 -#define LEFT 1 // must be 1 because of SDL draw function -#define RIGHT 0 // must be 0 because of SDL draw function -// - -//Time Defines -#define MS_PER_FRAME 16 //this is normal speed -//#define MS_PER_FRAME 40 //useful slow speed -#define FRAMES_PER_SECOND (1/MS_PER_FRAME)*1000 //62.5 @16ms - -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -// - - -//Actor State Defines -#define IDLE 10 -#define FALL 11 -#define JUMP_TO_FALL 13 -#define RUN 20 -#define RUN_DRAWN 25 -#define IDLE_BEGIN 30 -#define JUMP 40 -#define WANDER 50 -#define PURSUE 60 -#define SWIM 110 -#define TREAD 120 -#define LOOK 121 -#define EAT 122 -#define SLEEP 123 -#define PARTICLE 124 - -#define SWIM_LEFT 130 -#define SWIM_RIGHT 131 -#define SWIM_DOWN 132 -#define SWIM_UP 133 - -#define RUN_LEFT 0x1 -#define RUN_RIGHT 0x02 -#define RUN_DOWN 0x003 -#define RUN_UP 0x0004 - -#define WALK_LEFT 0x5 -#define WALK_RIGHT 0x06 -#define WALK_DOWN 0x007 -#define WALK_UP 0x0008 - -#define GATE_UP 201 -#define GATE_DOWN 202 -#define GATE_LOWER 203 -#define GATE_LOWER_BEGIN 204 -#define GATE_RAISE 205 - -#define ALIVE 70 -#define DEAD 80 - -#define SPLASH 90 -#define HAZE 100 -// - -//This is a strange place for this stuff. Should maybe be its own ParticleTypeData.h -struct drift_data -{ - int mXspd; - int mYspd; -}; - -union ParticleTypeData -{ - bool NoData; - drift_data drift; -}; - -ParticleTypeData NullPTdata(); -// - -//struct ActHandle -//{ -// int id; -//}; - -typedef int ActHandle; - -class Time -{ -public: - - Time() : mCycle(0) {}; - - int ProgressCycle() - { - mCycle = (mCycle + 1); - return mCycle; - } - - int GetCurrentCycle() - { - return mCycle; - } - - int GetCurrentMS() - { - return (mCycle*MS_PER_FRAME); - } -protected: - - int mCycle; -}; - -int GetRealTimeMS(); - -SDL_Surface* LoadSurfaceBMP(const char* filename); - -TTF_Font* LoadFont(char* file, int ptsize); - -cJSON * LoadJSON(const char* filename); - -void PrintJSON(cJSON* json); - -float GetSign(float x); - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2); - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point); //Detects if the center of rectangle "point" is within rectangle "zone" - -int CalcDistance(int x1, int y1, int x2, int y2); - -int EvenOutcomes(int NumberofOutcomes); - -int RandRange(int min, int max); - -bool IsEven(int i); - -extern Time* gTime; - -#endif diff --git a/.svn/pristine/df/df5a6ded4ba9b91df4774d337b68c84bc6ce8e50.svn-base b/.svn/pristine/df/df5a6ded4ba9b91df4774d337b68c84bc6ce8e50.svn-base @@ -1,133 +0,0 @@ -#include "HUD.h" - -SDL_Rect CalcElementScreenPosition(Widget* wid, SDL_Rect elementRect) -{ - elementRect.x += wid->GetPos()->x; - elementRect.y += wid->GetPos()->y; - - return elementRect; -}; - -bool HUD::LogWidget(Widget* wid) -{ - assert(mIndex < 10); - mWidgets[mIndex] = wid; - mIndex += 1; - return true; -} - -bool HUD::UpdateWidgets() -{ - for (int i = 0; i < mIndex; i++) - { - mWidgets[i]->WidgetUpdate(); - } - return true; -} - -bool HUD::DrawWidgets() -{ - for (int i = 0; i < mIndex; i++) - { - mWidgets[i]->WidgetDraw(); - } - return true; -} - -LifeMeter::LifeMeter(Player* target, SDL_Rect pos, SDL_Renderer* ren, char* life_base, char* life_bar) : Widget(ren, pos) -{ - mHPmax = target->GetMaxHP(); - mHP = target->GetHP(); - - mBase.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(life_base)); - mLifebar.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(life_bar )); - - mBase.pos = mPos; - mLifebar.pos.x = 0; - mLifebar.pos.y = 0; - mLifebar.pos.h = mPos.h; - mLifebar.pos.w = mPos.w; -} - -bool LifeMeter::WidgetUpdate() -{ - mLifebar.pos.w = (int)( (mBase.pos.w)*(( (float)(*mHP) ) / ( (float)(*mHPmax)) ) ); - return true; -} - -bool LifeMeter::WidgetDraw() -{ - SDL_RenderCopy(mren, mBase.img, NULL, &mBase.pos); - SDL_RenderCopy(mren, mLifebar.img, NULL, &CalcElementScreenPosition(this, mLifebar.pos) ); - return true; -} -// - -//Fader -Fader::Fader(SDL_Renderer* ren, char* black) : Widget(ren, { 0,0,0,0 }) -{ - mDisplay = false; - - mBlack.img = SDL_CreateTextureFromSurface(mren, LoadSurfaceBMP(black)); - mBlack.pos = mPos; -} - -void Fader::PlayFade(int duration) -{ - mDisplay = true; - mOpacity = 0; - - mTimer = gTime->GetCurrentCycle(); - mFadeTime = duration / 2; -} - -bool Fader::WidgetUpdate() -{ - if (mDisplay == true) - { - if (gTime->GetCurrentCycle() - mTimer <= mFadeTime) //if the timer is less than the fade-in/out time - { - mOpacity = (int)( ((float)(gTime->GetCurrentCycle() - mTimer) / (float)mFadeTime) * 255.0 ); - } - else if (gTime->GetCurrentCycle() - mTimer <= 2 * mFadeTime) //if the time is not less then the fade time, but is less than the total time - { - mOpacity = (int)( ((float)mFadeTime / (float)(gTime->GetCurrentCycle() - mTimer)) * 255.0 ); - } - else //if the timer is over the fade time - { - mDisplay = false; - } - } - - return true; -} - -bool Fader::WidgetDraw() -{ - if (mDisplay == true) - { - SDL_RenderCopy(mren, mBlack.img, NULL, NULL); - SDL_SetTextureAlphaMod(mBlack.img, mOpacity); - } - return true; -} - -bool Fader::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case FADE: - PlayFade(eve.GetEventData()->i); - break; - case TERMINATE_DIALOGUE: - case SCROLL: - case DIALOGUE: - break; - default: - gCons->ConsPrintf("Fader received unrecognized event\n"); - return false; - break; - } - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/df/dfead7e5f1236bb4c6a1329528b15409b7704b8b.svn-base b/.svn/pristine/df/dfead7e5f1236bb4c6a1329528b15409b7704b8b.svn-base Binary files differ. diff --git a/.svn/pristine/e0/e0344d48098f78f9fe7751ff035345396c4b0b95.svn-base b/.svn/pristine/e0/e0344d48098f78f9fe7751ff035345396c4b0b95.svn-base @@ -1,168 +0,0 @@ -#include "sound.h" -#include "Actor.h" - -Mix_Music* LoadMusic(char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\sounds\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\sounds\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - Mix_Music* sound = Mix_LoadMUS(strcat(pathbuffer, filename)); - if (sound == NULL) - { - gCons->ConsPrintf("Mix_Music Error: %s", Mix_GetError()); - return NULL; - } - return sound; -} - -Mix_Chunk* LoadSound(char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\sounds\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\sounds\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - Mix_Chunk* sound = Mix_LoadWAV(strcat(pathbuffer, filename)); - if (sound == NULL) - { - char s[1024]; - strcpy(s, Mix_GetError()); - gCons->ConsPrintf("Mix_Music Error: %s", Mix_GetError()); - return NULL; - } - return sound; -} - -bool ChannelManager::PlaySound(int channel, Mix_Chunk* snd, int distance) -{ - if (distance = -1) - { - Mix_PlayChannel(channel, snd, 0); - Mix_SetDistance(channel, 0); - return true; - } - - //gCons->ConsPrintf("Distance from camera: %i\n", distance); - if (distance >= MIN_VOL_RANGE) //If the sound is out of hearing range - { - //gCons->ConsPrintf("Sound out of range\n\n"); - return false; - } - else - { - Mix_PlayChannel(channel, snd, 0); - if (distance <= MAX_VOL_RANGE) //if the sound is within range to play for no attenuation - { - //gCons->ConsPrintf("Sound within maximum volume range\n\n"); - //Mix_SetDistance(channel, 0); - } - else //between min and max volume ranges - { - int fade = int(((float)(distance - MAX_VOL_RANGE) / FADE_DISTANCE) * 255.0); - - //gCons->ConsPrintf("Attenuation value: %i\n\n", fade); - Mix_SetDistance(channel, fade); - } - } - return true; -} - -bool ChannelManager::PlayLoop(int channel, Mix_Chunk* snd, int distance) -{ - if (distance = -1) - { - Mix_PlayChannel(channel, snd, -1); - Mix_SetDistance(channel, 0); - return true; - } - - //gCons->ConsPrintf("Distance from camera: %i\n", distance); - if (distance >= MIN_VOL_RANGE) //If the sound is out of hearing range - { - //gCons->ConsPrintf("Sound out of range\n\n"); - return false; - } - else - { - Mix_PlayChannel(channel, snd, -1); - if (distance <= MAX_VOL_RANGE) //if the sound is within range to play for no attenuation - { - //gCons->ConsPrintf("Sound within maximum volume range\n\n"); - //Mix_SetDistance(channel, 0); - } - else //between min and max volume ranges - { - int fade = int(((float)(distance - MAX_VOL_RANGE) / FADE_DISTANCE) * 255.0); - - //gCons->ConsPrintf("Attenuation value: %i\n\n", fade); - Mix_SetDistance(channel, fade); - } - } - return true; -} - -//Sound Manager Functions -bool SoundManager::UpdatePointSounds(int listen_x, int listen_y) -{ - for (int i = 0; i < (int)mEffects.size(); i++) - { - mEffects.at(i)->PlayPointSound(listen_x, listen_y); - } - return true; -} - -bool SoundManager::UpdateRegionSounds(SDL_Rect* pos) -{ - for (int i = 0; i < (int)mRegions.size(); i++) - { - mRegions.at(i)->PlayRegionSound(pos); - } - return true; -} - -bool SoundManager::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case CREATE_POINT_SOUND: - SpawnPointSound(eve.GetEventData()->psd.x, eve.GetEventData()->psd.y, eve.GetEventData()->psd.name); - return true; - break; - case ACTOR_PLAY_SOUND: - return true; - break; - case SPAWN: - { - int* channel = (int*)eve.GetEventData()->p; - *channel = mChannelManager.AssignChannel(); - return true; - break; - } - case DEATH: - mChannelManager.FreeChannel(((Actor*)(eve.GetEventData()->p))->GetChannel()); - return true; - break; - case SOUND_COMPLETE: - ClearPointSound((PointSound*)eve.GetEventData()->p); - return true; - break; - default: - gCons->ConsPrintf("Sound Manager recieved unregcognized even\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/e0/e0a2ac6181c8a1190ee45c101a5604ee0bb607f2.svn-base b/.svn/pristine/e0/e0a2ac6181c8a1190ee45c101a5604ee0bb607f2.svn-base @@ -1,29 +0,0 @@ -#include "DiagnosticDraw.h" - -DiagnosticDraw* gDiagDraw = NULL; - -bool DiagnosticDraw::DrawRect(SDL_Rect WrldPos) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - mCam.GetCamX())*((float)(SCREEN_W) / (float)(mCam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - mCam.GetCamY())*((float)(SCREEN_H) / (float)(mCam.GetCamView()->h))); - - SDL_Point pts[5]; - pts[0].x = ScreenPos.x; - pts[0].y = ScreenPos.y; - pts[1].x = ScreenPos.x + ScreenPos.w; - pts[1].y = ScreenPos.y; - pts[2].x = ScreenPos.x + ScreenPos.w; - pts[2].y = ScreenPos.y + ScreenPos.h; - pts[3].x = ScreenPos.x; - pts[3].y = ScreenPos.y + ScreenPos.h; - pts[4].x = ScreenPos.x; - pts[4].y = ScreenPos.y; - - SDL_RenderDrawLines(mRen, pts, 5); - - return false; -} diff --git a/.svn/pristine/e2/e215158662ed5306bbeaac213bbddce4e6e9b746.svn-base b/.svn/pristine/e2/e215158662ed5306bbeaac213bbddce4e6e9b746.svn-base @@ -1,174 +0,0 @@ -#include "Dialogue.h" - -Dialogue::Dialogue(SDL_Rect pos, SDL_Renderer* ren, char* font, char* text_box, SDL_Color fore, EventReceiver* player) : Widget(ren, pos), mText_Color(fore) -{ - mPlayer = player; - - mDisplay = false; //In the case of the Dialogue widget mDisplay also tells if a dialogue is open. - mFont = LoadFont(font, 20); - - mLines_To_Print.reserve(2); - - mText_box.img = SDL_CreateTextureFromSurface(ren, LoadSurfaceBMP(text_box)); - SDL_QueryTexture(mText_box.img, NULL, NULL, &mPos.w, &mPos.h); - mText_box.pos = mPos; - - //TextWrap(390, "These Are Some Words. Here have a few more. Just Can't get enough little wordlings, seriously."); - - mline1 = 0; - mline2 = 1; -} - -bool Dialogue::TextWrap(int text_pix_max, char* str) -{ - int text_pix = -1; - - int size = strlen(str); - char* text = (char*)malloc(size + 1); - strcpy(text, str); - text[size] = '\0'; - - char* line = (char*)malloc(size + 1); - memset(line, 0, sizeof(line)); - char* last_fit = (char*)malloc(size + 1); - memset(last_fit, NULL, sizeof(last_fit)); - - char* tok; - tok = strtok(text, " "); - while (tok != NULL) - { - strcat(line, tok); - - int h; - TTF_SizeText(mFont, line, &text_pix, &h); - if (text_pix >= text_pix_max) - { - if (last_fit == NULL) - { - return false; - } - - DialogueLine* dline = new DialogueLine; - SDL_Surface* sur = TTF_RenderText_Blended(mFont, last_fit, mText_Color); - dline->LineTex = SDL_CreateTextureFromSurface(mren, sur); - SDL_FreeSurface(sur); - mLines_To_Print.push_back(dline); - - memset(line, 0, sizeof(line)); - strcat(line, tok); - strcat(line, " "); - } - else - { - strcpy(last_fit, line); - strcat(line, " "); - } - tok = strtok(NULL, " "); - } - - DialogueLine* dline = new DialogueLine; - SDL_Surface* sur = TTF_RenderText_Blended(mFont, last_fit, mText_Color); - dline->LineTex = SDL_CreateTextureFromSurface(mren, sur); - SDL_FreeSurface(sur); - mLines_To_Print.push_back(dline); - - if (IsEven((int)mLines_To_Print.size()) == false) - { - DialogueLine* blank = new DialogueLine; - blank->Displayed = false; - SDL_Surface* blank_sur = TTF_RenderText_Blended(mFont, " ", mText_Color); - blank->LineTex = SDL_CreateTextureFromSurface(mren, blank_sur); - SDL_FreeSurface(blank_sur); - mLines_To_Print.push_back(blank); - } - return true; -} - -bool Dialogue::DialoguePrint() -{ - int j = 0; - for (int i = 0; i < (int)mLines_To_Print.size(); i++) - { - if (mLines_To_Print.at(i)->Displayed == true) - { - SDL_Texture* tex = mLines_To_Print.at(i)->LineTex; - SDL_Rect dst = mText_box.pos; - SDL_QueryTexture(tex, NULL, NULL, &dst.w, &dst.h); - - dst.x = mText_box.pos.x + 5; - dst.y = mText_box.pos.y + 4 + (dst.h * j); - - SDL_RenderCopy(mren, tex, NULL, &dst); - j++; - } - } - // mLines_To_Print.clear(); - return false; -} - -void Dialogue::CloseDialogue() -{ - mPlayer->EventProcess(Event(TERMINATE_DIALOGUE)); - mDisplay = false; - mLines_To_Print.clear(); - - mline1 = 0; - mline2 = 1; -} - -bool Dialogue::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case DIALOGUE: - if (mDisplay == false) - { - mDisplay = true; - TextWrap(390, eve.GetEventData()->dd.str); - } - break; - case SCROLL: - if ((int)mLines_To_Print.size() > (mline2 + 1)) - { - mline1+=2; - mline2+=2; - } - else - { - CloseDialogue(); - } - break; - case TERMINATE_DIALOGUE: //Called to terminate dialogue early - CloseDialogue(); - break; - default: - gCons->ConsPrintf("Unrecognized event sent to dialogue system\n"); - } - return true; -} - -bool Dialogue::WidgetUpdate() -{ - for (int i = 0; i < (int)mLines_To_Print.size(); i++) - { - mLines_To_Print.at(i)->Displayed = false; - } - if ((int)mLines_To_Print.size() > 0) - { - mLines_To_Print.at(mline1)->Displayed = true; - mLines_To_Print.at(mline2)->Displayed = true; - } - - return true; -} - -bool Dialogue::WidgetDraw() -{ - if (mDisplay == true) - { - SDL_RenderCopy(mren, mText_box.img, NULL, &mText_box.pos); - - DialoguePrint(); - } - return true; -} diff --git a/.svn/pristine/e2/e23a6b98f748dfceef946ce4efdbba7480ac1011.svn-base b/.svn/pristine/e2/e23a6b98f748dfceef946ce4efdbba7480ac1011.svn-base @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>sound.cpp</FILENAME> - <LINE>52</LINE> - <COLUMN>14</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>ChannelManager::PlaySound</FUNCTION> - <DECORATED>?PlaySound@ChannelManager@@QAE_NHPAUMix_Chunk@@H@Z</DECORATED> - <FUNCLINE>50</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>sound.cpp</FILENAME> - <LINE>86</LINE> - <COLUMN>14</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>ChannelManager::PlayLoop</FUNCTION> - <DECORATED>?PlayLoop@ChannelManager@@QAE_NHPAUMix_Chunk@@H@Z</DECORATED> - <FUNCLINE>84</FUNCLINE> - <PATH></PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/e3/e326fd150fc62a61cb88e40a530eb7fcb1bd19dc.svn-base b/.svn/pristine/e3/e326fd150fc62a61cb88e40a530eb7fcb1bd19dc.svn-base Binary files differ. diff --git a/.svn/pristine/e3/e3bf405143b9a7457cb17a402ffdf5d7ef039015.svn-base b/.svn/pristine/e3/e3bf405143b9a7457cb17a402ffdf5d7ef039015.svn-base Binary files differ. diff --git a/.svn/pristine/e4/e46a3ba458fdb83c80fc15d96a0bcc69e851e2a1.svn-base b/.svn/pristine/e4/e46a3ba458fdb83c80fc15d96a0bcc69e851e2a1.svn-base Binary files differ. diff --git a/.svn/pristine/e4/e4b2e855b889068bc40402b5e43987261f8384cd.svn-base b/.svn/pristine/e4/e4b2e855b889068bc40402b5e43987261f8384cd.svn-base Binary files differ. diff --git a/.svn/pristine/e5/e5d42a916048a1128be40b282cb6d734df3446ca.svn-base b/.svn/pristine/e5/e5d42a916048a1128be40b282cb6d734df3446ca.svn-base @@ -1,370 +0,0 @@ -#ifndef SOUND_H -#define SOUND_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" - -#define MAX_VOL_RANGE 300.0 -#define MIN_VOL_RANGE 1500.0 -#define FADE_DISTANCE (MIN_VOL_RANGE - MAX_VOL_RANGE) - -Mix_Music* LoadMusic(char* filename); -Mix_Chunk* LoadSound(char* filename); - -class ChannelManager -{ -public: - - ChannelManager() {} - - int AssignChannel() - { - for (int i = 0; i < (int)mChannels.size(); i++) - { - if ( (mChannels.at(i) = false) && (Mix_Playing(i) == false)) - { - return i; - } - } - mChannels.push_back(true); - Mix_AllocateChannels(mChannels.size()); - return (mChannels.size() - 1); - } - - void FreeChannel(int channel) - { - mChannels.at(channel) = false; - } - - bool PlaySound(int channel, Mix_Chunk* snd, int distance = -1); //outdated - - bool PlayLoop(int channel, Mix_Chunk* snd, int distance = -1); //outdated - -protected: - - std::vector<bool> mChannels; -}; - -class PointSound //A sound that plays at a point and attenuates with distance -{ -public: - - PointSound(int x, int y, Mix_Chunk* sound, int id) : mX(x), mY(y), mSound(sound), mID(id), mSpawnDate(gTime->GetCurrentCycle()) - { - //mFeed.EventProcess(Event(SPAWN, (void*)&mSoundChannel)); - } - - ~PointSound() - { - //mFeed.EventProcess(Event(SOUND_COMPLETE, (void*)this)); - } - - int setID(int id) - { - return mID = id; - } - - int GetID() - { - return mID; - } - - Mix_Chunk* GetChunk() - { - return mSound; - } - - void SetChannel(int chan) - { - mSoundChannel = chan; - } - - int GetChannel() - { - return mSoundChannel; - } - - int GetX() - { - return mX; - } - - int GetY() - { - return mY; - } - - int GetSpawnDate() - { - return mSpawnDate; - } - - bool PlayPointSound(int listen_x, int listen_y) - { - if (Mix_Playing(mSoundChannel) == false) - { - int dist = CalcDistance(mX, mY, listen_x, listen_y); - - if (dist >= MIN_VOL_RANGE) //If the sound is out of hearing range - { - //gCons->ConsPrintf("Sound out of range\n\n"); - return false; - } - else - { - Mix_PlayChannel(mSoundChannel, mSound, 0); - if (dist <= MAX_VOL_RANGE) //if the sound is within range to play for no attenuation - { - //gCons->ConsPrintf("Sound within maximum volume range\n\n"); - Mix_SetDistance(mSoundChannel, 0); - } - else //between min and max volume ranges - { - int fade = int(((float)(dist - MAX_VOL_RANGE) / FADE_DISTANCE) * 255.0); - - //gCons->ConsPrintf("Attenuation value: %i\n\n", fade); - Mix_SetDistance(mSoundChannel, fade); - } - } - - return true; - } - else - { - mFeed.EventProcess(Event(SOUND_COMPLETE, this)); //not sure this should be called here - } - return false; - } - - void FadeOut(int fade_time) - { - Mix_FadeOutChannel(mSoundChannel, fade_time); - } - - EventFeed mFeed; - -protected: - - int mX; - int mY; - Mix_Chunk* mSound; - - int mSoundChannel; - - int mID; - - int mSpawnDate; -}; - -class RegionSound //Sounds that can be heard in a retangular region -{ -public: - - RegionSound(SDL_Rect region, int id) : mRegion(region), mID(id) - { - //mFeed.EventProcess(Event(SPAWN, (void*)&mSoundChannel)); - } - - ~RegionSound() - { - //mFeed.EventProcess(Event(SOUND_COMPLETE, (void*)this)); - } - - int setID(int id) - { - return mID = id; - } - - int GetID() - { - return mID; - } - - void SetChannel(int chan) - { - mSoundChannel = chan; - } - - int GetChannel() - { - return mSoundChannel; - } - - bool LogTrack(Mix_Chunk* snd) - { - mLoops.push_back(snd); - return true; - } - - bool PlayRegionSound(SDL_Rect* pos) - { - if (DetectCenterPointIntersect(&mRegion, pos) == false) - { - Mix_FadeOutChannel(mSoundChannel, 5000); - } - else - { - if (Mix_Playing(mSoundChannel) == false) - { - for (int i = 0; i < (int)mLoops.size(); i++) - { - Mix_FadeInChannel(mSoundChannel, mLoops.at(i), -1, 5000); - } - return true; - } - } - return false; - } - - EventFeed mFeed; - -protected: - - SDL_Rect mRegion; - - std::vector<Mix_Chunk*> mLoops; - - int mSoundChannel; - - int mID; -}; - -class SoundManager : public EventReceiver //needs to have functions moved to cpp -{ -public: - - SoundManager() - { - mChannelManager = ChannelManager(); - mMusic_Channel = mChannelManager.AssignChannel(); - } - - ~SoundManager() - { - mChannelManager.FreeChannel(mMusic_Channel); - } - - bool LogSoundData(Mix_Chunk* snd, char* name) - { - mSoundData.push_back(snd); - mNames.push_back(name); - return true; - } - - Mix_Chunk* GetSoundData(char* name) - { - for (int i = 0; i < (int)mNames.size(); i++) - { - if (!strcmp(name, mNames.at(i))) - { - return mSoundData.at(i); - } - } - return NULL; - } - - - - PointSound* SpawnPointSound(int x, int y, char* name) - { - PointSound* ps = new PointSound(x,y,GetSoundData(name), (int)(mEffects.size()) ); - ps->SetChannel(mChannelManager.AssignChannel()); - ps->mFeed.Subscribe(this); - mEffects.push_back(ps); - - FadeDuplicates(ps->GetChunk(), 0); - - return ps; - } - - RegionSound* SpawnRegionSound(SDL_Rect region) - { - RegionSound* rs = new RegionSound(region, (int)(mRegions.size())); - rs->SetChannel(mChannelManager.AssignChannel()); - rs->mFeed.Subscribe(this); - mRegions.push_back(rs); - - return rs; - } - - bool ClearPointSound(PointSound* ps) - { - mChannelManager.FreeChannel(ps->GetChannel()); - - mEffects.erase(mEffects.begin() + ps->GetID()); - - for (int i = 0; i < (int)(mEffects.size()); i++) - { - mEffects.at(i)->setID(i); - } - - return false; - } - - std::vector<PointSound*>* GetPointSounds() - { - return &mEffects; - } - - ChannelManager* GetChannelManager() - { - return &mChannelManager; - } - - bool FadeDuplicates(Mix_Chunk* snd, int max_dupes) //This function does the job but its really expensive, Would work better with improved memory management - { - std::vector<int> dupes; - for (int i = 0; i < (int)mEffects.size(); i++) - { - if (snd == mEffects.at(i)->GetChunk()) - { - dupes.push_back(i); - } - } - - for (int k = (int)dupes.size(); k > max_dupes;) - { - int oldest_index = -1; - int oldest = gTime->GetCurrentCycle(); - for (int j = 0; j < (int)dupes.size(); j++) - { - if (mEffects.at(dupes.at(j))->GetSpawnDate() <= oldest) //if mEffects[j] is older than mEffects[j - 1] - { - oldest = mEffects.at(dupes.at(j))->GetSpawnDate(); - oldest_index = j; - } - } - if (oldest_index == -1) - { - return false; - } - mEffects.at(dupes.at(oldest_index))->FadeOut(1); - //gCons->ConsPrintf("Sound Faded\n"); - dupes.erase(dupes.begin() + oldest_index); - k = (int)dupes.size(); - } - return true; - } - - bool UpdatePointSounds(int listen_x, int listen_y); - - bool UpdateRegionSounds(SDL_Rect* pos); - - bool EventProcess(Event eve); - -protected: - - ChannelManager mChannelManager; - - std::vector<Mix_Chunk*> mSoundData; - std::vector<char*> mNames; - - std::vector<PointSound*> mEffects; - std::vector<RegionSound*> mRegions; - - int mMusic_Channel; - -}; - -#endif diff --git a/.svn/pristine/e6/e6c7b2517291a7449222c6cf7e271346f7ed5da7.svn-base b/.svn/pristine/e6/e6c7b2517291a7449222c6cf7e271346f7ed5da7.svn-base Binary files differ. diff --git a/.svn/pristine/e6/e6d78a8415ff02bf9d2a41331387aa373bed1b3d.svn-base b/.svn/pristine/e6/e6d78a8415ff02bf9d2a41331387aa373bed1b3d.svn-base Binary files differ. diff --git a/.svn/pristine/e8/e84772bbd1d4efe153c7cd5d9412ff3ebf4d87c8.svn-base b/.svn/pristine/e8/e84772bbd1d4efe153c7cd5d9412ff3ebf4d87c8.svn-base @@ -1,24 +0,0 @@ -#ifndef MISCDRAW_H -#define MISCDRAW_H - -#include"Actor.h" -#include"bones.h" -#include"Camera.h" -#include"Utils.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam); - -SDL_Rect DrawActorAnim(SDL_Renderer* ren, Actor& act, animation* anim, Camera cam, int dir); - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW); - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam); - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam); - -bool DrawText(SDL_Renderer* ren, char* text); - -bool DrawBone(SDL_Renderer* ren, Bone* bone); - -bool DrawMapTest(SDL_Renderer* ren, SDL_Surface* map); -#endif- \ No newline at end of file diff --git a/.svn/pristine/e8/e859e2828a642a37bf6c8ddd231e7f9a21caeb9d.svn-base b/.svn/pristine/e8/e859e2828a642a37bf6c8ddd231e7f9a21caeb9d.svn-base Binary files differ. diff --git a/.svn/pristine/e9/e9506ca67e603adbb8f6df40435bef7293af13cc.svn-base b/.svn/pristine/e9/e9506ca67e603adbb8f6df40435bef7293af13cc.svn-base Binary files differ. diff --git a/.svn/pristine/e9/e95dbc8980e8640e9e4a9711a5d5146697817e40.svn-base b/.svn/pristine/e9/e95dbc8980e8640e9e4a9711a5d5146697817e40.svn-base Binary files differ. diff --git a/.svn/pristine/ea/ea9398e88b3ab5fb42d60ea08bbe6108cd2547f2.svn-base b/.svn/pristine/ea/ea9398e88b3ab5fb42d60ea08bbe6108cd2547f2.svn-base Binary files differ. diff --git a/.svn/pristine/eb/eb1e7241d09c46a3b901ad5e8f95f4320c6f5d76.svn-base b/.svn/pristine/eb/eb1e7241d09c46a3b901ad5e8f95f4320c6f5d76.svn-base @@ -1,316 +0,0 @@ -#include "ActorCollision.h" - -bool SpatialMonitor::PartitionCells(int worldH, int worldW) -{ - int cellW = (worldW / CELLS_X); - int cellH = (worldH / CELLS_Y); - - for (int i = 0; i < CELLS_Y; i++) - { - for (int j = 0; j < CELLS_X; j++) - { - Cell new_cell; - new_cell.GetCellRect()->w = cellW; - new_cell.GetCellRect()->h = cellH; - new_cell.GetCellRect()->x = cellW * j; - new_cell.GetCellRect()->y = cellH * i; - - mCells[i*CELLS_X + j] = new_cell; - - } - } - return true; -} - -bool SpatialMonitor::LogActor(int id) -{ - //mActors[mActorCount] = &act; - //mActors.Insert(act.GetHandle(), &act); - //act.SetSpatID(mActorCount); - UpdateActorCell(id); - return true; -} - -bool SpatialMonitor::ClearActorCell(int id) -{ - if ((id == 7) | (id == 8)) - { - gCons->ConsPrintf("seal updates cell\n"); - } - if (id == 9) - { - gCons->ConsPrintf("player updates cell\n"); - } - - if (GetActorCell(id) != -1) - { - //mCells[GetActorCell(id)].GetActorTree()->Search(id)->Delete(); - mCells[GetActorCell(id)].GetActorTree()->DeleteNode(id); - return true; - } - return false; -} - - -int SpatialMonitor::UpdateActorCell(int id) -{ - //if (id == 7) - //{ - // gCons->ConsPrintf("seal updates cell\n"); - //} - Actor* act = (mAHM->GetActorAddress(id)); - for (int i = 0; i < CELL_COUNT; i++) - { - if (DetectCenterPointIntersect( mCells[i].GetCellRect(), act->GetPosition() ) ) - { - //gCons->ConsPrintf("Actor entering cell %i\n", i); - - if (i != act->GetSpatCell()) - { - mCells[i].GetActorTree()->Insert(id, NULL); - ClearActorCell(id); - act->SetSpatCell(i); - } - - return i; - } - } - gCons->ConsPrintf("Could not find Actor cell\n"); - return -1; -} - -int SpatialMonitor::GetAdjacentCells(int cellnum, Cell* cells[9]) -{ - cells[0] = GetCell((cellnum - CELLS_X - 1)); - cells[1] = GetCell((cellnum - CELLS_X)); - cells[2] = GetCell((cellnum - CELLS_X + 1)); - - cells[3] = GetCell((cellnum - 1)); - cells[4] = GetCell((cellnum)); - cells[5] = GetCell((cellnum + 1)); - - cells[6] = GetCell((cellnum + CELLS_X - 1)); - cells[7] = GetCell((cellnum + CELLS_X)); - cells[8] = GetCell((cellnum + CELLS_X + 1)); - - return 0; -} - -//bool SpatialMonitor::GetActorsInCell(int cellnum) //uneeded now. Use Cell.GetActorTree() -//{ -// for (int i = 0; i < MAX_ACTORS; i++) //this is very bad. Basically defeats the function of cells by check each actor -// { -// if (mActorCells[i] == cellnum) -// { -// //gCons->ConsPrintf("Actor %i is in adjacent cell\n", i); -// mAdjacentActorIDs[mAdjacentActorCount] = i; -// mAdjacentActorCount++; -// } -// } -// return true; -//} - -//bool SpatialMonitor::GetAdjacentActors(int cellnum) -//{ -// mAdjacentActorCount = 0; -// mAdjacentActorIDs[MAX_ACTORS] = { 0 }; -// -// int cells[9]; -// GetAdjacentCells(cellnum, cells); -// -// for (int i = 0; i < 9; i++) -// { -// GetActorsInCell(cells[i]); -// //gDiagDraw->LogDiagRect(mCells[cells[i]]); -// } -// return true; -//} - -bool SpatialMonitor::DetectActorCollision(int id1, int id2) -{ - if (id1 != id2) - { - //gDiagDraw->LogDiagRect(*mActors[id2]->GetPosition()); - return DetectRectIntersect(mAHM->GetActorAddress(id1)->GetPosition(), mAHM->GetActorAddress(id2)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::DetectRectSensors(SDL_Rect* sensor, int DetectorID, int foreignID) -{ - if (DetectorID != foreignID) - { - //gDiagDraw->LogDiagRect(*sensor); - //gDiagDraw->LogDiagRect(*mActors[foreignID]->GetPosition()); - return DetectRectIntersect(sensor, mAHM->GetActorAddress(foreignID)->GetPosition()); - } - else - { - //gCons->ConsPrintf("Attempted to check actor collision with itself\n"); - return false; - } -} - -bool SpatialMonitor::HandleCollisions(int CallerID) -{ - - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - int array_size = AdjecentCellIndex[i]->GetActorTree()->Size(); - if (array_size != -1) - { - //Node** ActorTreeArray = NULL; - Node** ActorTreeArray = new Node*[array_size]; - ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - for (int j = 0; j < (array_size); j++) - { - if (ActorTreeArray[j] == (Node*)(0xcdcdcdcd)) - { - gCons->ConsPrintf("uninitialized memory\n"); - AdjecentCellIndex[i]->GetActorTree()->Dump(); - } - assert(j <= array_size); - //gCons->ConsPrintf("index: %i, item: %i\n", j, ActorTreeArray[j]->GetItem()); - int size = sizeof(ActorTreeArray); - - if (ActorTreeArray[j] == NULL) - { - gCons->ConsPrintf("Error: invalid index into actor tree, Cell: %i", i); - } - if (DetectActorCollision(CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(ACTOR_COLLISION, ActorTreeArray[j]->GetItem())); - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - - return true; -} - -bool SpatialMonitor::HandleRectSensors(SDL_Rect* sensor, int CallerID, SensorType SeType) -{ - - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - int array_size = AdjecentCellIndex[i]->GetActorTree()->Size(); - if (array_size != -1) - { - //Node** ActorTreeArray = NULL; - Node** ActorTreeArray = new Node*[array_size]; - ActorTreeArray = (AdjecentCellIndex[i]->GetActorTree())->Dump(); - for (int j = 0; j < (array_size); j++) - { - assert(j <= array_size); - //gCons->ConsPrintf("index: %i, item: %i\n", j, ActorTreeArray[j]->GetItem()); - - if (ActorTreeArray[j] == NULL) - { - gCons->ConsPrintf("Error: invalid index into actor tree, Cell: %i", i); - } - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - mAHM->GetActorAddress(CallerID)->EventProcess(Event(SENSOR_COLLISION, SeType, ActorTreeArray[j]->GetItem())); //Used to pass actor* now passed ID number. receiver functions need to be updated - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return true; -} - -bool SpatialMonitor::TestBlockers(SDL_Rect* sensor, int CallerID) -{ - int CallerCell = GetActorCell(CallerID); - - Cell* AdjecentCellIndex[9]; - GetAdjacentCells(CallerCell, AdjecentCellIndex); - - for (int i = 0; i < 9; i++) - { - if (AdjecentCellIndex[i] != NULL) - { - Node** ActorTreeArray = ((AdjecentCellIndex[i]->GetActorTree())->Dump()); - if (ActorTreeArray != NULL) - { - for (int j = 0; j < (AdjecentCellIndex[i]->GetActorTree())->Size(); j++) - { - if (DetectRectSensors(sensor, CallerID, ActorTreeArray[j]->GetItem()) == true) - { - if (mAHM->GetActorAddress(ActorTreeArray[j]->GetItem())->IsBlocking() == true) - { - return true; - } - } - } - } - else - { - //gCons->ConsPrintf("Cell is empty/n"); - } - } - else - { - //Cell does not exist. do nothing - } - } - return false; -} - -bool SpatialMonitor::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case MOVED_THIS_FRAME: - UpdateActorCell(eve.GetEventData()->i); - HandleCollisions(eve.GetEventData()->i); - return true; - break; - case CHECK_RECT_SENSOR: - HandleRectSensors(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id, eve.GetEventData()->sd.st); - return true; - break; - case CHECK_BLOCKERS: - return TestBlockers(eve.GetEventData()->sd.sensor, eve.GetEventData()->sd.id); - break; - default: - gCons->ConsPrintf("Spatial Monitor Received Invalid Event Type\n"); - return false; - break; - } -}- \ No newline at end of file diff --git a/.svn/pristine/eb/eb2976fbf1f49bc0610f174e5d59a6dd6b7b1050.svn-base b/.svn/pristine/eb/eb2976fbf1f49bc0610f174e5d59a6dd6b7b1050.svn-base @@ -1,660 +0,0 @@ -{ - "loading": - { - "splash" : "Loading.bmp" - }, - - "level": - { - "world": - { - "world_h": 500, - "world_w": 1800, - "terrain" : "scene_2\\scene_2_colmap.bmp", - "backgrounds" : - [ - {"back" : "scene_2\\scene_2_back_0.bmp" , "parallax_factor" : 1, "alpha" : 0 }, - {"back" : "scene_2\\scene_2_back_1.bmp" , "parallax_factor" : 1, "alpha" : 0 }, - {"back" : "scene_2\\scene_2_back_transp_2.bmp", "parallax_factor" : 1, "alpha" : 75}, - {"back" : "scene_2\\scene_2_back_transp_3.bmp" , "parallax_factor" : 1, "alpha" : 75 }, - {"back" : "scene_2\\scene_2_back_4.bmp" , "parallax_factor" : 1, "alpha" : 0 } - ], - "foregrounds" : - [ - {"fore" : "scene_2\\scene_2_fore_0.bmp", "alpha" : 0} - ], - "overlays" : - [ - ] - }, - - "camera": - { - "h": 252, - "w": 448, - "x": 0, - "y": 0, - "blockers" : - [ - ] - }, - - "sounds": - [ - {"filename" : "Dhaka.mp3" , "name" : "dhaka" , "vol" : 12 }, - {"filename" : "splash_sound.wav", "name" : "splash_sound", "vol" : 64}, - {"filename" : "footstep.wav" , "name" : "footstep" , "vol" : 128}, - {"filename" : "door.wav" , "name" : "door_open" , "vol" : 128}, - {"filename" : "draw.wav" , "name" : "draw_sword" , "vol" : 128} - ], - - "sound_regions": - [ - { - "x" : 0, "y" : 0, "h" : 500, "w" : 1800, - "tracks" : - [ - "dhaka" - ] - } - ], - - "animations" : - [ - { - "pack_name" : "splash", - "frame_size" : {"h" : 4, "w" : 20}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 4, "col_w" : 20}, - "anim_set": - [ - {"filename" : "water_ripple.bmp", "frame_count" : 6 , "frame_rate" : 25, "id" : "PARTICLE" } - ], - "loop_ids" : - [ - "PARTICLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "PARTICLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "haze", - "frame_size" : {"h" : 284, "w" : 4095}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 284, "col_w" : 4095}, - "anim_set": - [ - {"filename" : "haze.bmp", "frame_count" : 1 , "frame_rate" : 250, "id" : "PARTICLE" } - ], - "loop_ids" : - [ - "PARTICLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "PARTICLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "player_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "player\\player_idle_begin.bmp" , "frame_count" : 2 , "frame_rate" : 250, "id" : "IDLE_BEGIN" }, - {"filename" : "player\\player_idle.bmp" , "frame_count" : 6 , "frame_rate" : 275, "id" : "IDLE" }, - {"filename" : "player\\player_jump.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP" }, - {"filename" : "player\\player_jump_to_fall.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP_TO_FALL"}, - {"filename" : "player\\player_fall.bmp" , "frame_count" : 5 , "frame_rate" : 75, "id" : "FALL" }, - {"filename" : "player\\player_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" }, - {"filename" : "player\\player_run_drawn.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN_DRAWN" }, - {"filename" : "player\\player_swim.bmp" , "frame_count" : 6, "frame_rate" : 50 , "id" : "SWIM" }, - {"filename" : "player\\player_swim_tread.bmp" , "frame_count" : 6, "frame_rate" : 80 , "id" : "TREAD" } - ], - "loop_ids" : - [ - "IDLE", - "JUMP", - "FALL", - "RUN", - "RUN_DRAWN", - "SWIM", - "TREAD" - ], - "transition_ids" : - [ - "IDLE_BEGIN", - "JUMP_TO_FALL" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "JUMP", - "transitions": ["NONE" , "NONE", "JUMP_TO_FALL", "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "FALL", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN_DRAWN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SWIM", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "TREAD", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "sword", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 23, "col_w" : 14}, - "anim_set": - [ - {"filename" : "player\\sword\\sword_idle_begin.bmp" , "frame_count" : 2 , "frame_rate" : 250 , "id" : "IDLE_BEGIN" }, - {"filename" : "player\\sword\\sword_idle.bmp" , "frame_count" : 6 , "frame_rate" : 275, "id" : "IDLE" }, - {"filename" : "player\\sword\\sword_jump.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP" }, - {"filename" : "player\\sword\\sword_jump_to_fall.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "JUMP_TO_FALL"}, - {"filename" : "player\\sword\\sword_fall.bmp" , "frame_count" : 5 , "frame_rate" : 75, "id" : "FALL" }, - {"filename" : "player\\sword\\sword_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" }, - {"filename" : "player\\sword\\sword_run_drawn.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN_DRAWN" }, - {"filename" : "player\\sword\\sword_swim.bmp" , "frame_count" : 6, "frame_rate" : 50 , "id" : "SWIM" }, - {"filename" : "player\\sword\\sword_swim_tread.bmp" , "frame_count" : 6, "frame_rate" : 80 , "id" : "TREAD" } - ], - "loop_ids" : - [ - "IDLE", - "JUMP", - "FALL", - "RUN", - "RUN_DRAWN", - "SWIM", - "TREAD" - ], - "transition_ids" : - [ - "IDLE_BEGIN", - "JUMP_TO_FALL" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "JUMP", - "transitions": ["NONE" , "NONE", "JUMP_TO_FALL", "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "FALL", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "RUN_DRAWN", - "transitions": ["IDLE_BEGIN", "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SWIM", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "TREAD", - "transitions": ["NONE" , "NONE", "NONE" , "NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "gate", - "frame_size" : {"h" : 66, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : -29, "col_h" : 37, "col_w" : 8}, - "anim_set": - [ - {"filename" : "gate\\gate_down.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_DOWN" }, - {"filename" : "gate\\gate_up.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_UP" }, - {"filename" : "gate\\gate_lower.bmp" , "frame_count" : 6 , "frame_rate" : 40 , "id" : "GATE_LOWER" }, - {"filename" : "gate\\gate_lower_begin.bmp" , "frame_count" : 3 , "frame_rate" : 40 , "id" : "GATE_LOWER_BEGIN" }, - {"filename" : "gate\\gate_raise.bmp" , "frame_count" : 38, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_LOWER_BEGIN", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "winch", - "frame_size" : {"h" : 31, "w" : 22}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 17, "col_w" : 22}, - "anim_set": - [ - {"filename" : "winch\\winch_down.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_DOWN" }, - {"filename" : "winch\\winch_up.bmp" , "frame_count" : 1 , "frame_rate" : 100 , "id" : "GATE_UP" }, - {"filename" : "winch\\winch_lower.bmp" , "frame_count" : 6 , "frame_rate" : 40 , "id" : "GATE_LOWER" }, - {"filename" : "winch\\winch_lower_begin.bmp" , "frame_count" : 4 , "frame_rate" : 120 , "id" : "GATE_LOWER_BEGIN" }, - {"filename" : "winch\\winch_raise.bmp" , "frame_count" : 40, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_LOWER_BEGIN", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "gateman_npc", - "frame_size" : {"h" : 26, "w" : 14}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 26, "col_w" : 14}, - "anim_set": - [ - {"filename" : "NPCs\\gateman\\gateoperator_idle.bmp" , "frame_count" : 6 , "frame_rate" : 250 , "id" : "GATE_DOWN" }, - {"filename" : "NPCs\\gateman\\gateoperator_idle.bmp" , "frame_count" : 6 , "frame_rate" : 250 , "id" : "GATE_UP" }, - {"filename" : "NPCs\\gateman\\gateoperator_lower.bmp" , "frame_count" : 7 , "frame_rate" : 120 , "id" : "GATE_LOWER" }, - {"filename" : "NPCs\\gateman\\gateoperator_raise.bmp" , "frame_count" : 43, "frame_rate" : 120 , "id" : "GATE_RAISE" } - ], - "loop_ids" : - [ - "GATE_DOWN", - "GATE_UP" - ], - "transition_ids" : - [ - "GATE_LOWER", - "GATE_RAISE" - ], - "anim_graph": - [ - { - "loop_name": "GATE_DOWN", - "transitions": ["NONE", "GATE_RAISE"] - }, - { - "loop_name": "GATE_UP", - "transitions": ["GATE_LOWER", "NONE"] - } - ] - }, - { - "pack_name" : "red_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "red_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "IDLE_BEGIN"}, - {"filename" : "red_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "IDLE" }, - {"filename" : "red_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "off_x" : 0, "off_y" : 0, "col_h" : 0, "col_w" : 0, "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "yella_pack", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "yella_idle_begin.bmp", "frame_count" : 4 , "frame_rate" : 75 , "id" : "IDLE_BEGIN"}, - {"filename" : "yella_idle.bmp" , "frame_count" : 3 , "frame_rate" : 100, "id" : "IDLE" }, - {"filename" : "yella_run.bmp" , "frame_count" : 15, "frame_rate" : 20 , "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "b_rabbit_pack", - "frame_size" : {"h" : 5, "w" : 6}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 5, "col_w" : 6}, - "anim_set": - [ - {"filename" : "rabbits\\brabbit_hop.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "RUN" }, - {"filename" : "rabbits\\brabbit_idle_eat.bmp" , "frame_count" : 13, "frame_rate" : 100, "id" : "EAT" }, - {"filename" : "rabbits\\brabbit_idle_look.bmp" , "frame_count" : 8 , "frame_rate" : 100, "id" : "LOOK" }, - {"filename" : "rabbits\\brabbit_sleep.bmp" , "frame_count" : 1 , "frame_rate" : 100, "id" : "SLEEP" } - ], - "loop_ids" : - [ - "RUN", - "EAT", - "LOOK", - "SLEEP" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "RUN", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "EAT", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "LOOK", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - }, - { - "loop_name": "SLEEP", - "transitions": ["NONE", "NONE", "NONE", "NONE"] - } - ] - }, - { - "pack_name" : "loyal_bug_pack", - "frame_size" : {"h" : 26, "w" : 64}, - "col_data" : {"off_x" : -32, "off_y" : 0, "col_h" : 26, "col_w" : 32}, - "anim_set": - [ - {"filename" : "loyal_bug\\loyalbug_idle_begin.bmp" , "frame_count" : 5 , "frame_rate" : 75 , "id" : "IDLE_BEGIN"}, - {"filename" : "loyal_bug\\loyalbug_idle.bmp" , "frame_count" : 11 , "frame_rate" : 120, "id" : "IDLE" }, - {"filename" : "loyal_bug\\loyalbug_walk.bmp" , "frame_count" : 23, "frame_rate" : 20 , "id" : "RUN" } - ], - "loop_ids" : - [ - "IDLE", - "RUN" - ], - "transition_ids" : - [ - "IDLE_BEGIN" - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE", "NONE"] - }, - { - "loop_name": "RUN", - "transitions": ["IDLE_BEGIN", "NONE"] - } - ] - }, - { - "pack_name" : "hostile_bug", - "frame_size" : {"h" : 7, "w" : 13}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 7, "col_w" : 13}, - "anim_set": - [ - {"filename" : "hostile\\bug_walk.bmp" , "frame_count" : 8 , "frame_rate" : 75 , "id" : "RUN"} - ], - "loop_ids" : - [ - "RUN" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "RUN", - "transitions": [] - } - ] - }, - { - "pack_name" : "door", - "frame_size" : {"h" : 22, "w" : 15}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 15}, - "anim_set": - [ - {"filename" : "door.bmp" , "frame_count" : 1, "frame_rate" : 100 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "garden_npc", - "frame_size" : {"h" : 22, "w" : 11}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 11}, - "anim_set": - [ - {"filename" : "NPCs\\gardenwoman_idle.bmp" , "frame_count" : 5, "frame_rate" : 300 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "smoke_npc", - "frame_size" : {"h" : 22, "w" : 13}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 13}, - "anim_set": - [ - {"filename" : "NPCs\\smokingman_idle.bmp" , "frame_count" : 21, "frame_rate" : 260 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "sit_man_npc", - "frame_size" : {"h" : 22, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 22, "col_w" : 8}, - "anim_set": - [ - {"filename" : "NPCs\\sitting_man_idle.bmp" , "frame_count" : 11, "frame_rate" : 260 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "storeowner_npc", - "frame_size" : {"h" : 25, "w" : 8}, - "col_data" : {"off_x" : 0, "off_y" : 0, "col_h" : 25, "col_w" : 8}, - "anim_set": - [ - {"filename" : "NPCs\\storeowner_idle.bmp" , "frame_count" : 8, "frame_rate" : 415 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - }, - { - "pack_name" : "bad_hat", - "frame_size" : {"h" : 23, "w" : 14}, - "col_data" : {"off_x" : -5, "off_y" : 0, "col_h" : 23, "col_w" : 6}, - "anim_set": - [ - {"filename" : "player\\myhatisat.bmp" , "frame_count" : 1, "frame_rate" : 100 , "id" : "IDLE"} - ], - "loop_ids" : - [ - "IDLE" - ], - "transition_ids" : - [ - ], - "anim_graph": - [ - { - "loop_name": "IDLE", - "transitions": ["NONE"] - } - ] - } - ], - - "actors" : - [ - {"name":"storeowner0", "type" : "talker" , "anim_pack" : "storeowner_npc" , "x" : 1339 , "y" : 411, "lines" : "I gotta say something."}, - {"name":"garden0", "type" : "talker" , "anim_pack" : "garden_npc" , "x" : 297 , "y" : 387, "lines" : "Heres the garden woman, this is the stuff she will say. To demonstrate scrolling heres some more text."}, - {"name":"sit0", "type" : "talker" , "anim_pack" : "sit_man_npc" , "x" : 1637 , "y" : 351, "lines" : "Nice try bro"}, - {"name":"smoke0", "type" : "talker" , "anim_pack" : "smoke_npc" , "x" : 184 , "y" : 395, "lines" : "This is the smoking man, talkers can be spoken to from some distance away horizontally, but you need to be closer vertically. text"}, - {"name":"bug0", "type" : "talker" , "anim_pack" : "loyal_bug_pack" , "x" : 1500 , "y" : 410, "lines" : "This is the smoking man, talkers can be spoken to from some distance away horizontally, but you need to be closer vertically. text"}, - {"name":"player0", "type" : "player" , "anim_pack" : "player_pack" , "x" : 1500, "y" : 50} - ], - - "hud_textures" : - { - "life_base" : "life_base.bmp", - "life_bar" : "life_bar.bmp", - "text_box" : "dialogue_box.bmp", - "fader" : "fader.bmp" - }, - - "Particles" : - [ - {"anim_pack" : "splash"} - ] - - } -} diff --git a/.svn/pristine/eb/eb3e3c44270fd19e3505bb772ee17b48e202975a.svn-base b/.svn/pristine/eb/eb3e3c44270fd19e3505bb772ee17b48e202975a.svn-base Binary files differ. diff --git a/.svn/pristine/eb/eb46f66e157e4e4a2e2b034fdade0167dc6b01da.svn-base b/.svn/pristine/eb/eb46f66e157e4e4a2e2b034fdade0167dc6b01da.svn-base Binary files differ. diff --git a/.svn/pristine/ec/ec2e0abd4e20f51e964428608514c99253c45b0b.svn-base b/.svn/pristine/ec/ec2e0abd4e20f51e964428608514c99253c45b0b.svn-base Binary files differ. diff --git a/.svn/pristine/ec/ec3bed34b21d644201b57afac19a13a7dc5f0165.svn-base b/.svn/pristine/ec/ec3bed34b21d644201b57afac19a13a7dc5f0165.svn-base @@ -1,153 +0,0 @@ -/* -Copyright (c) 2009 Dave Gamble - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#ifndef cJSON__h -#define cJSON__h - -#ifdef __cplusplus -extern "C" -{ -#endif - - /* cJSON Types: */ -#define cJSON_False (1 << 0) -#define cJSON_True (1 << 1) -#define cJSON_NULL (1 << 2) -#define cJSON_Number (1 << 3) -#define cJSON_String (1 << 4) -#define cJSON_Array (1 << 5) -#define cJSON_Object (1 << 6) - -#define cJSON_IsReference 256 -#define cJSON_StringIsConst 512 - - /* The cJSON structure: */ - typedef struct cJSON { - struct cJSON *next, *prev; /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ - struct cJSON *child; /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ - - int type; /* The type of the item, as above. */ - - char *valuestring; /* The item's string, if type==cJSON_String */ - int valueint; /* The item's number, if type==cJSON_Number */ - double valuedouble; /* The item's number, if type==cJSON_Number */ - - char *string; /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ - } cJSON; - - typedef struct cJSON_Hooks { - void *(*malloc_fn)(size_t sz); - void(*free_fn)(void *ptr); - } cJSON_Hooks; - - /* Supply malloc, realloc and free functions to cJSON */ - extern void cJSON_InitHooks(cJSON_Hooks* hooks); - - - /* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */ - extern cJSON *cJSON_Parse(const char *value); - /* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */ - extern char *cJSON_Print(cJSON *item); - /* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */ - extern char *cJSON_PrintUnformatted(cJSON *item); - /* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */ - extern char *cJSON_PrintBuffered(cJSON *item, int prebuffer, int fmt); - /* Delete a cJSON entity and all subentities. */ - extern void cJSON_Delete(cJSON *c); - - /* Returns the number of items in an array (or object). */ - extern int cJSON_GetArraySize(cJSON *array); - /* Retrieve item number "item" from array "array". Returns NULL if unsuccessful. */ - extern cJSON *cJSON_GetArrayItem(cJSON *array, int item); - /* Get item "string" from object. Case insensitive. */ - extern cJSON *cJSON_GetObjectItem(cJSON *object, const char *string); - extern int cJSON_HasObjectItem(cJSON *object, const char *string); - /* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ - extern const char *cJSON_GetErrorPtr(void); - - /* These calls create a cJSON item of the appropriate type. */ - extern cJSON *cJSON_CreateNull(void); - extern cJSON *cJSON_CreateTrue(void); - extern cJSON *cJSON_CreateFalse(void); - extern cJSON *cJSON_CreateBool(int b); - extern cJSON *cJSON_CreateNumber(double num); - extern cJSON *cJSON_CreateString(const char *string); - extern cJSON *cJSON_CreateArray(void); - extern cJSON *cJSON_CreateObject(void); - - /* These utilities create an Array of count items. */ - extern cJSON *cJSON_CreateIntArray(const int *numbers, int count); - extern cJSON *cJSON_CreateFloatArray(const float *numbers, int count); - extern cJSON *cJSON_CreateDoubleArray(const double *numbers, int count); - extern cJSON *cJSON_CreateStringArray(const char **strings, int count); - - /* Append item to the specified array/object. */ - extern void cJSON_AddItemToArray(cJSON *array, cJSON *item); - extern void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item); - extern void cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item); /* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object */ - /* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ - extern void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); - extern void cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item); - - /* Remove/Detatch items from Arrays/Objects. */ - extern cJSON *cJSON_DetachItemFromArray(cJSON *array, int which); - extern void cJSON_DeleteItemFromArray(cJSON *array, int which); - extern cJSON *cJSON_DetachItemFromObject(cJSON *object, const char *string); - extern void cJSON_DeleteItemFromObject(cJSON *object, const char *string); - - /* Update array items. */ - extern void cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */ - extern void cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem); - extern void cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *newitem); - - /* Duplicate a cJSON item */ - extern cJSON *cJSON_Duplicate(cJSON *item, int recurse); - /* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will - need to be released. With recurse!=0, it will duplicate any children connected to the item. - The item->next and ->prev pointers are always zero on return from Duplicate. */ - - /* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */ - /* If you supply a ptr in return_parse_end and parsing fails, then return_parse_end will contain a pointer to the error. If not, then cJSON_GetErrorPtr() does the job. */ - extern cJSON *cJSON_ParseWithOpts(const char *value, const char **return_parse_end, int require_null_terminated); - - extern void cJSON_Minify(char *json); - - /* Macros for creating things quickly. */ -#define cJSON_AddNullToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateNull()) -#define cJSON_AddTrueToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateTrue()) -#define cJSON_AddFalseToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateFalse()) -#define cJSON_AddBoolToObject(object,name,b) cJSON_AddItemToObject(object, name, cJSON_CreateBool(b)) -#define cJSON_AddNumberToObject(object,name,n) cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n)) -#define cJSON_AddStringToObject(object,name,s) cJSON_AddItemToObject(object, name, cJSON_CreateString(s)) - - /* When assigning an integer value, it needs to be propagated to valuedouble too. */ -#define cJSON_SetIntValue(object,val) ((object)?(object)->valueint=(object)->valuedouble=(val):(val)) -#define cJSON_SetNumberValue(object,val) ((object)?(object)->valueint=(object)->valuedouble=(val):(val)) - - /* Macro for iterating over an array */ -#define cJSON_ArrayForEach(pos, head) for(pos = (head)->child; pos != NULL; pos = pos->next) - -#ifdef __cplusplus -} -#endif - -#endif- \ No newline at end of file diff --git a/.svn/pristine/ec/ec4a113b1a215f0ebdb7290ee00cdcb566214bf9.svn-base b/.svn/pristine/ec/ec4a113b1a215f0ebdb7290ee00cdcb566214bf9.svn-base @@ -1,1212 +0,0 @@ -#include <time.h> -#include <stdio.h> -#include <string.h> -#include <assert.h> -#include <stdarg.h> -#include "SDL.h" -#include "SDL_ttf.h" - -//Time Defines -#define FRAMES_PER_SECOND 60.0 -#define CLOCKS_PER_FRAME (CLOCKS_PER_SEC/FRAMES_PER_SECOND) -#define MS_PER_FRAME 1/(FRAMES_PER_SECOND/1000) -// - -//World/Screen size defines -#define WORLD_W 1920 -#define WORLD_H 1080 - -#define SCREEN_W 1280 -#define SCREEN_H 720 -// - -// Console Defines -#define LINE_LIMIT 40 -#define LINE_SIZE 100 -#define CONSOLE_TEXT_LIMIT ((LINE_LIMIT+1)*LINE_SIZE) -// - -//Actor Direction Defines -#define LEFT 1 -#define RIGHT 0 -// - -//Actor State Defines -#define IDLE 10 -#define RUN 20 - -#define RUN_LEFT 1 -#define RUN_RIGHT 2 -#define RUN_DOWN 3 -#define RUN_UP 4 -// - -//Terrain type defines -#define AIR 0x00 -#define GROUND 0x01 -#define PLATFORM 0x02 -#define WATER 0x04 - -class Console; -Console* gCons = NULL; -Console* rCons = NULL; - -class ConsoleStringManager -{ -public: - ConsoleStringManager() - { - mEndPointer = mText; - mNextLineIndex = 0; - memset(mLines, 0, sizeof(mLines)); - } - - void AddLine(char* string, int CharCount) - { - - if (((mEndPointer - mText) + CharCount + 1) > CONSOLE_TEXT_LIMIT) - { - mEndPointer = mText; - } - - memcpy(mEndPointer, string, CharCount); - mEndPointer[CharCount] = '\0'; - - mLines[mNextLineIndex] = mEndPointer; - mEndPointer = (mEndPointer + CharCount + 1); - - mNextLineIndex = mNextLineIndex + 1; - if (mNextLineIndex == LINE_LIMIT) - { - mNextLineIndex = 0; - } - } - - void ConsoleLog(char* msg) - { - while (1) - { - char* TermChar = strchr(msg, '\n'); - if (TermChar == NULL) break; - - AddLine(msg, (TermChar - msg)); - msg = TermChar + 1; - } - } - - void ConsolePrintf(char* fmt, ...) - { - char msgf[256]; - - va_list args; - va_start(args, fmt); - sprintf(msgf, fmt, args); - va_end(args); - - ConsoleLog(msgf); - } - - char* GetLine(int x) - { - return mLines[x]; - } - - int GetNextLineIndex() - { - return mNextLineIndex; - } - -protected: - - char* mLines[LINE_LIMIT]; - int mNextLineIndex; - - char mText[CONSOLE_TEXT_LIMIT]; - char* mEndPointer; - - -}; - -class Console -{ -public: - Console(char* filename, int ptsize, SDL_Color Text, SDL_Color BG) - { - mTextRect.w = 0; - mTextRect.h = 0; - mTextRect.x = 0; - mTextRect.y = 0; - - mLinePosRect.w = 0; - mLinePosRect.h = 0; - mLinePosRect.x = 0; - mLinePosRect.y = 0; - - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2013\\Projects\\TapestryEngine\\TapestryEngine\\fonts\\"; - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - char* fullpath = strcat(pathbuffer, filename); - - mFont = TTF_OpenFont(fullpath, ptsize); - - assert(mFont != NULL); - - mText = Text; - mBG = BG; - } - - void ConsPrintf(char* fmt, ...) - { - char msgf[256]; - - va_list args; - va_start(args, fmt); - vsprintf(msgf, fmt, args); - va_end(args); - - mCSM.ConsoleLog(msgf); - } - - void DrawConsole(SDL_Renderer* ren) - { - - int PrintIndex = mCSM.GetNextLineIndex(); - - for (int i = 0; i < LINE_LIMIT; i++) - { - - int NextLineIndex = (PrintIndex + i); - if (NextLineIndex >= LINE_LIMIT) - { - NextLineIndex = NextLineIndex - LINE_LIMIT; - } - - - char* line = mCSM.GetLine(NextLineIndex); - - if (line != NULL) - { - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(mFont, line, mText, mBG); - if (!LineSur) - { - error = SDL_GetError(); - } - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - if (SDL_QueryTexture(LineTex, NULL, NULL, &mTextRect.w, &mTextRect.h)) - { - error = SDL_GetError(); - } - - mLinePosRect.w = mTextRect.w; - mLinePosRect.h = mTextRect.h; - mLinePosRect.x = 0; - mLinePosRect.y = (mTextRect.h * i); - - if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) - { - error = SDL_GetError(); - } - SDL_DestroyTexture(LineTex); - } - } - } - - void DrawConsoleReadout(SDL_Renderer* ren, int x,int y) - { - int PrintIndex = mCSM.GetNextLineIndex(); - - for (int i = 0; i < LINE_LIMIT; i++) - { - - int NextLineIndex = (PrintIndex + i); - if (NextLineIndex >= LINE_LIMIT) - { - NextLineIndex = NextLineIndex - LINE_LIMIT; - } - - - char* line = mCSM.GetLine(NextLineIndex); - - if (line != NULL) - { - const char* error; - - SDL_Surface* LineSur = TTF_RenderText_Shaded(mFont, line, mText, mBG); - if (!LineSur) - { - error = SDL_GetError(); - } - SDL_Texture* LineTex = SDL_CreateTextureFromSurface(ren, LineSur); - if (!LineTex) - { - error = SDL_GetError(); - } - SDL_FreeSurface(LineSur); - if (SDL_QueryTexture(LineTex, NULL, NULL, &mTextRect.w, &mTextRect.h)) - { - error = SDL_GetError(); - } - - mLinePosRect.w = mTextRect.w; - mLinePosRect.h = mTextRect.h; - mLinePosRect.x = x; - mLinePosRect.y = y; - - if (SDL_RenderCopy(ren, LineTex, &mTextRect, &mLinePosRect)) - { - error = SDL_GetError(); - } - SDL_DestroyTexture(LineTex); - } - } - } -protected: - TTF_Font* mFont; - SDL_Color mText; - SDL_Color mBG; - SDL_Rect mTextRect; - SDL_Rect mLinePosRect; - ConsoleStringManager mCSM; -}; - -int GetTimeF() //measures in frames -{ - int time = (clock() / CLOCKS_PER_FRAME); - return time; -} - -int GetTimeMS() //measures in milliseconds -{ - int time = (clock() / (CLOCKS_PER_SEC/1000)); - return time; -} - -SDL_Surface* LoadSurfaceBMP(const char* filename) -{ - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2013\\Projects\\TapestryEngine\\TapestryEngine\\imgs\\"; - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - SDL_Surface* surface = SDL_LoadBMP(strcat(pathbuffer, filename)); - if (surface == NULL) - { - gCons->ConsPrintf("SDL_LoadBMP Error: %s", SDL_GetError()); - } - - SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF)); - - return surface; -} - -struct Frame -{ - SDL_Rect FrameRect; - SDL_Texture* FrameSource; -}; - -class FrameSet -{ -public: - FrameSet() : mFrameCount(0), mFrames() {} - - FrameSet(SDL_Renderer* ren, const char* SourcePath, int FrameCount, int FRate, int frameH, int frameW) - { - memset(mFrames, 0, 256); - mframesource = SDL_CreateTextureFromSurface(ren,LoadSurfaceBMP(SourcePath)); - mFrameCount = (FrameCount - 1); - mDefaultFrameRate = FRate; - - SDL_Rect framerect; - framerect.h = frameH; - framerect.w = frameW; - framerect.x = 0; - framerect.y = 0; - - int i = 0; - while (i <= mFrameCount) - { - - framerect.x = ((i)*frameW); - - mFrames[i] = framerect; - - i++; - } - } - - int GetNumberOfFrames() - { - return mFrameCount; - } - - int GetDefaultFrameRate() - { - return mDefaultFrameRate; - } - - SDL_Texture* GetFrameSource() - { - return mframesource; - } - - SDL_Rect GetFrameRect(int framenumber) - { - //gCons->ConsPrintf("Frame Number = %i\n", framenumber); - return mFrames[framenumber]; - } - -protected: - int mFrameCount; - int mDefaultFrameRate; - SDL_Texture* mframesource; - SDL_Rect mFrames[256]; -}; - -class animation -{ -public: - - animation() : mFrameSet(), mCurrentFrameNumber(0) {} - - animation(FrameSet* set, bool flip = true) - { - mFrameSet = set; - mCurrentFrameNumber = 0; - mFrameRate = set->GetDefaultFrameRate(); - mTimer = 0; - mIsFlippable = flip; - mIsPlaying = false; - mCurrentFrame.FrameSource = mFrameSet->GetFrameSource(); - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); - } - - Frame GetCurrentFrame() - { - mCurrentFrame.FrameRect = mFrameSet->GetFrameRect(mCurrentFrameNumber); - if (mIsPlaying == true) - { - if ((GetTimeMS() - mTimer) >= mFrameRate) - { - if (mCurrentFrameNumber == mFrameSet->GetNumberOfFrames()) - { - mCurrentFrameNumber = 0; - } - else - { - mCurrentFrameNumber = (mCurrentFrameNumber + 1); - } - mTimer = GetTimeMS(); - } - } - return mCurrentFrame; - } - - bool SetPlaySpeed(int speed) - { - mFrameRate = speed; - } - - bool IsFlippable() - { - return mIsFlippable; - } - - bool Play() - { - return mIsPlaying = true; - } - bool Stop() - { - mCurrentFrameNumber = 0; - return mIsPlaying = false; - } - -protected: - - FrameSet* mFrameSet; - int mCurrentFrameNumber; - Frame mCurrentFrame; - int mTimer; - int mFrameRate; - bool mIsFlippable; - bool mIsPlaying; -}; - -class animPack -{ -public: - animPack() : mIndexer(), mAnimData() {} - - animPack(int AnimCount, FrameSet** AnimData, int* Index) - { - mAnimData = AnimData; - mIndexer = Index; - mAnimCount = AnimCount; - - mAnims = new animation[AnimCount]; - for ( int i = 0; i < mAnimCount; i++) - { - mAnims[i] = animation( mAnimData[i] ); - } - } - - FrameSet* GetAnimationData(int AnimationID) - { - for (int i = 0; i < mAnimCount; i++) - { - if (mIndexer[i] == AnimationID) - { - return mAnimData[i]; - } - } - } - - animation* GetAnimation(int AnimationID) - { - for (int i = 0; i < mAnimCount; i++) - { - if (mIndexer[i] == AnimationID) - { - if (mLastIndex != i) - { - mAnims[mLastIndex].Stop(); - mLastIndex = i; - } - - mAnims[i].Play(); - return &mAnims[i]; - } - } - } - -protected: - - int mAnimCount; - int* mIndexer; - int mLastIndex; - FrameSet** mAnimData; - animation* mAnims; -}; - - -class Terrain -{ -public: - Terrain(SDL_Surface* Col_Map) - { - mCol_Map = Col_Map; - } - - bool DetectGroundIntersect(SDL_Rect* Bounds) - { - if (mCol_Map->format->format != SDL_PIXELFORMAT_INDEX8) - { - gCons->ConsPrintf("Non-INDEX8 Collision Map Detected\n"); - } - - Uint8* PixMap = (Uint8*)mCol_Map->pixels; - if (Bounds->y < 0) - { - Bounds->y = 0; - } - for (int y = Bounds->y; y <= (Bounds->y + Bounds->h); y++) - { - if (Bounds->x < 0) - { - Bounds->x = 0; - } - for (int x = Bounds->x; x <= (Bounds->x + Bounds->w); x++) - { - if (PixMap[(y*mCol_Map->w) + x] == GROUND) - { - //gCons->ConsPrintf("ground collision detected \n"); - return true; - } - else - { - //gCons->ConsPrintf("no collision detected \n"); - } - } - } - return false; - } - - bool DetectEdgeCollision(SDL_Rect* Bounds, int EdgeThickness) - { - //SDL_Rect LowerBounder; - LowerBounder.w = Bounds->w; - LowerBounder.x = Bounds->x; - LowerBounder.h = EdgeThickness; - LowerBounder.y = ((Bounds->y + Bounds->h) - EdgeThickness ); - - //SDL_Rect UpperBounder; - UpperBounder.w = Bounds->w; - UpperBounder.x = Bounds->x; - UpperBounder.h = EdgeThickness; - UpperBounder.y = Bounds->y; - - //SDL_Rect RightBounder; - RightBounder.w = EdgeThickness; - RightBounder.x = ((Bounds->x + Bounds->w) - EdgeThickness); - RightBounder.h = Bounds->h; - RightBounder.y = Bounds->y; - - //SDL_Rect LeftBounder; - LeftBounder.w = EdgeThickness; - LeftBounder.x = Bounds->x; - LeftBounder.h = Bounds->h; - LeftBounder.y = Bounds->y; - - if ((DetectGroundIntersect(&LowerBounder) == true) || - (DetectGroundIntersect(&UpperBounder) == true) || - (DetectGroundIntersect(&RightBounder) == true) || - (DetectGroundIntersect(&LeftBounder ) == true) ) - { - return true; - } - else - { - return false; - } - } - - SDL_Rect LeftBounder; - SDL_Rect RightBounder; - SDL_Rect UpperBounder; - SDL_Rect LowerBounder; -protected: - - SDL_Surface* mCol_Map; - -}; - -class Actor -{ -public: - - Actor() : mTex(), mHeight(0), mWidth(0), mX(0), mY(0) {} - - Actor(SDL_Renderer* ren, Terrain* ter, animPack Anims, char* file, int Height, int Width, int X, int Y) - { - mTerrain = ter; - SDL_Surface* surface = LoadSurfaceBMP(file); - mTex = SDL_CreateTextureFromSurface(ren, surface); - mAnimPack = Anims; - mHeight = Height; - mWidth = Width; - mX = X; - mY = Y; - mState = IDLE; - } - - int MoveActorCollision(float xspd, float yspd) - { - SDL_Rect Destination; - Destination.h = mHeight; - Destination.w = mWidth; - Destination.x = (int)( (float)mX + (xspd*(GetTimeF() - mLastMoveUpdate)) ); - Destination.y = (int)( (float)mY + (yspd*(GetTimeF() - mLastMoveUpdate)) ); - - - if (mTerrain->DetectEdgeCollision(&Destination,5) == true) - { - MoveActorCollision( (int)((xspd)*(0.5)), (int)((yspd)*(0.5)) ); - } - else - { - mX = Destination.x; - mY = Destination.y; - } - mLastMoveUpdate = GetTimeF(); - return 0; - } - - int MoveActor(float xspd, float yspd) - { - mX = mX + xspd*(GetTimeF() - mLastMoveUpdate); - mY = mY + yspd*(GetTimeF() - mLastMoveUpdate); - mLastMoveUpdate = GetTimeF(); - return 0; - } - - int walk(int spd) - { - - if (mDir == RIGHT) - { - MoveActorCollision( spd, 0); - } - else //mDIR == LEFT - { - MoveActorCollision(-spd, 0); - } - MoveActorCollision(0, 4); - return 0; - } - - bool ControlActor(int xspd, int yspd, SDL_Event* eve) - { - if (eve->key.type == SDL_KEYUP) - { - mState = IDLE; - return 0; - } - - switch (eve->key.keysym.sym) - { - case SDLK_DOWN: - mState = RUN_DOWN; - break; - case SDLK_UP: - mState = RUN_UP; - break; - case SDLK_LEFT: - mState = RUN_LEFT; - mDir = LEFT; - break; - case SDLK_RIGHT: - mState = RUN_RIGHT; - mDir = RIGHT; - break; - } - - - //mLastMoveUpdate = GetTimeF(); - return 0; - } - - bool ActorUpdate() - { - int xspd = 3; - int yspd = 3; - - switch (mState) - { - case RUN_DOWN: - MoveActorCollision(0, yspd); - mFrame = mAnimPack.GetAnimation(RUN)->GetCurrentFrame(); - //gCons->ConsPrintf("down\n"); - break; - case RUN_UP: - MoveActorCollision(0, -yspd); - mFrame = mAnimPack.GetAnimation(RUN)->GetCurrentFrame(); - //gCons->ConsPrintf("up\n"); - break; - case RUN_LEFT: - walk(xspd); - mFrame = mAnimPack.GetAnimation(RUN)->GetCurrentFrame(); - //gCons->ConsPrintf("left\n"); - break; - case RUN_RIGHT: - walk(xspd); - mFrame = mAnimPack.GetAnimation(RUN)->GetCurrentFrame(); - //gCons->ConsPrintf("right\n"); - break; - case IDLE: - mFrame = mAnimPack.GetAnimation(IDLE)->GetCurrentFrame(); - //gCons->ConsPrintf("idle\n"); - mLastMoveUpdate = GetTimeF(); - break; - default: - return false; - } - return true; - } - - int GetX() - { - return mX; - } - - int GetY() - { - return mY; - } - - int GetHeight() - { - return mHeight; - } - - int GetWidth() - { - return mWidth; - } - - SDL_Rect GetRect() - { - SDL_Rect Bounds; - Bounds.x = mX; - Bounds.y = mY; - Bounds.h = mHeight; - Bounds.w = mWidth; - - return Bounds; - } - - SDL_Texture* GetTex() - { - return mTex; - } - - Frame GetFrame() - { - return mFrame; - } - - int GetState() - { - return mState; - } - - int GetDir() - { - return mDir; - } - -protected: - - SDL_Texture* mTex; - Terrain* mTerrain; - animPack mAnimPack; - Frame mFrame; - int mState; - int mDir; - int mHeight; - int mWidth; - int mX; - int mY; - int mLastMoveUpdate; -}; - - -class Camera -{ -public: - Camera() : view(), wrldX(), wrldY() {} - - Camera(int H, int W, int X, int Y) - { - view.h = H; - view.w = W; - - wrldX = X; - wrldY = Y; - view.x = wrldX; - view.y = wrldY; - } - - int GetCamX() - { - return wrldX; - } - - int GetCamY() - { - return wrldY; - } - - SDL_Rect* GetCamView() - { - return &view; - } - - void CamResize(int H, int W) - { - view.h = H; - view.w = W; - } - - SDL_Rect SetCameraPos(SDL_Renderer* ren, int Xpos, int Ypos) - { - wrldX = Xpos; - wrldY = Ypos; - - if (Xpos < 0) - { - wrldX = 0; - } - else if ( (Xpos + view.w) > WORLD_W) - { - wrldX = WORLD_W - view.w; - } - - if (Ypos < 0) - { - wrldY = 0; - } - else if ((Ypos + view.h) > WORLD_H) - { - wrldY = WORLD_H - view.h; - } - - view.x = wrldX; - view.y = wrldY; - - //gCons->ConsPrintf("cam bounds: x= %i - %i, y= %i - %i \n", view.x, (view.x + view.w), view.y, (view.y + view.h)); - - return view; - } - - SDL_Rect SetCameraPosUnbounded(SDL_Renderer* ren, int Xpos, int Ypos) - { - wrldX = Xpos; - wrldY = Ypos; - - view.x = wrldX; - view.y = wrldY; - - //gCons->ConsPrintf("cam bounds: x= %i - %i, y= %i - %i \n", view.x, (view.x + view.w), view.y, (view.y + view.h)); - - return view; - } - - bool ArrowKeyMove(SDL_Renderer* ren, int xspd, int yspd, SDL_Event* eve) - { - if (eve->key.type == SDL_KEYUP) return 0; - - switch (eve->key.keysym.sym) - { - case SDLK_DOWN: - wrldY = wrldY + yspd; - break; - case SDLK_UP: - wrldY = wrldY + -yspd; - break; - case SDLK_LEFT: - wrldX = wrldX + -xspd; - break; - case SDLK_RIGHT: - wrldX = wrldX + xspd; - break; - } - mLastMoveUpdate = GetTimeF(); - SetCameraPos(ren, wrldX, wrldY); - return 0; - } - - bool ActorFollow(SDL_Renderer* ren, Actor act, int Xbound, int Ybound) - { - if (act.GetX() < (wrldX + Xbound)) - { - wrldX = (act.GetX() - Xbound); - //gCons->ConsPrintf("LEFT\n"); - } - if (act.GetX() + act.GetWidth() > ((wrldX + view.w) - Xbound)) - { - wrldX = act.GetX() + act.GetWidth() - view.w + Xbound ; - //gCons->ConsPrintf("RIGHT\n"); - } - - if (act.GetY() < (wrldY + Ybound)) - { - wrldY = (act.GetY() - Ybound); - //gCons->ConsPrintf("LEFT\n"); - } - if (act.GetY() + act.GetHeight() > ((wrldY + view.h) - Ybound)) - { - wrldY = act.GetY() + act.GetHeight() - view.h + Ybound; - //gCons->ConsPrintf("RIGHT\n"); - } - mLastMoveUpdate = GetTimeF(); - SetCameraPos(ren, wrldX, wrldY); - return 0; - } - -protected: - SDL_Rect view; - int wrldX; - int wrldY; - int mLastMoveUpdate; -}; - -SDL_Rect GetScreenPos(Actor act, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(act.GetHeight())*((float)(SCREEN_H) / (float)( cam.GetCamView()->h ))); - ScreenPos.w = (int)((float)(act.GetWidth())*((float)(SCREEN_W) / (float)( cam.GetCamView()->w ))); - - ScreenPos.x = (int)((float)(act.GetX() - cam.GetCamX())*((float)(SCREEN_W) / (float)( cam.GetCamView()->w ))); - ScreenPos.y = (int)((float)(act.GetY() - cam.GetCamY())*((float)(SCREEN_H) / (float)( cam.GetCamView()->h ))); - - return ScreenPos; -} - -SDL_Rect DrawActorTex(SDL_Renderer* ren, Actor act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - SDL_RenderCopy(ren, act.GetTex(), NULL, &ScreenPos); - return ScreenPos; -} - -SDL_Rect DrawActorAnim(SDL_Renderer* ren, Actor act, animation* anim, Camera cam, int dir) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame RenderFrame = anim->GetCurrentFrame(); - - SDL_RendererFlip flip; - - if (anim->IsFlippable() == true) - { - flip = (SDL_RendererFlip)act.GetDir(); - } - else - { - flip = SDL_FLIP_NONE; - } - SDL_RenderCopyEx(ren, RenderFrame.FrameSource, &(RenderFrame.FrameRect), &ScreenPos, 0, NULL, flip); - - return ScreenPos; -} - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor act, Camera cam) -{ - SDL_Rect ScreenPos = GetScreenPos(act, cam); - - Frame RenderFrame = act.GetFrame(); - - SDL_RendererFlip flip; - flip = (SDL_RendererFlip)act.GetDir(); - - SDL_RenderCopyEx(ren, RenderFrame.FrameSource, &(RenderFrame.FrameRect), &ScreenPos, 0, NULL, flip); - - return ScreenPos; -} - -bool DrawRect(SDL_Renderer* ren, SDL_Rect WrldPos, Camera cam) -{ - SDL_Rect ScreenPos; - ScreenPos.h = (int)((float)(WrldPos.h)*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - ScreenPos.w = (int)((float)(WrldPos.w)*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - - ScreenPos.x = (int)((float)(WrldPos.x - cam.GetCamX())*((float)(SCREEN_W) / (float)(cam.GetCamView()->w))); - ScreenPos.y = (int)((float)(WrldPos.y - cam.GetCamY())*((float)(SCREEN_H) / (float)(cam.GetCamView()->h))); - - SDL_Surface* Bounds = LoadSurfaceBMP("BoundingBox.bmp"); - SDL_Texture* BoundsTex = SDL_CreateTextureFromSurface(ren, Bounds); - - SDL_RenderCopy(ren, BoundsTex, NULL, &ScreenPos); - - return false; -} - -int main(int argc, char *argv[]) -{ - if (SDL_Init(SDL_INIT_VIDEO & SDL_INIT_EVENTS) != 0) - { - gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); - SDL_Quit(); - return 1; - } - - if (TTF_Init() != 0) - { - gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); - TTF_Quit(); - SDL_Quit(); - return 1; - } - - SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); - if (window == NULL) - { - gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Color fg = { 255, 255, 255 }; - SDL_Color bg = { 0, 0, 255 }; - - gCons = new Console("ARIAL.TTF", 12, fg, bg); - rCons = new Console("ARIAL.TTF", 12, fg, bg); - - Camera cam = Camera(468, 832, 700, 0); - - SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (ren == NULL) - { - gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - FrameSet RunManSet = FrameSet(ren, "BandanaManRun.bmp", 14, 50, 150, 75); - animation RunMan = animation(&RunManSet, 1000); - FrameSet RunManPlusSet = FrameSet(ren, "BandanaManPlus.bmp", 14, 50, 150, 75); - animation RunManPlus = animation(&RunManPlusSet, 50); - FrameSet RunWomanSet = FrameSet(ren, "BandanaWomanRun.bmp", 14, 50, 150, 75); - animation RunWoman = animation(&RunWomanSet, 50); - - - FrameSet PlayerRunSet = FrameSet(ren, "player_run.bmp", 15, 50, 30, 30); - FrameSet PlayerTempIdle = FrameSet(ren, "player_idle_standin.bmp", 15, 50, 30, 30); - - //NULL Animation Pack Construction - int NULL_AnimCount = 2; - FrameSet** NullPack = (FrameSet**)malloc(NULL_AnimCount * sizeof(FrameSet*)); - int* NullIndex = (int*)malloc(NULL_AnimCount * sizeof(int)); - NullPack[0] = &PlayerTempIdle; - NullPack[1] = &PlayerRunSet; - NullIndex[0] = IDLE; - NullIndex[1] = RUN; - animPack NULLPack = animPack(NULL_AnimCount, NullPack, NullIndex); - // - - //Player Animation Pack Construction - int Player_AnimCount = 2; - FrameSet** PlayerAnimPack = (FrameSet**)malloc(Player_AnimCount * sizeof(FrameSet*)); - int* PlayerIndex = (int*)malloc(Player_AnimCount * sizeof(int)); - PlayerAnimPack[0] = &PlayerTempIdle; - PlayerAnimPack[1] = &PlayerRunSet; - PlayerIndex[0] = IDLE; - PlayerIndex[1] = RUN; - animPack PlayerPack = animPack(Player_AnimCount,PlayerAnimPack,PlayerIndex); - // - - TTF_Font* arial = TTF_OpenFont("C:\\Users\\baptistac1\\Documents\\Visual Studio 2013\\Projects\\LearnEngine\\LearnEngine\\fonts\\ARIAL.TTF", 12); - - SDL_Surface* surface = LoadSurfaceBMP("FloatingDirtLand.bmp"); - - SDL_Texture* Back = SDL_CreateTextureFromSurface(ren, surface); - - - int w; - int h; - SDL_QueryTexture(Back, NULL, NULL, &w, &h); - - - Terrain ter = Terrain(surface); - - Actor bandanaman = Actor(ren, &ter, NULLPack, "RedBox.bmp", 290, 160, 740, 640); - Actor bandanamanplus = Actor(ren, &ter, NULLPack, "RedBox.bmp", 290, 160, 460, 640); - Actor minibandanamanplus = Actor(ren, &ter, PlayerPack, "RedBox.bmp", 30, 30, 460, 675); - Actor bandanawoman = Actor(ren, &ter, NULLPack, "RedBox.bmp", 290, 160, 300, 640); - Actor redbox1 = Actor(ren, &ter, NULLPack, "RedBoxWithTrans.bmp", 200, 200, 0, 0); - Actor bluebox1 = Actor(ren, &ter, NULLPack, "BlueBox.bmp", 200, 200, 100, 400); - Actor lilred = Actor(ren, &ter, NULLPack, "lilred.bmp", 1, 1, 1, 1); //It's lil' red, the debug pixel! - - //Actor Cast[100]; - //for (int i = 0; i < 100; i++) - //{ - // Cast[i] = Actor(ren, "RedBox.bmp", 290, 160, i*70, 340); - //} - - SDL_Rect wrldrect; - wrldrect.w = (int)(((float)SCREEN_W)); - wrldrect.h = (int)(((float)SCREEN_H)); - wrldrect.x = 0; - wrldrect.y = 0; - - int cycle = 0; - - SDL_Event e; - - bool quit = false; - bool forward = true; - while (!quit) - { - int CycleStart = GetTimeMS(); - //gCons->ConsPrintf("HELLO WORLD! %i\n", cycle); - //gCons->ConsPrintf("Blu pos: x = %i, y = %i\n", bluebox1.GetX(), bluebox1.GetY()); - //gCons->ConsPrintf("Red Wrld pos: x = %i, y = %i\n", redbox1.GetX(), redbox1.GetY()); - //gCons->ConsPrintf("Red Wrld pos: x = %i, y = %i\n", lilred.GetX(), lilred.GetY()); - - //gCons->ConsPrintf("time(ms) = %i \n", GetTimeMS()); - - SDL_RenderClear(ren); - SDL_RenderCopy(ren, Back, cam.GetCamView(), NULL); - - //cam.SetCameraPos(ren, (redbox1.GetX()-0), redbox1.GetY()-0); - //cam.ArrowKeyMove(ren, 10, 10, &e); - minibandanamanplus.ControlActor(6, 6, &e); - minibandanamanplus.ActorUpdate(); - cam.ActorFollow(ren, minibandanamanplus, 200 , 150); - - DrawActorTex(ren, bluebox1, cam); - //SDL_Rect ScrPos = DrawActorTex(ren, redbox1, cam); - //SDL_Rect ScrPos = DrawActorTex(ren, lilred, cam); - //gCons->ConsPrintf("Red Scrn Pos: x = %i, y = %i\n", ScrPos.x, ScrPos.y); - //rCons->ConsPrintf("Red Scrn Pos: x = %i, y = %i\n", ScrPos.x, ScrPos.y); - -// DrawActorAnim(ren, bandanaman, &RunMan, cam, SDL_FLIP_NONE); -// DrawActorAnim(ren, bandanawoman, &RunWoman, cam, SDL_FLIP_NONE); -// DrawActorAnim(ren, bandanamanplus, &RunManPlus, cam, SDL_FLIP_NONE); - - //DrawActorTex(ren, minibandanamanplus, cam); - DrawActor(ren, minibandanamanplus, cam); - DrawRect(ren, ter.LowerBounder, cam); - DrawRect(ren, ter.UpperBounder, cam); - DrawRect(ren, ter.LeftBounder, cam); - DrawRect(ren, ter.RightBounder, cam); - //DrawActorAnim(ren, minibandanamanplus, &PlayerTempIdleTest, cam, minibandanamanplus.GetDir()); - - ter.DetectGroundIntersect(&minibandanamanplus.GetRect()); - - rCons->DrawConsoleReadout(ren, 400, 0); - gCons->DrawConsole(ren); - - - SDL_RenderPresent(ren); - - if ((redbox1.GetX() + (redbox1.GetWidth())) > WORLD_W) - { - forward = false; - } - if (redbox1.GetX() < 0) - { - forward = true; - } - - if (forward == true) - { - //redbox1.MoveActorCollision(5, 2); - //bluebox1.MoveActorCollision(5, -2); - } - else - { - //redbox1.MoveActorCollision(-5, -2); - //bluebox1.MoveActorCollision(-5, 2); - } - - SDL_PollEvent(&e); - - if (e.type == SDL_QUIT) - { - quit = true; - } - cycle = cycle + 1; - - int DeltaTime = (GetTimeMS() - CycleStart); - assert(DeltaTime >= 0); - - int DelayTime = MS_PER_FRAME - DeltaTime; - - if (DelayTime >= 0) - { - //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); - SDL_Delay(DelayTime); - } - else - { - //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); - } - } - - delete gCons; - SDL_FreeSurface(surface); - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -}- \ No newline at end of file diff --git a/.svn/pristine/ec/ec69b4c192f299ef9ae03756a5816fcf12be3ab3.svn-base b/.svn/pristine/ec/ec69b4c192f299ef9ae03756a5816fcf12be3ab3.svn-base @@ -1,115 +0,0 @@ -#ifndef HUD_H -#define HUD_H - -#include "Utils.h" -#include "Console.h" -#include "Actor.h" -#include "MiscDraw.h" -#include "Event.h" - - -struct WidgetElement -{ - SDL_Rect pos; - SDL_Texture* img; -}; - -class Widget -{ -public: - - Widget() {} - - Widget(SDL_Renderer* ren, SDL_Rect pos) : mPos(pos), mren(ren), mDisplay(true) - { - } - - SDL_Rect* GetPos() - { - return &mPos; - } - - virtual bool WidgetUpdate() = 0; - - virtual bool WidgetDraw() = 0; - -protected: - - bool mDisplay; - SDL_Renderer* mren; - SDL_Rect mPos; - -}; - -SDL_Rect CalcElementScreenPosition(Widget* wid, SDL_Rect elementRect); - -class LifeMeter : public Widget -{ -public: - - LifeMeter() {} - - LifeMeter(Player* target, SDL_Rect pos, SDL_Renderer* ren, char* life_base, char* life_bar); - - bool WidgetUpdate(); - - bool WidgetDraw(); - -protected: - - int* mHP; - int* mHPmax; - WidgetElement mBase; - WidgetElement mLifebar; - -}; - -class Fader : public Widget, public EventReceiver //Must Subscribe to the player -{ -public: - Fader() {} - - Fader(SDL_Renderer* ren, char* black, char* red); - - void PlayFade(int duration,int color, int opacity); - - bool WidgetUpdate(); - - bool WidgetDraw(); - - bool EventProcess(Event eve); - -protected: - - WidgetElement mBlack; - WidgetElement mRed; - - int mOpacityTarget; - int mFadeTime; - int mFadeColor; - - int mTimer; - int mOpacity; -}; - -class HUD -{ -public: - - HUD() : mIndex(0) {} - - bool LogWidget(Widget* wid); - - bool UpdateWidgets(); - - bool DrawWidgets(); - -protected: - - Widget* mWidgets[10]; - int mIndex; -}; - - - -#endif- \ No newline at end of file diff --git a/.svn/pristine/ed/ed4f7cdb34b97ce661273c7586a36a3477928064.svn-base b/.svn/pristine/ed/ed4f7cdb34b97ce661273c7586a36a3477928064.svn-base @@ -1,97 +0,0 @@ -#ifndef LEVEL_H -#define LEVEL_H - -#include "Utils.h" -#include "Console.h" -#include "Context.h" - -#include "Actor.h" -#include "ActorCollision.h" -#include "Particle.h" -#include "Camera.h" -#include "Event.h" -#include "Input.h" -#include "symbol.h" -#include "MiscDraw.h" -#include "sound.h" -#include "HUD.h" -#include "Dialogue.h" - -struct ActorName -{ - char* name; - Actor* act; -}; - -Actor* FindRef(std::vector<ActorName*> refs, char* name); - -class Level : public Context, public EventReceiver -{ -public: - - Level() {} - - Level(SDL_Renderer* ren, Control* ctrl) - { - mRen = ren; - mInput = ctrl; - } - - bool LoadWorld(cJSON* level); - - bool LoadCamera(cJSON* level); - - bool LoadAnimations(cJSON* level); - - bool LoadAnimGraph(cJSON* anim_pack); - - bool LoadActors(cJSON* level); - - bool LoadParticles(cJSON* level); - - bool LoadSounds(cJSON* level); - - bool LoadHud(cJSON* level); - - bool Load(const char* filename); - - bool Update(); - - bool EventProcess(Event eve); - - ActorHandleManager mAHM; - SpatialMonitor mSpatMon; - Control* mInput; - ParticleManager mPrtLib; - SoundManager mSoundLib; - - - int mHeight; - int mWidth; - Camera mCam; - - SDL_Surface* mColMap; - - std::vector<AnimDataPack*> mAnimData; - std::vector<AnimGraphData*> mAnimGraphs; - - std::vector<Actor*> mCast; //Used to draw all actors, maybe should use AHM instead - - std::vector<SDL_Texture*> mBack; - std::vector<float> mParallax_back; - - std::vector<SDL_Texture*> mFore; - - std::vector<SDL_Texture*> mOver; - std::vector<float> mParallax_over; - - HUD mHUD; - -protected: - - char** mAnim_names; - Player* mPlayer; - -}; - -#endif diff --git a/.svn/pristine/ee/ee2afb4fb7a0a99246b13b67e9c3caf3b13ae318.svn-base b/.svn/pristine/ee/ee2afb4fb7a0a99246b13b67e9c3caf3b13ae318.svn-base Binary files differ. diff --git a/.svn/pristine/ee/ee4490ffb1cd960cab48369880b0e1ce9ce9ba86.svn-base b/.svn/pristine/ee/ee4490ffb1cd960cab48369880b0e1ce9ce9ba86.svn-base Binary files differ. diff --git a/.svn/pristine/ee/eed048fec2e1ba599c0f08f4fc7da6edc4da6d86.svn-base b/.svn/pristine/ee/eed048fec2e1ba599c0f08f4fc7da6edc4da6d86.svn-base Binary files differ. diff --git a/.svn/pristine/ef/ef1547dfb6c30b50941d5f33e81ac7a546473205.svn-base b/.svn/pristine/ef/ef1547dfb6c30b50941d5f33e81ac7a546473205.svn-base @@ -1,233 +0,0 @@ -#include "Utils.h" -#include "DiagnosticDraw.h" -#include "Console.h" - -ParticleTypeData NullPTdata() -{ - ParticleTypeData ptData; - ptData.NoData = true; - return ptData; -} - -Time* gTime = NULL; - -//int GetTimeF() //measures in frames -//{ -// int time = (clock() / CLOCKS_PER_FRAME); -// return time; -//} - -int GetRealTimeMS() //measures in milliseconds -{ - int time = (clock() / (CLOCKS_PER_SEC / 1000)); - return time; -} - -SDL_Surface* LoadSurfaceBMP(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\imgs\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\imgs\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - - SDL_Surface* surface = SDL_LoadBMP(strcat(pathbuffer, filename)); - if (surface == NULL) - { - gCons->ConsPrintf("SDL_LoadBMP Error: %s", SDL_GetError()); - } - - SDL_SetColorKey(surface, SDL_TRUE, SDL_MapRGB(surface->format, 0xFF, 0x00, 0xFF)); - - return surface; -} - -TTF_Font* LoadFont(char* filename, int ptsize) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\fonts\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\fonts\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - char* fullpath = strcat(pathbuffer, filename); - - TTF_Font* font = TTF_OpenFont(fullpath, ptsize); - - assert(font != NULL); - - return font; -} -cJSON * LoadJSON(const char* filename) -{ -#ifdef DEBUG - char* basepath = "C:\\Users\\baptistac1\\Documents\\Visual Studio 2015\\Projects\\TapestryEngineDev\\TapestryEngine\\json\\"; -#endif - -#ifdef RELEASE - char* basepath = ".\\json\\"; -#endif - - char pathbuffer[1024]; - strcpy(pathbuffer, basepath); - strcat(pathbuffer, filename); - - struct stat filestats; - stat(pathbuffer, &filestats); - - char* filecontent = (char*)malloc( (filestats.st_size + 1) ); - - FILE* fp; - fp = fopen(pathbuffer, "rt"); - - size_t size = fread(filecontent, 1, filestats.st_size, fp); - fclose(fp); - - filecontent[size] = 0; - - //gCons->ConsPrintf("%s\n", filecontent); - - return cJSON_Parse(filecontent); -} - -void PrintJSON(cJSON* json) -{ - gCons->ConsPrintf(cJSON_Print(json)); -} - -bool ReadBTree(Node* root, char* str) -{ - if (root->IsActive()) - { - char buff[64]; - memset(buff, 0, sizeof(buff)); - - _itoa(root->GetItem(), buff, 10); - strcat(str, buff); - strcat(str, "("); - ReadBTree(root->mLeft, str); - ReadBTree(root->mRight, str); - strcat(str, ")"); - return false; - } - else - { - return true; - } -} - -void PrintBTree(Node* root) -{ - char buff[256]; - memset(buff, 0, sizeof(buff)); - - ReadBTree(root, buff); - strcat(buff, "\n"); - - gCons->ConsPrintf(buff); -} - -float GetSign(float x) -{ - if (x > 0) { return 1; } - if (x < 0) { return -1; } - return 0; -} - -bool DetectRectIntersect(SDL_Rect* r1, SDL_Rect* r2) -{ - //if ( ((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ( (r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w)) )) //if r1 and r2 intersect in x - - int r1x1 = r1->x; - int r1x2 = r1->x + r1->w; - int r2x1 = r2->x; - int r2x2 = r2->x + r2->w; - - int r1y1 = r1->y; - int r1y2 = r1->y + r1->h; - int r2y1 = r2->y; - int r2y2 = r2->y + r2->h; - - //if (((r1->x <= r2->x) && (r2->x <= (r1->x + r1->w))) || ((r1->x <= (r2->x + r2->w)) && ((r2->x + r2->w) <= (r1->x + r1->w))) || ((r1->x <= r2->x) && (r2->x + r2->w) >= (r1->x + r1->w)) || ( (r1->x >= r2->x)&&( (r1->x + r1->w) >= (r2->x + r2->w) ) ) ) //if r1 and r2 intersect in x - if - ( - (r1x1 <= r2x2 && r1x1 >= r2x1) || - (r1x2 <= r2x2 && r1x2 >= r2x1) || - (r1x1 <= r2x1 && r1x2 >= r2x2) - ) - { - if - ( - (r1y1 <= r2y2 && r1y1 >= r2y1) || - (r1y2 <= r2y2 && r1y2 >= r2y1) || - (r1y1 <= r2y1 && r1y2 >= r2y2) - ) - { - //gCons->ConsPrintf("Rect Intersect Detected!\n"); - return true; - } - } - //gCons->ConsPrintf("No Rect Intersect Detected!\n"); - return false; -} - -bool DetectCenterPointIntersect(SDL_Rect* zone, SDL_Rect* point) //this is a likely culprit -{ - gDiagDraw->LogDiagRect(*point); - int pointX = point->x + (int)((float)point->w / 2); - int pointY = point->y + (int)((float)point->h / 2); - if ( (zone->x <= pointX) && (pointX <= (zone->x + zone->w)) ) - { - if ((zone->y <= pointY) && (pointY <= (zone->y + zone->h))) - { - //gCons->ConsPrintf("Center point intersect detected\n"); - return true; - } - } - //gCons->ConsPrintf("center point not intersecting\n"); - return false; -} - -int CalcDistance(int x1, int y1, int x2, int y2) -{ - int Xdelt = abs(x1 - x2); - int Ydelt = abs(y1 - y2); - - return (int)sqrt((Xdelt*Xdelt) + (Ydelt*Ydelt)); -} - -int EvenOutcomes(int NumberofOutcomes) -{ - int i = (rand() % (NumberofOutcomes)) + 1; - //gCons->ConsPrintf("Roll : %i\n", i); - return i; -} - -int RandRange(int min, int max) -{ - int i = (min + (rand() % (max-min))); - //gCons->ConsPrintf("Range Roll : %i\n", i); - return i; -} - - -bool IsEven(int i) //Not working alawys return true -{ - if ( (i % 2) == 0) - { - return true; - } - else - { - return false; - } -}- \ No newline at end of file diff --git a/.svn/pristine/ef/ef6308d6c8e734855a50b32b729037cf556928c7.svn-base b/.svn/pristine/ef/ef6308d6c8e734855a50b32b729037cf556928c7.svn-base Binary files differ. diff --git a/.svn/pristine/ef/ef79c8bc4c24271b7e559f25eb7f51f442b10356.svn-base b/.svn/pristine/ef/ef79c8bc4c24271b7e559f25eb7f51f442b10356.svn-base @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <PropertyGroup /> -</Project>- \ No newline at end of file diff --git a/.svn/pristine/ef/efbc6364f7a7098b8b79dbf2c0fa17eac4b8523a.svn-base b/.svn/pristine/ef/efbc6364f7a7098b8b79dbf2c0fa17eac4b8523a.svn-base @@ -1,42 +0,0 @@ -#include "Event.h" - -bool EventFeed::Subscribe(EventReceiver* sub) -{ - for (int i = 0; i < (int)mSubs.size(); i++) - { - if (mSubs.at(i) == NULL) - { - mSubs.at(i) = sub; - return true; - } - } - mSubs.push_back(sub); - return false; -} - -bool EventFeed::Unsubscribe(EventReceiver* sub) -{ - for (int i = 0; i < (int)mSubs.size(); i++) - { - if (mSubs.at(i) == sub) - { - mSubs.at(i) = NULL; - return true; - } - } - return false; -} - -bool EventFeed::EventProcess(Event eve) -{ - if (*eve.GetEventType() == UNSUBSCRIBE) - { - return Unsubscribe((EventReceiver*)eve.GetEventData()); - } - - for (int i = 0; i < (int)mSubs.size(); i++) - { - mSubs.at(i)->EventProcess(eve); - } - return true; -}- \ No newline at end of file diff --git a/.svn/pristine/ef/efc438310d66fd1f2911764fdf5dec977581642e.svn-base b/.svn/pristine/ef/efc438310d66fd1f2911764fdf5dec977581642e.svn-base Binary files differ. diff --git a/.svn/pristine/ef/efc99b367f6df26293eb56bcfd87fa77e48b841f.svn-base b/.svn/pristine/ef/efc99b367f6df26293eb56bcfd87fa77e48b841f.svn-base Binary files differ. diff --git a/.svn/pristine/f0/f061480096ab622dc8915a46bc4dec4dd3385c3b.svn-base b/.svn/pristine/f0/f061480096ab622dc8915a46bc4dec4dd3385c3b.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f10759b2a78db8f8077bd37de4ee1c6c48ac80d0.svn-base b/.svn/pristine/f1/f10759b2a78db8f8077bd37de4ee1c6c48ac80d0.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f120ace5d8f8d64e728f3c6b4a52947dde6a4b2c.svn-base b/.svn/pristine/f1/f120ace5d8f8d64e728f3c6b4a52947dde6a4b2c.svn-base @@ -1,245 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<DEFECTS> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>92</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Play</FUNCTION> - <DECORATED>?Play@animation@@QAE_NH@Z</DECORATED> - <FUNCLINE>89</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animation.h</FILENAME> - <LINE>98</LINE> - <COLUMN>20</COLUMN> - </SFA> - <DEFECTCODE>6282</DEFECTCODE> - <DESCRIPTION>Incorrect operator: assignment of constant in Boolean context. Consider using '==' instead.</DESCRIPTION> - <FUNCTION>animation::Stop</FUNCTION> - <DECORATED>?Stop@animation@@QAE_NXZ</DECORATED> - <FUNCLINE>95</FUNCLINE> - <PATH></PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mTransitionMatrix': the writable size is 'mLoopsAnimIDs.public: unsigned int __thiscall std::vector&lt;int,class std::allocator&lt;int&gt; &gt;::size(void)const ()*4' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>AnimGraphData::CreateTranisitionMatrix</FUNCTION> - <DECORATED>?CreateTranisitionMatrix@AnimGraphData@@QAE_NXZ</DECORATED> - <FUNCLINE>29</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>10</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>49</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mTransitionMatrix[1]', (writable range is 0 to 0)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> - <DEFECT> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - </SFA> - <DEFECTCODE>6386</DEFECTCODE> - <DESCRIPTION>Buffer overrun while writing to 'mTransitionMatrix[i]': the writable size is 'mLoopsAnimIDs.public: unsigned int __thiscall std::vector&lt;int,class std::allocator&lt;int&gt; &gt;::size(void)const ()*4' bytes, but '8' bytes might be written.</DESCRIPTION> - <FUNCTION>AnimGraphData::CreateTranisitionMatrix</FUNCTION> - <DECORATED>?CreateTranisitionMatrix@AnimGraphData@@QAE_NXZ</DECORATED> - <FUNCLINE>29</FUNCLINE> - <PROBABILITY>1</PROBABILITY> - <RANK>4</RANK> - <CATEGORY> - <RULECATEGORY>mspft</RULECATEGORY> - </CATEGORY> - <PATH> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>31</LINE> - <COLUMN>19</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>10</COLUMN> - <KEYEVENT> - <ID>1</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'i' is NULL</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>33</LINE> - <COLUMN>19</COLUMN> - <KEYEVENT> - <ID>2</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'i&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>35</LINE> - <COLUMN>23</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>11</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>3</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Enter this loop, (assume 'j&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>50</COLUMN> - <KEYEVENT> - <ID>4</ID> - <KIND>declaration</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>'j' may equal 1</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>36</LINE> - <COLUMN>20</COLUMN> - <KEYEVENT> - <ID>5</ID> - <KIND>branch</KIND> - <IMPORTANCE>Full</IMPORTANCE> - <MESSAGE>Continue this loop, (assume 'j&lt;(int)mLoopsAnimIDs.size()')</MESSAGE> - </KEYEVENT> - </SFA> - <SFA> - <FILEPATH>c:\users\baptistac1\documents\visual studio 2015\projects\tapestryenginedev\tapestryengine\</FILEPATH> - <FILENAME>animationgraph.cpp</FILENAME> - <LINE>38</LINE> - <COLUMN>27</COLUMN> - <KEYEVENT> - <ID>6</ID> - <KIND>usage</KIND> - <IMPORTANCE>Essential</IMPORTANCE> - <MESSAGE>Invalid write to 'mTransitionMatrix[i][1]', (writable range is 0 to 0)</MESSAGE> - </KEYEVENT> - </SFA> - </PATH> - </DEFECT> -</DEFECTS>- \ No newline at end of file diff --git a/.svn/pristine/f1/f18cab27a4d9b9c414afe87343f2242311a19b55.svn-base b/.svn/pristine/f1/f18cab27a4d9b9c414afe87343f2242311a19b55.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f1992c7b464085c366a997189ed0c750bd93fcfc.svn-base b/.svn/pristine/f1/f1992c7b464085c366a997189ed0c750bd93fcfc.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f19c44fab74e956b98c0166760425386f99ffa98.svn-base b/.svn/pristine/f1/f19c44fab74e956b98c0166760425386f99ffa98.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f1a12ba0ba0680f61b94a51895d4f3f345732d2d.svn-base b/.svn/pristine/f1/f1a12ba0ba0680f61b94a51895d4f3f345732d2d.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f1bd49620b6fb9d998196e8e808189884bf140bd.svn-base b/.svn/pristine/f1/f1bd49620b6fb9d998196e8e808189884bf140bd.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f1be24e223355feb6be685ce0f22680cd17771c6.svn-base b/.svn/pristine/f1/f1be24e223355feb6be685ce0f22680cd17771c6.svn-base Binary files differ. diff --git a/.svn/pristine/f1/f1fbc8898a3db380b7b8cf54866eebc4f435d557.svn-base b/.svn/pristine/f1/f1fbc8898a3db380b7b8cf54866eebc4f435d557.svn-base @@ -1,143 +0,0 @@ -#ifndef PARTICLE_H -#define PARTICLE_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -#include "Actor.h" - -struct ParticleData -{ - //AnimDataPack* AnimData; - AnimGraph* AnimData; - int Height; - int Width; - EventReceiver* spat; -}; - - -class Particle : public Mobile -{ -public: -// Particle() {} - - Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM); - -// Particle(const Particle& that) -// { -// gCons->ConsPrintf("no pls\n"); -// } - - ~Particle() - { - - } - - //bool EventProcess(Event eve); - - //bool UpdateAnimation(); - - //bool ActorUpdate(); - - void setID(int i) - { - mID = i; - } - - int GetID() - { - return mID; - } - - EventFeed mFeed; -protected: - - int mID; - -private: - //Particle(const Particle& that); -}; - -class P_static : public Particle -{ -public: - - P_static(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM) : Particle(AnimData, Pos, ID, AHM) - {} - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: -}; - - -class P_drift : public Particle -{ -public: - - P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, drift_data data); - - bool Drift(); - - bool EventProcess(Event eve); - - bool UpdateAnimation(); - - bool ActorUpdate(); - -protected: - - drift_data mData; - -}; - -class ParticleManager : public EventReceiver -{ -public: - - bool LogParticleData(ParticleData* pd, char* name) - { - mParticleData.push_back(pd); - mNames.push_back(name); - particlesKilled = 0; - return true; - } - - ParticleData* GetParticleData(char* name) - { - for (int i = 0; i < (int)mParticleData.size(); i++) - { - if (!strcmp(name, mNames.at(i))) - { - return mParticleData.at(i); - } - } - return NULL; - } - - bool SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata = NullPTdata() ); - - bool ClearParticle(Particle* prt); - - bool EventProcess(Event eve); - - std::vector<Particle*>* GetParticles() - { - return &mParticles; - } - -protected: - - std::vector<ParticleData*> mParticleData; - std::vector<char*> mNames; - - std::vector<Particle*> mParticles; - - int particlesKilled; -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/f2/f2523870c724a4e2fbff01739a17030ff140881c.svn-base b/.svn/pristine/f2/f2523870c724a4e2fbff01739a17030ff140881c.svn-base Binary files differ. diff --git a/.svn/pristine/f2/f2696a20fb3f1ba2a7b6dd1a8a6626d9f6123a11.svn-base b/.svn/pristine/f2/f2696a20fb3f1ba2a7b6dd1a8a6626d9f6123a11.svn-base Binary files differ. diff --git a/.svn/pristine/f2/f2d4c3adf3a2cfbbc66b50ceaff0ee02e2187d32.svn-base b/.svn/pristine/f2/f2d4c3adf3a2cfbbc66b50ceaff0ee02e2187d32.svn-base @@ -1,22 +0,0 @@ -#ifndef MISCDRAW_H -#define MISCDRAW_H - -#include"Actor.h" -#include"bones.h" -#include"Camera.h" -#include"Utils.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam); - -SDL_Rect DrawActorAnim(SDL_Renderer* ren, Actor& act, animation* anim, Camera cam, int dir); - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW); - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam); - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam); - -bool DrawText(SDL_Renderer* ren, char* text); - -bool DrawBone(SDL_Renderer* ren, Bone* bone); -#endif- \ No newline at end of file diff --git a/.svn/pristine/f3/f32ca16e2c96eea482893056bba934920e316905.svn-base b/.svn/pristine/f3/f32ca16e2c96eea482893056bba934920e316905.svn-base Binary files differ. diff --git a/.svn/pristine/f3/f3c2e12c4e4a59d482b3291b30879730b9705c63.svn-base b/.svn/pristine/f3/f3c2e12c4e4a59d482b3291b30879730b9705c63.svn-base @@ -1,74 +0,0 @@ -#ifndef CONTEXT_H -#define CONTEXT_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -//#include "Level.h" - -class Context -{ -public: - - Context() {} - - virtual bool Load(const char* filename) = 0; - - virtual bool Update() = 0; - - SDL_Renderer* mRen; - EventFeed mFeed; - -protected: -}; - -class ContextManager : public EventReceiver -{ -public: - - ContextManager() {} - - ContextManager(char* GameDataPath) : mGameDataPath(GameDataPath) {} - - bool LogContext(Context* con, char* name); - - bool LoadContext(char* ContextName); - - bool ContextUpdate(); - - bool EventProcess(Event eve); - -protected: - - char* mGameDataPath; - Context* mActiveContext; - std::vector<Context*> mContexts; - std::vector<char*> mNames; - -}; - - -class GameOver : public Context, public EventReceiver -{ -public: - - GameOver() {}; - - GameOver(SDL_Renderer* ren, SDL_Texture* splash) - { - mRen = ren; - mSplash = splash; - } - - bool Update(); - - bool EventProcess(Event eve); - - EventFeed mFeed; - -protected: - - SDL_Texture* mSplash; - -}; -#endif diff --git a/.svn/pristine/f3/f3e75dbdad91bd27dd657de0987a0ba0fd83e372.svn-base b/.svn/pristine/f3/f3e75dbdad91bd27dd657de0987a0ba0fd83e372.svn-base Binary files differ. diff --git a/.svn/pristine/f3/f3efd7a8b1df2241fb566889c93b76e2a55c9b1a.svn-base b/.svn/pristine/f3/f3efd7a8b1df2241fb566889c93b76e2a55c9b1a.svn-base @@ -1,85 +0,0 @@ -#ifndef SEQUENCE_H -#define SEQUENCE_H - -#include "Utils.h" -#include "Console.h" -#include "Event.h" -#include "Animation.h" - -class Sequence : public EventReceiver -{ -public: - - Sequence() {} - - Sequence(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib); - - void SetSequenceGraph(EventReceiver* seqg) - { - mSeqG = seqg; - } - - virtual Frame Run() = 0; - -protected: - - AnimPack* mAnimPack; - EventReceiver* mSeqG; - EventReceiver* mPrtLib; - EventReceiver* mSndLib; - bool mPlaying; - bool mLooping; -}; - -class seq_player_idle : public Sequence -{ -public: - - seq_player_idle(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib); - - Frame Run(); - - bool EventProcess(Event eve); -}; - - -class seq_player_run : public Sequence -{ -public: - - seq_player_run(AnimPack* pck, EventReceiver* prtlib, EventReceiver* sndlib); - - Frame Run(); - - bool EventProcess(Event eve); - -}; - -class SequenceGraph : public EventReceiver -{ -public: - - SequenceGraph() {} - - SequenceGraph(AnimPack pck, EventReceiver* prtlib, EventReceiver* sndlib); - - bool LogSequence(Sequence* seq, int ID); - - AnimPack* GetAnimPack() - { - return &mAnimPack; - } - - //virtual bool ActivateSequence(int seqID); - - //virtual bool EventProcess(Event eve); - -protected: - - AnimPack mAnimPack; - std::vector<Sequence*> mSeqs; - std::vector<int> mIDs; - -}; - -#endif- \ No newline at end of file diff --git a/.svn/pristine/f4/f49a3e5a2ec9323886cecfa75e4c88fdc690244d.svn-base b/.svn/pristine/f4/f49a3e5a2ec9323886cecfa75e4c88fdc690244d.svn-base Binary files differ. diff --git a/.svn/pristine/f5/f59f64068b44a07e3401ab9a2a4e15e57714677b.svn-base b/.svn/pristine/f5/f59f64068b44a07e3401ab9a2a4e15e57714677b.svn-base Binary files differ. diff --git a/.svn/pristine/f5/f5a52c9db31bd82bc23cecf9203ba23566b7ebed.svn-base b/.svn/pristine/f5/f5a52c9db31bd82bc23cecf9203ba23566b7ebed.svn-base Binary files differ. diff --git a/.svn/pristine/f5/f5e7c090d18d14e5102d9282859c8b166685c4a5.svn-base b/.svn/pristine/f5/f5e7c090d18d14e5102d9282859c8b166685c4a5.svn-base @@ -1,161 +0,0 @@ -#include "Utils.h" -#include "Console.h" -#include "MiscDraw.h" -#include "DiagnosticDraw.h" -#include "ActorCollision.h" -#include "Input.h" -#include "Actor.h" -#include "sound.h" - -#include "Dialogue.h" - -#include "Loading.h" -#include "Level.h" - -#include "BinaryTree.h" //remove later - -int main(int argc, char *argv[]) -{ - gTime = new Time(); - - //Node TestTree = Node(10, NULL); - //TestTree.Insert(5, NULL); - //TestTree.Insert(15, NULL); - //TestTree.Insert(7, NULL); - //TestTree.Insert(2, NULL); - //TestTree.Insert(20, NULL); - //TestTree.Insert(17, NULL); - //TestTree.Insert(35, NULL); - //TestTree.Insert(31, NULL); - - //Node* tar = TestTree.Search(5);//->Delete(); - - //char buff1[256]; - //memset(buff1, 0, sizeof(buff1)); - //ReadBTree(&TestTree, buff1); - //tar->Delete(); - //char buff2[256]; - //memset(buff2, 0, sizeof(buff2)); - //ReadBTree(&TestTree, buff2); - - Node* Tree = new Node(); -// Tree->InsertNode() - - if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_AUDIO) != 0) - { - gCons->ConsPrintf("SDL_Init Error: %s\n", SDL_GetError()); - SDL_Quit(); - return 1; - } - - Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048); -// Mix_Init(MIX_INIT_MP3); - - if (TTF_Init() != 0) - { - gCons->ConsPrintf("TTF_Init Error: %s\n", TTF_GetError()); - TTF_Quit(); - SDL_Quit(); - return 1; - } - - SDL_Window* window = SDL_CreateWindow("Bandana Marathon", 10, 30, SCREEN_W, SCREEN_H, SDL_WINDOW_SHOWN); - if (window == NULL) - { - gCons->ConsPrintf("SDL_CreateWindow Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Renderer* ren = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - if (ren == NULL) - { - gCons->ConsPrintf("SDL_CreateRenderer Error: %s", SDL_GetError()); - SDL_Quit(); - return 1; - } - - SDL_Color fg = { 255, 255, 255 }; - SDL_Color bg = { 0, 0, 255 }; - gCons = new Console("ARIAL.TTF", 12, fg, bg); - //gCons = new Console("Tapestry.ttf", 16, fg, bg); - - Control ctrl = Control(); - - ContextManager ConMan = ContextManager("level.json"); - - Level* lvl = new Level(ren, &ctrl); - ConMan.LogContext(lvl, "level"); - //DiagnosticDraw* gDiagDraw = new DiagnosticDraw(ren, lvl->mCam); - - Loading* load = new Loading(ren); - ConMan.LogContext(load, "load"); - - ConMan.LoadContext("load"); - ConMan.ContextUpdate(); - SDL_RenderPresent(ren); - - ConMan.LoadContext("level"); - - //Mix_Chunk* dhaka = LoadSound("Dhaka.mp3"); - //Mix_Chunk* ftst = LoadSound("footstep.wav"); - - SDL_Event e; - - //if (Mix_PlayingMusic() == false) - //{ - //Mix_PlayMusic(dhaka, -1); - //Mix_Volume(1, 6); - //Mix_VolumeChunk(dhaka, 6); - //Mix_PlayChannel(1, dhaka, -1); - - //} - bool quit = false; - while (!quit) - { - int CycleStart = GetRealTimeMS(); - - SDL_RenderClear(ren); - - ctrl.ProcessKeyboard(); - - ConMan.ContextUpdate(); - - //PrintBTree(&TestTree); - -#ifdef DEBUG - gCons->DrawConsole(ren); //Console is currently causing crashes for unknown reasons. No changes made to console system; very confusing -#endif - - SDL_RenderPresent(ren); - - SDL_PollEvent(&e); - - if (e.type == SDL_QUIT) - { - quit = true; - } - - gTime->ProgressCycle(); - - int DeltaTime = (GetRealTimeMS() - CycleStart); - assert(DeltaTime >= 0); - - int DelayTime = MS_PER_FRAME - DeltaTime; - - if (DelayTime >= 0) - { - //gCons->ConsPrintf("Delay Time: %i \n", DelayTime); - SDL_Delay(DelayTime); - } - else - { - //gCons->ConsPrintf("Delay Time: %i FRAME DROP\n", DelayTime); - } - } - - delete gCons; - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -}- \ No newline at end of file diff --git a/.svn/pristine/f5/f5f32e64bc27b5ea3d3e6530dbd9dbd511d99ff0.svn-base b/.svn/pristine/f5/f5f32e64bc27b5ea3d3e6530dbd9dbd511d99ff0.svn-base @@ -1,1735 +0,0 @@ -#include "Actor.h" -#include "DiagnosticDraw.h" -#include "ActorHandle.h" -#include "ActorCollision.h" - -Actor::Actor(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mSpatCell(-1) -{ - mAnimGraph = AnimData; - mPosData = Pos; - mDrawPos = DrawPos; - - mOff_x = DrawPos.x; - mOff_y = DrawPos.y; - - mState = IDLE; - - mAHM = AHM; - //if (AHM != NULL) { mHandle = AHM->EventProcess(Event(ASSIGN_HANDLE, (EventReceiver*)this)); } - if (mAHM != NULL) { mHandle = mAHM->AssignHandle(this); } //Get a unique handle from the AHM and register it with a pointer to yourself - - mSpat = spat; - if (mSpat != NULL) { mSpat->LogActor(mHandle); } //Pass your handle to the collsion system. - - mParticleLib = prtLib; - mSoundLib = SoundLib; - - mOpacity = 255; - - PassAnimGraphState(); //Link the actor AnimState to the animgraph - - mSoundChannel = -1; - if (mSoundLib != NULL) - { - mSoundLib->EventProcess(Event(SPAWN, (void*)&mSoundChannel)); -#ifdef DEBUG - assert(mSoundChannel != -1); -#endif // DEBUG - } - - mBlocking = false; -} - -//Winch -bool Winch::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - gCons->ConsPrintf("Winch received interact event\n"); - mFeed.EventProcess(Event(SWITCH)); - break; - default: -// gCons->ConsPrintf("Winch received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Winch::UpdateAnimation() -{ - mAnimID = mGate->GetAnimID(); - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Winch::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Blocker -Blocker::Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ -} -// - -//Test_Blocker -Test_Blocker::Test_Blocker(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; - mBlocking = true; -} - -bool Test_Blocker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mBlocking = !mBlocking; - gCons->ConsPrintf("Blocker received interact event\n"); - break; - default: - gCons->ConsPrintf("Blocker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Test_Blocker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Test_Blocker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//Gate functions -Gate::Gate(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, int dir) : Blocker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = GATE_DOWN; - mBlocking = true; - mDir = dir; -} - -bool Gate::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case SWITCH: - //mBlocking = !mBlocking; - if (mState == GATE_DOWN ) { mState = GATE_RAISE; } - if (mState == GATE_UP ) { mState = GATE_LOWER; mBlocking = true; } - //gCons->ConsPrintf("Gate received interact event\n"); - break; - case ANIM_COMPLETE: - switch (eve.GetEventData()->i) - { - case GATE_RAISE: - mBlocking = false; - mState = GATE_UP; - break; - case GATE_LOWER: - mState = GATE_DOWN; - break; - default: - break; - } - default: - //gCons->ConsPrintf("Gate received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gate::UpdateAnimation() -{ - switch (mState) - { - case GATE_LOWER: - case GATE_DOWN: - mAnimID = GATE_DOWN; - break; - case GATE_RAISE: - case GATE_UP: - mAnimID = GATE_UP; - break; - default: - break; - } - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Gate::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// -// - -//Interactable Functions -Interactable::Interactable(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mState = IDLE; - mAnimID = IDLE; -} - -//Talker -bool Talker::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case TERMINATE_DIALOGUE: - break; - default: - gCons->ConsPrintf("Talker received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Talker::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Talker::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - UpdateAnimation(); - return false; -} -// - -//GateMan -Gateman::Gateman(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib, char* str, int gate) : Talker(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib, str), mGateH(gate) -{ - mLOS = Pos; - mLOS.w = 150; - mLOS.x = mLOS.x - 75 - (int)((float)mPosData.w / 2);//(mLOS.x - (30 - (mPosData.w) / 2)); - mLOS.h = 70; - - mTalked = false; - mState = GATE_DOWN; - - mDir = mAHM->GetActorAddress(mGateH)->GetDir(); -} - - -bool Gateman::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - //mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(DIALOGUE, mStr, mHandle)); - //gCons->ConsPrintf("Talker received interact event\n"); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - //((EventReceiver*)(eve.GetEventData()->sr.er))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), this)); - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - break; - default: - break; - } - break; - case PLAYER_CONFIRM: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DIALOGUE, mStr, mHandle)); - break; - case TERMINATE_DIALOGUE: - if (mTalked == false) - { - //mGate->EventProcess(Event(INTERACT)); - ((ActorHandleManager*)mAHM)->GetActorAddress(mGateH)->EventProcess(Event(INTERACT)); - //( mAHM->EventProcess(Event(GET_ACTOR_ADDRESS, mGateH)) ).EventProcess(Event(INTERACT)); //Event process can only return bools. Might change later. - mState = GATE_UP; - mTalked = true; - } - //open the gate - break; - default: - gCons->ConsPrintf("Gateman received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Gateman::UpdateAnimation() -{ - switch (mState) - { - case IDLE: - mAnimID = IDLE; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_UP: - mAnimID = GATE_UP; - mFrame = mAnimGraph->UpdateAnimation(); - break; - case GATE_DOWN: - mAnimID = GATE_DOWN; - mFrame = mAnimGraph->UpdateAnimation(); - break; - } - return false; -} - -bool Gateman::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - gDiagDraw->LogDiagRect(mLOS); - if (mTalked == false) - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - } - UpdateAnimation(); - return false; -} -// - -//Door -bool Door::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case INTERACT: - mAHM->GetActorAddress(eve.GetEventData()->i)->EventProcess(Event(TELEPORT, mTele_Dest)); - gCons->ConsPrintf("Door received interact event\n"); - break; - default: - gCons->ConsPrintf("Door received unrecognized event\n"); - return false; - break; - } - return true; -} - -bool Door::UpdateAnimation() -{ - mFrame = mAnimGraph->UpdateAnimation(); - return false; -} - -bool Door::ActorUpdate() -{ - //gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTele_Pos); - UpdateAnimation(); - return false; -} -// - -//Mobile Functions -Mobile::Mobile(AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Actor(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib), mXmove(0), mYmove(0), mXspd(0), mYspd(0) -{ -} - -void Mobile::SetPosition(SDL_Rect* Dest) -{ - //mPosData = *Dest; - mPosData.x = Dest->x; - mPosData.y = Dest->y; -// CalcDrawRect(); -// mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); -} - -//bool Mobile::ModifyActorPosition(int x, int y) -//{ -// mPosData.x = x + mPosData.x; -// mPosData.y = y + mPosData.y; -// mDrawPos = mPosData; -// return false; -//} - -SDL_Rect Mobile::MoveActor(int xspd, int yspd) -{ - SDL_Rect Delta; - Delta.h = 0; - Delta.w = 0; - Delta.x = xspd; - Delta.y = yspd; - - return Delta; -} - -int Mobile::MoveActorDirect(float xspd, float yspd) -{ - mPosData.x = mPosData.x + (int)(xspd); - mPosData.y = mPosData.y + (int)(yspd); - return 0; -} - -//Hat -bool Hat::ActorUpdate() -{ - mState = mTarget->GetState(); - mDir = mTarget->GetDir(); - UpdateAnimation(); - SetPosition(mTarget->GetPosition()); - CalcDrawRect(); - SDL_Rect debug_draw = mDrawPos; - debug_draw.x += mPosData.x; - debug_draw.y += mPosData.y; - //gDiagDraw->LogDiagRect(debug_draw); - //gDiagDraw->LogDiagRect(mDrawPos); - return true; -} -// - -//Character Functions -Character::Character(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : Mobile(AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib ) , mColMan(ter, &mPosData, &mDestData, 5), mPhysMan(0.5, (float)0.08, &mPosData.y, &mXspd, &mYspd), mDestData(mPosData) -{ -} - -bool Character::DetectFalling() -{ - SDL_Rect GroundDetector = mPosData; - GroundDetector.y = (mPosData.y + mPosData.h); - GroundDetector.h = 1; - if (mColMan.DetectFalling() == true && (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &GroundDetector, mHandle)) == false)) - { - return true; - } - else - { - return false; - } -} - -bool Character::UpdatePhysics() -{ - if (DetectFalling() == false) - { - mPhysMan.SetGravity(false); - } - else - { - mPhysMan.SetGravity(true); - } - - if (mColMan.DetectSurface() == true) - { - mPhysMan.ZeroBouyantSurface(); - } - - if (mColMan.DetectSwim() == true) - { - mPhysMan.SetFloating(true); - mPhysMan.SetGravity(false); - - if (mYmove > 0) - { - mPhysMan.SetFloating(false); - } - } - else - { - mPhysMan.SetFloating(false); - } - - return mPhysMan.ApplyPhysics(); -} - -bool Character::UpdateFireables() -{ - if (mColMan.DetectSwim() == false) - { - int y = mColMan.FindSurface(); - if (mColMan.DetectWade()) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); //type field "NULL", unused for sound. will be used if sounds have types - } - else - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 12 - 10, y - 3)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(IDLE_BEGIN)->GetFrame(1)) || DetectFalling()) - { - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 2 - 10, y - 3)); - mParticleLib->EventProcess(Event(CREATE_PARTICLE, "P_static", "splash", mPosData.x + mDrawPos.x + 12 -10, y - 3)); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "splash_sound", mPosData.x + mDrawPos.x + 2, y - 3)); - } - } - - if (DetectFalling() == false) - { - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 -10, mPosData.y + 22)); - } - } - if (FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN_DRAWN)->GetFrame(5)) || FrameCompare(*mFrame, mAnimGraph->GetAnimPack()->GetAnimation(RUN_DRAWN)->GetFrame(13))) - { - if (mDir == LEFT) - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 2 - 10, mPosData.y + 22)); - } - else //RIGHT - { - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "footstep", mPosData.x + mDrawPos.x + 12 - 10, mPosData.y + 22)); - } - } - } - } - return true; -} - -Trajectory Character::GetTrajectory(SDL_Rect Dest, SDL_Rect Init) -{ - float xdelt = (float)(-Init.x + Dest.x); - float ydelt = (float)(-Init.y + Dest.y); - - Trajectory trj; - - if (xdelt == 0) - { - trj.dir = 0; //flag for vertical/undefined trajectory - - if (ydelt > 0) - { - trj.slope = 1; - } - if (ydelt < 0) - { - trj.slope = -1; - } - if (ydelt == 0) - { - trj.slope = 0; - } - } - else - { - trj.slope = (ydelt / xdelt); - - //gCons->ConsPrintf("Traject = %f / %f\n", ydelt, xdelt); - - if (xdelt > 0) - { - trj.dir = 1; - } - if (xdelt < 0) - { - trj.dir = -1; - } - } - return trj; -} - -SDL_Rect Character::RefinePosition(SDL_Rect* Dest, Trajectory trj, float destx, float desty, int RecursionCount) //Shouldn't check fractional movement. Position cannot be fraction anyway. Lower of x/y whould be 1 other should be slope -{ - if ( (mColMan.DetectEdgeCollision(Dest) == true) || (mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, Dest, mHandle)) == true)) - { - if (trj.dir == 0) //vertical trajectory - { - desty -= (trj.slope); - } - else - { - destx -= trj.dir; - desty -= trj.dir*trj.slope; - - //gCons->ConsPrintf("Dest x: %i, Dest y: %i \n", Dest->x, Dest->y); - } - - Dest->y = (int)desty; - Dest->x = (int)destx; - if (RecursionCount < 300) //this should probably be lower - { - RefinePosition(Dest, trj, destx, desty, (RecursionCount + 1)); - } - else - { - gCons->ConsPrintf("Refine Position Recursion Limit Reached\n"); - } - } - return *Dest; -} - -bool Character::HandleDirectionalCollisions(SDL_Rect& Destination) -{ - SDL_Rect l_bump = mPosData; - l_bump.x -= 1; - l_bump.w = 1; - l_bump.h -= 4; - SDL_Rect r_bump = mPosData; - r_bump.x += r_bump.w; - r_bump.w = 1; - r_bump.h -= 4; - if ( ((mColMan.DetectDirectionalCollision(&mPosData, LEFT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &l_bump, mHandle))) && ((mXmove + mXspd) < 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else if ( ((mColMan.DetectDirectionalCollision(&mPosData, RIGHT) == true) || mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &r_bump, mHandle))) && ((mXmove + mXspd) > 0)) - { - Destination.x = mPosData.x; - mXspd = 0; - //mXmove = 0; - } - else - { - Destination.x = mPosData.x + (int)mXspd + mXmove; - } - - if ((mColMan.DetectDirectionalCollision(&mPosData, UP) == true) && ((mYmove + mYspd) < 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else if ((mColMan.DetectDirectionalCollision(&mPosData, DOWN) == true) && ((mYmove + mYspd) > 0)) - { - Destination.y = mPosData.y; - mYspd = 0; - //mYmove = 0; - } - else - { - Destination.y = mPosData.y + (int)mYspd + mYmove; - } - - if ((mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mHandle)) == true)) - { - Destination.x = mPosData.x; - mXspd = 0; - Destination.y = mPosData.y; - mYspd = 0; - } - return true; -} - -bool Character::UpdatePosition() -{ - - //(mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID)) == true); - //gCons->ConsPrintf("Blocker: %i\n", mSpat->EventProcess(Event(CHECK_BLOCKERS, Touch, &mDestData, mSpatID))); - - if (( (mYmove + mYspd) < 0) || (mYmove > 0)) //if you are moving up or actively moving down - { - mColMan.SetPlaformCollision(false); - } - else - { - mColMan.SetPlaformCollision(true); - } - - HandleDirectionalCollisions(mDestData); - - if (mColMan.DetectEdgeCollision(&mDestData) == true ) - { - if (int i = mColMan.DetectIncline(8) < 8) //8 == maximum climable step - { - if (mDestData.y == mPosData.y) - { - mDestData.y += -i; - - } - } - } - - RefinePosition(&mDestData, GetTrajectory(mDestData, mPosData), (float)mDestData.x, (float)mDestData.y); //Redundant Args - mColMan.SetPlaformCollision(true); - - if ( (mPosData.x != mDestData.x) || (mPosData.y != mDestData.y) ) - { - - SetPosition(&mDestData); - //mPosData = mDestData; - - mSpat->EventProcess(Event(MOVED_THIS_FRAME, mHandle)); - return true; - } - else - { - return false; - } -} - -//Player Functions -Player::Player(SDL_Surface* ter, AnimGraph* AnimData, SDL_Rect Pos, SDL_Rect DrawPos, ActorHandleManager* AHM, SpatialMonitor* spat, EventReceiver* prtLib, EventReceiver* SoundLib) : mWielded(false), mTalkerID(-1), mHP(100), mHPmax(100), mHPtimer(0), mRecover(0), mTouch(Pos), mAttackZone(Pos), Character(ter, AnimData, Pos, DrawPos, AHM, spat, prtLib, SoundLib) -{ - mTouch.h = Pos.h; - mTouch.w = 18; - - mAttackZone.w = 16; - ((sword*)(mAHM->GetActorAddress(mHatIndex_Sword)))->ToggleHat(true); -} - -bool Player::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - - case ACTOR_COLLISION: - //gCons->ConsPrintf("Player is intersecting another actor\n"); - break; - case PLAYER_CHECK: - mAHM->GetActorAddress(eve.GetReturnAddress())->EventProcess(Event(PLAYER_CONFIRM, *eve.GetEventData(), mHandle)); - break; - case DIALOGUE: - { - mFeed.EventProcess(eve); //Talkers pass dialogue events to the player who then passes them to the dialogue widget; Dialogue HUD widget is subscribed to the player and processes this event - mTalkerID = eve.GetEventData()->dd.talkerID; - mState = IDLE; - break; - } - case TERMINATE_DIALOGUE: - { - //mTalking = false; - mAHM->GetActorAddress(mTalkerID)->EventProcess(eve); - mTalkerID = -1; - break; - } - case TELEPORT: - { - SetPosition(eve.GetEventData()->rect); - mFeed.EventProcess(Event(FADE, 10, FADE_BLACK, 255)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "door_open", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - gCons->ConsPrintf("actor x: %i, actor y: %i", mPosData.x, mPosData.y); - break; - } - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case Touch: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(INTERACT, mHandle)); - break; - case Attack: - (mAHM->GetActorAddress(eve.GetEventData()->sr.id))->EventProcess(Event(DAMAGE, 10, mHandle)); - break; - default: - break; - } - break; - - case DAMAGE: - mHP -= eve.GetEventData()->damd.damage; - mHPtimer = 350; - mFeed.EventProcess(Event(FADE, 10, FADE_RED, 50)); //Trigger the fader - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "ouch", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); - //mBlinkDuration = gTime->GetCurrentCycle(); - //mBlinkPeriod = gTime->GetCurrentCycle(); - //gCons->ConsPrintf("Player has received a damage event!\n"); - //gCons->ConsPrintf("Current hp is: %i\n", mHP); - break; - - //Control Events - case KEY_UP: //should be "no keys pressed" not released a key - if (mState == ATTACK) { break; } - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - case SDL_SCANCODE_RIGHT: - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - case SDL_SCANCODE_DOWN: - if (mColMan.DetectSwim() == true) - { - mState = TREAD; - break; - } - mState = IDLE; - break; - default: - break; - } - break; - case KEY_DOWN: - if (mState == ATTACK) { break; } - switch (eve.GetEventData()->i) - { - case SDL_SCANCODE_LEFT: - if (mTalkerID != -1) { break; } - mDir = LEFT; - mState = RUN_LEFT; - break; - case SDL_SCANCODE_RIGHT: - if (mTalkerID != -1) { break; } - mDir = RIGHT; - mState = RUN_RIGHT; - break; - case SDL_SCANCODE_UP: - case SDL_SCANCODE_SPACE: - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_UP; - break; - } - mState = JUMP; - break; - case SDL_SCANCODE_DOWN: //this should be only allow when swimming like "SWIM_UP" but has some debugging utility for now - if (mTalkerID != -1) { break; } - if (mColMan.DetectSwim() == true) - { - mState = SWIM_DOWN; - break; - } - mState = RUN_DOWN; - break; - case SDL_SCANCODE_E: - if (mTalkerID != -1) - { - mFeed.EventProcess(Event(SCROLL)); //Dialogue HUD widget is subscribed to the player and processes this event - } - else - { - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Touch, &mTouch, mHandle)); - } - break; - case SDL_SCANCODE_Q: - if (mTalkerID != -1) { break; } - mWielded = !mWielded; - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "draw_sword", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - break; - case SDL_SCANCODE_W: - if (mTalkerID != -1 ) { break; } - if (mWielded != true) { break; } - mTimer = gTime->GetCurrentMS(); - if ((mState != JUMP) && (mState != FALL)) - { - mXmove = 0; - } - mState = ATTACK; - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "player_attack", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Attack, &mAttackZone, mHandle)); - break; - default: - gCons->ConsPrintf("Player asked to process unrecognized event\n"); - } - } - - return false; -} - -bool Player::UpdateAnimation() -{ - switch (mState) - { - case RUN_DOWN: - break; - case RUN_LEFT: - case RUN_RIGHT: - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - if (mWielded == true) - { - mAnimID = RUN_DRAWN; - } - else //mWielded == false - { - mAnimID = RUN; - } - break; - case JUMP: - if (mWielded == true) - { - mAnimID = JUMP_DRAWN; - } - else - { - mAnimID = JUMP; - } - break; - case SWIM_UP: - mAnimID = SWIM; - break; - case ATTACK: - mAnimID = ATTACK; - break; - case IDLE: - default: - if (mWielded == true) - { - mAnimID = IDLE_DRAWN; - } - else - { - mAnimID = IDLE; - } - //break; - if (mColMan.DetectSwim() == true) //overwrite previous logic if this condition is true - { - mAnimID = TREAD; - break; - } - } - if ( (mYspd > 0) && (DetectFalling() == true) && (mState != ATTACK) ) - { - if (mWielded == true) - { - mAnimID = FALL_DRAWN; - } - else - { - mAnimID = FALL; - } - } - mFrame = mAnimGraph->UpdateAnimation(); - CalcDrawRect(); - return true; -} - -bool Player::ActorUpdate() -{ - if (mHP <= 0) - { - mFeed.EventProcess(Event(GAME_OVER)); - //game over - } - - switch (mState) - { - case SWIM_DOWN: - case RUN_DOWN: - mYmove = 3; - break; - case SWIM_UP: - mYmove = -6; - break; - case SWIM_RIGHT: - case RUN_RIGHT: - mXmove = 3; - break; - case SWIM_LEFT: - case RUN_LEFT: - mXmove = -3; - break; - case JUMP: - if (DetectFalling() == false && ((gTime->GetCurrentCycle() - mRecover) > 14) ) //14 should be more like 3 mRecover is set correctly - { - mYspd = -7; - mRecover = gTime->GetCurrentCycle(); //needs to get set when you land - } - break; - case TREAD: - case IDLE: - mXmove = 0; - mYmove = 0; - break; - case ATTACK: - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, Attack, &mAttackZone, mHandle)); - if (gTime->GetCurrentMS() - mTimer >= 600) - { - mState = IDLE; - } - //gCons->ConsPrintf("Player attacks!\n"); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - if ((mHPtimer == 0) && (mHP < mHPmax)) - { - mHP++; - } - if (mHPtimer > 0) - { - mHPtimer--; - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - - mTouch.y = mPosData.y; - mTouch.x = mPosData.x - 6; - - mAttackZone.y = mPosData.y; - switch (mDir) - { - case LEFT: - mAttackZone.x = mPosData.x - 20; - break; - case RIGHT: - mAttackZone.x = mPosData.x + 6; - break; - default: - gCons->ConsPrintf("Player has no direction\n"); - } - - mAHM->GetActorAddress(mHatIndex_Sword)->ActorUpdate(); - -// gDiagDraw->LogDiagRect(mAttackZone); -// gDiagDraw->LogDiagRect(mTouch); - -// Node** hat_array = mHats.Dump(); -// for (int i = 0; i < mHats.Size(); i++) -// { -// mAHM->GetActorAddress(hat_array[i]->GetItem())->ActorUpdate(); -// } - -// gCons->ConsPrintf("pos : x=%i, y=%i, h=%i, w=%i\n", mPosData.x, mPosData.y, mPosData.h, mPosData.w); -// gCons->ConsPrintf("draw: x=%i, y=%i, h=%i, w=%i\n", mDrawPos.x, mDrawPos.y, mDrawPos.h, mDrawPos.w); - - -// SDL_Rect draw = mDrawPos; -// draw.x += mPosData.x; -// draw.y += mPosData.y; -// gDiagDraw->LogDiagRect(draw); -// gDiagDraw->LogDiagRect(mPosData); - //gDiagDraw->LogDiagRect(mTouch); - - //mColMan.DrawTerrain(); - //gCons->ConsPrintf("player x: %i\n", mPosData.x); - return true; -} - -//Sludge_Seal functions - -bool Sludge_Seal::Pursue() -{ - - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - Actor* target = mAHM->GetActorAddress(mTarget); - - if ((target->GetX() - mPosData.x > -5)) - { - mXmove = 2; - mDir = LEFT; - } - else if ((target->GetX() - mPosData.x < 5)) - { - mXmove = -2; - mDir = RIGHT; - } - else - { - mXmove = 0; - mState = IDLE; - - return true; - } - return false; -} - -bool Sludge_Seal::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Sludge_Seal::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = gRandom->RandRange(20, 30); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Sludge_Seal::EventProcess(Event eve) -{ - if (mState == DEAD) - { - return false; - } - int AttackerX; - - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (mState == STUN) { break; } - if (eve.GetEventData()->i == mTarget) - { - if (mState == PURSUE) - { - //mAHM->GetActorAddress(mTarget)->EventProcess(Event(PLAYER_CHECK, EventData(), mHandle)); - mAHM->GetActorAddress(mTarget)->EventProcess(Event(DAMAGE, mDamage, mHandle)); - mState = IDLE; - } - } - break; - case SENSOR_COLLISION: - if (mState == STUN) { break; } - switch (eve.GetEventData()->sr.st) - { - case LOS: - mAHM->GetActorAddress(eve.GetEventData()->sr.id)->EventProcess(Event(PLAYER_CHECK, *eve.GetEventData(), mHandle)); - - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - case PLAYER_CONFIRM: - //mAHM->GetActorAddress(eve.GetReturnAddress())->EventProcess(Event(DAMAGE, mDamage, mHandle)); - - mTarget = eve.GetEventData()->sr.id; - - if ((rest(50) == false) && (abs(mAHM->GetActorAddress(mTarget)->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - - break; - case DAMAGE: - if (mState == STUN) { break; } - - mHP -= eve.GetEventData()->damd.damage; - mDamagedTimer = gTime->GetCurrentMS(); - mSoundLib->EventProcess(Event(CREATE_POINT_SOUND, NULL, "sludge_hit", mPosData.x + mDrawPos.x + 5, mPosData.y + 12)); // Should this use mSoundChannel? - - AttackerX = mAHM->GetActorAddress(eve.GetEventData()->damd.attackerID)->GetX(); - if ((AttackerX+6) < (mPosData.x + 11)) //attacker is to the left - { - mXspd = 4; - mYspd = -3; - } - else if ((AttackerX+6) > (mPosData.x + 11)) //attacker is to the right - { - mXspd = -4; - mYspd = -3; - } - - mState = STUN; - - if (mHP <= 0) - { - mState = DEAD; - } - break; - default: - return false; - //gCons->ConsPrintf("Sludge Seal asked to process unrecognized event\n"); - } - - return false; -} - -bool Sludge_Seal::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - if (mColMan.DetectSwim() == true) - { - mAnimID = SWIM; - break; - } - break; - case DEAD: - mAnimID = DEAD; - break; - case STUN: - case IDLE: - default: - mAnimID = IDLE; - - if (mColMan.DetectSwim() == true) - { - mAnimID = TREAD; - break; - } - } - - mFrame = mAnimGraph->UpdateAnimation(); - CalcDrawRect(); - return true; -} - -bool Sludge_Seal::ActorUpdate() -{ - switch (mState) - { - case STUN: - //gCons->ConsPrintf("seal stunned!\n"); - mXmove = 0; - if (gTime->GetCurrentMS() - mDamagedTimer >= 700) - { - mState = IDLE; - //gCons->ConsPrintf("seal recovers!\n"); - } - break; - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - //Wander(); - mSpat->EventProcess(Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle)); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - case DEAD: - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - - UpdatePhysics(); - - if ((mPhysMan.Floating() == true) | (mYspd == 0)) - { - mXspd = 0; - } - - if (mState != DEAD) - { - if (UpdatePosition() == true) - { - - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ((170 - mPosData.w) / 2); - mLOS.w = 170; - //gCons->ConsPrintf("Seal: Cell %i\n", mSpatCell); - } - } - UpdateAnimation(); - return true; -} - -// - -//Loyal_Bug Functions -bool Loyal_Bug::EventProcess(Event eve) -{ - return true; -} - -bool Loyal_Bug::UpdateAnimation() -{ - return true; -} - -bool Loyal_Bug::ActorUpdate() -{ - if (mMounted) //this check may be unnessecary. Loyal bug may only be able to enter these states when he receives events from a rider anyway. (only riders need to track this at all?) - { - switch (mState) - { - case RUN_RIGHT: - mXmove = 6; - break; - case WALK_RIGHT: - mXmove = 3; - break; - case RUN_LEFT: - mXmove = -6; - break; - case WALK_LEFT: - mXmove = -3; - break; - case IDLE: - mXmove = 0; - mYmove = 0; - break; - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - else //Unmounted - { - switch (mState) - { - case IDLE: - default: - gCons->ConsPrintf("Loyal Bug in invalid state\n"); - return false; - } - } - - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - //gCons->ConsPrintf("Loyal Bug x: %i\n", mPosData.x); - return true; -} - -//Wanderer Functions -bool Wanderer::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = gRandom->RandRange(20, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Wanderer::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = gRandom->RandRange(30, 750); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Wanderer::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Wanderer::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Wanderer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - UpdatePosition(); - UpdateAnimation(); - return true; -} - -//Pursuer Functions -bool Pursuer::Pursue() -{ - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - - if ((mTarget->GetX() - mPosData.x > 12)) - { - mXmove = 2; - mDir = RIGHT; - } - else if ((mTarget->GetX() - mPosData.x < -12)) - { - mXmove = -2; - mDir = LEFT; - } - else - { - mXmove = 0; - mState = IDLE; - return true; - } - return false; -} - -bool Pursuer::rest(int t) -{ - if (mRestTimer >= t) - { - mRestTimer = 0; - return false; - } - else - { - mRestTimer++; - return true; - } -} - -bool Pursuer::EventProcess(Event eve) -{ - EventReceiver* DamTar = NULL; - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - if (eve.GetEventData()->p == mTarget) - { - if (mState == PURSUE) - { - mState = IDLE; - } - } - - DamTar = (EventReceiver*)eve.GetEventData()->p; - DamTar->EventProcess(Event(DAMAGE, 10, mHandle)); - break; - case SENSOR_COLLISION: - switch (eve.GetEventData()->sr.st) - { - case LOS: - mTarget = (Actor*)eve.GetEventData()->p; - - if ((rest(50) == false) && (abs(mTarget->GetX() - mPosData.x)) >= 14) - { - mState = PURSUE; - } - break; - default: - gCons->ConsPrintf("Pursuer Receive invalid sensor response, Unrecognized sensor type\n"); - break; - } - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Pursuer asked to process unrecognized event\n"); - } - - return false; -} - -bool Pursuer::UpdateAnimation() -{ - switch (mState) - { - case PURSUE: - mAnimID = RUN; - break; - case IDLE: - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Pursuer::ActorUpdate() -{ - switch (mState) - { - case IDLE: - //rest(20); - mXmove = 0; - mYmove = 0; - mSpat->EventProcess( Event(CHECK_RECT_SENSOR, LOS, &mLOS, mHandle) ); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case PURSUE: - Pursue(); - //mFrame = mAnimPack.ActivateAnimation(RUN)->GetCurrentFrame(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdateFireables(); - if (UpdatePosition() == true) - { - mLOS.y = mPosData.y; - mLOS.x = mPosData.x; - mLOS.x -= ( (170 - mPosData.w) / 2 ); - mLOS.w = 170; - } - UpdateAnimation(); - return true; -} - -//Rabbit -bool Rabbit::Hop() -{ - return false; -} - -bool Rabbit::Wander() -{ - if ((gTime->GetCurrentCycle() - mWanderTimer) >= mWanderLimit) - { - mWanderLimit = gRandom->RandRange(100, 1000); - mWanderTimer = gTime->GetCurrentCycle(); - - switch (EvenOutcomes(2)) - { - case 1: - mDir = LEFT; - break; - case 2: - mDir = RIGHT; - break; - } - - mState = IDLE; - return false; - } - else - { - if (mColMan.DetectSideCollision(&mDestData) == true) - { - //gCons->ConsPrintf("I should jump!\n"); - mYmove = -3; - } - else - { - mYmove = 0; - } - switch (mDir) - { - case LEFT: - mXmove = -1; - break; - case RIGHT: - mXmove = 1; - break; - default: - gCons->ConsPrintf("Wandering In Invalid Direction!\n"); - break; - } - } - return true; -} - -bool Rabbit::WaitRandom() -{ - if ((gTime->GetCurrentCycle() - mWaitTimer) >= mWaitLimit) - { - mWaitLimit = gRandom->RandRange(30, 1000); - mWaitTimer = gTime->GetCurrentCycle(); - - mState = WANDER; - return false; - } - return true; -} - -bool Rabbit::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ACTOR_COLLISION: - break; - case SENSOR_COLLISION: - break; - case DAMAGE: - break; - case ANIM_COMPLETE: - mState = IDLE; - break; - default: - gCons->ConsPrintf("Wanderer asked to process unrecognized event\n"); - } - - return false; -} - -bool Rabbit::UpdateAnimation() -{ - switch (mState) - { - case WANDER: - mAnimID = RUN; - break; - case IDLE: - mAnimID = SLEEP; - break; - default: - mAnimID = IDLE; - } - - mFrame = mAnimGraph->UpdateAnimation(); - return true; -} - -bool Rabbit::ActorUpdate() -{ - switch (mState) - { - case IDLE: - mXmove = 0; - mYmove = 0; - WaitRandom(); - //mFrame = mAnimPack.ActivateAnimation(IDLE)->GetCurrentFrame(); - break; - case WANDER: - Wander(); - break; - default: - gCons->ConsPrintf("Actor in invalid state\n"); - return false; - } - UpdatePhysics(); - UpdatePosition(); - UpdateAnimation(); - //gDiagDraw->LogDiagRect(mPosData); - return true; -} -//- \ No newline at end of file diff --git a/.svn/pristine/f6/f681b3d0126f4b94b3f7eb4c70d285350901d3a0.svn-base b/.svn/pristine/f6/f681b3d0126f4b94b3f7eb4c70d285350901d3a0.svn-base Binary files differ. diff --git a/.svn/pristine/f6/f6d8fc229231600ac2a5256120cb7e7d19b3ed1f.svn-base b/.svn/pristine/f6/f6d8fc229231600ac2a5256120cb7e7d19b3ed1f.svn-base Binary files differ. diff --git a/.svn/pristine/f7/f7be728cd0356f7361a875de2580ffe156541e80.svn-base b/.svn/pristine/f7/f7be728cd0356f7361a875de2580ffe156541e80.svn-base Binary files differ. diff --git a/.svn/pristine/f8/f81370f4f419b3941be6e0d334d26a35ab5cb327.svn-base b/.svn/pristine/f8/f81370f4f419b3941be6e0d334d26a35ab5cb327.svn-base Binary files differ. diff --git a/.svn/pristine/f8/f88fc202fef11388289be0875001418513b08b71.svn-base b/.svn/pristine/f8/f88fc202fef11388289be0875001418513b08b71.svn-base Binary files differ. diff --git a/.svn/pristine/f8/f8f7b22213ec1dbae0421280ff5e056cc47522da.svn-base b/.svn/pristine/f8/f8f7b22213ec1dbae0421280ff5e056cc47522da.svn-base Binary files differ. diff --git a/.svn/pristine/f9/f90e6dd2b2c0971b77548f76858e2f3be9168f26.svn-base b/.svn/pristine/f9/f90e6dd2b2c0971b77548f76858e2f3be9168f26.svn-base Binary files differ. diff --git a/.svn/pristine/f9/f97e9bb4c5d692962c0fb285fbd3b5ce269fa7b1.svn-base b/.svn/pristine/f9/f97e9bb4c5d692962c0fb285fbd3b5ce269fa7b1.svn-base Binary files differ. diff --git a/.svn/pristine/f9/f99e5c6ad6e6f4a48b0ae4ac897da4235d1ec6aa.svn-base b/.svn/pristine/f9/f99e5c6ad6e6f4a48b0ae4ac897da4235d1ec6aa.svn-base @@ -1,171 +0,0 @@ -#include "Particle.h" -#include "Emitter.h" - -//Manager Functions -bool ParticleManager::SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata) -{ - ParticleData* pd = GetParticleData(name); - - SDL_Rect pos; - pos.h = pd->Height; - pos.w = pd->Width; - pos.x = x; - pos.y = y; - - if (!strcmp(type, "P_static")) - { - Particle* prt = new P_static(pd->AnimData, pos, int(mParticles.size()), NULL); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else if (!strcmp(type, "P_drift")) - { - Particle* prt = new P_drift(pd->AnimData, pos, int(mParticles.size()), NULL, ptdata.drift); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else - { - gCons->ConsPrintf("Unrecognized particle type\n"); - } - - return true; -} - -bool ParticleManager::ClearParticle(Particle* prt) -{ - mParticles.erase(mParticles.begin() + prt->GetID()); - for (int i = 0; i < (int)(mParticles.size()); i++) - { - mParticles.at(i)->setID(i); - } - - return false; -} - -bool ParticleManager::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case EMIT_PARTICLE: - { - Emitter* emit = (Emitter*)eve.GetEventData()->p; - SpawnParticle(emit->GetType(), emit->GetName(), emit->GetX(), emit->GetY(), emit->GetData()); - return true; - break; - } - case CREATE_PARTICLE: - SpawnParticle(eve.GetEventData()->psd.type, eve.GetEventData()->psd.name, eve.GetEventData()->psd.x, eve.GetEventData()->psd.y); - return true; - break; - case DEATH: - ClearParticle((Particle*)eve.GetEventData()->p); - particlesKilled += 1; - //gCons->ConsPrintf("Particles killed: %i\n", particlesKilled); - return true; - break; - default: - gCons->ConsPrintf("Particle Manager Received Unrecognized Event\n"); - return false; - break; - } -} - -//Particle Functions -Particle::Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM ) : Mobile(AnimData, Pos, Pos, AHM, NULL, NULL) //Could enable particles to play sounds by replacing second null; worth considering -{ - mAnimGraph->GetAnimPack()->GetAnimation(PARTICLE)->mFeed.Subscribe(this); - mDrawPos.x = 0; - mDrawPos.y = 0; - mState = ALIVE; - mDir = 0; - mID = ID; -} - -//P_Static -bool P_static::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_static::UpdateAnimation() -{ - return false; -} - -bool P_static::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// - -//P_drift -P_drift::P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, drift_data data) : Particle(AnimData, Pos, ID, AHM), mData(data) -{ -} - -bool P_drift::Drift() -{ - return true; -} - -bool P_drift::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_drift::UpdateAnimation() -{ - return false; -} - -bool P_drift::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - Drift(); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// diff --git a/.svn/pristine/fa/fae703e8d754207763bbf0719e030ceb8483fae9.svn-base b/.svn/pristine/fa/fae703e8d754207763bbf0719e030ceb8483fae9.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fb130876f6fff0a1b41ea77415b94fc43b36c245.svn-base b/.svn/pristine/fb/fb130876f6fff0a1b41ea77415b94fc43b36c245.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fb1fa5e1f0b479b4b95ba8ad5b630d9558dfe256.svn-base b/.svn/pristine/fb/fb1fa5e1f0b479b4b95ba8ad5b630d9558dfe256.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fb332ae4812593ecf65d7d08601f2b4117289f84.svn-base b/.svn/pristine/fb/fb332ae4812593ecf65d7d08601f2b4117289f84.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fb40398c075c35b570c75689f3b8eed915262a61.svn-base b/.svn/pristine/fb/fb40398c075c35b570c75689f3b8eed915262a61.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fb8b1ba166913c18eb00f8ca53439d0f4ee54359.svn-base b/.svn/pristine/fb/fb8b1ba166913c18eb00f8ca53439d0f4ee54359.svn-base Binary files differ. diff --git a/.svn/pristine/fb/fba01d0e491a0be6c3adfc137a77231b78657a2f.svn-base b/.svn/pristine/fb/fba01d0e491a0be6c3adfc137a77231b78657a2f.svn-base @@ -1,3 +0,0 @@ - Actor.cpp - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.exe - TapestryEngine.vcxproj -> C:\Users\baptistac1\Documents\Visual Studio 2015\Projects\TapestryEngineDev\Debug\TapestryEngine.pdb (Full PDB) diff --git a/.svn/pristine/fb/fbbb6280f9b852bcb66c1985f6c43d7a6523b2b3.svn-base b/.svn/pristine/fb/fbbb6280f9b852bcb66c1985f6c43d7a6523b2b3.svn-base Binary files differ. diff --git a/.svn/pristine/fc/fc17d464e2f259ebaee02babb619b26b4173e061.svn-base b/.svn/pristine/fc/fc17d464e2f259ebaee02babb619b26b4173e061.svn-base Binary files differ. diff --git a/.svn/pristine/fc/fc8f65cf87ca9b5a7493634a1d4a29165f85a26d.svn-base b/.svn/pristine/fc/fc8f65cf87ca9b5a7493634a1d4a29165f85a26d.svn-base Binary files differ. diff --git a/.svn/pristine/fc/fcadb5e3500047ad496357847ea6621196e70163.svn-base b/.svn/pristine/fc/fcadb5e3500047ad496357847ea6621196e70163.svn-base Binary files differ. diff --git a/.svn/pristine/fc/fcba20a322821815f39ef00f9656ffe7ba19b73e.svn-base b/.svn/pristine/fc/fcba20a322821815f39ef00f9656ffe7ba19b73e.svn-base @@ -1,10 +0,0 @@ -#ifndef SYMBOL_H -#define SYMBOL_H - -#include "Utils.h" -#include "Console.h" -#include "Actor.h" - -int ConvertStringToSymbol(char * str); - -#endif- \ No newline at end of file diff --git a/.svn/pristine/fe/fe2b18f35105838adcb87da7d13231309541f8f1.svn-base b/.svn/pristine/fe/fe2b18f35105838adcb87da7d13231309541f8f1.svn-base Binary files differ. diff --git a/.svn/pristine/fe/fe7c9ddb4c5caf9fbf8b6f10139f65dd0ca78439.svn-base b/.svn/pristine/fe/fe7c9ddb4c5caf9fbf8b6f10139f65dd0ca78439.svn-base Binary files differ. diff --git a/.svn/pristine/fe/fed291cdb1b38b747bb26a176b0c0fcf787222e2.svn-base b/.svn/pristine/fe/fed291cdb1b38b747bb26a176b0c0fcf787222e2.svn-base Binary files differ. diff --git a/.svn/pristine/ff/ff8b3c01507bcc1f53e88b2ab0bbc65bac9e815c.svn-base b/.svn/pristine/ff/ff8b3c01507bcc1f53e88b2ab0bbc65bac9e815c.svn-base @@ -1,171 +0,0 @@ -#include "Particle.h" -#include "Emitter.h" - -//Manager Functions -bool ParticleManager::SpawnParticle(char* type, char* name, int x, int y, ParticleTypeData ptdata) -{ - ParticleData* pd = GetParticleData(name); - - SDL_Rect pos; - pos.h = pd->Height; - pos.w = pd->Width; - pos.x = x; - pos.y = y; - - if (!strcmp(type, "P_static")) - { - Particle* prt = new P_static(pd->AnimData, pos, int(mParticles.size()), NULL, (SpatialMonitor*)pd->spat); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else if (!strcmp(type, "P_drift")) - { - Particle* prt = new P_drift(pd->AnimData, pos, int(mParticles.size()), NULL, (SpatialMonitor*)pd->spat, ptdata.drift); - mParticles.push_back(prt); - mParticles.back()->mFeed.Subscribe(this); - } - else - { - gCons->ConsPrintf("Unrecognized particle type\n"); - } - - return true; -} - -bool ParticleManager::ClearParticle(Particle* prt) -{ - mParticles.erase(mParticles.begin() + prt->GetID()); - for (int i = 0; i < (int)(mParticles.size()); i++) - { - mParticles.at(i)->setID(i); - } - - return false; -} - -bool ParticleManager::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case EMIT_PARTICLE: - { - Emitter* emit = (Emitter*)eve.GetEventData()->p; - SpawnParticle(emit->GetType(), emit->GetName(), emit->GetX(), emit->GetY(), emit->GetData()); - return true; - break; - } - case CREATE_PARTICLE: - SpawnParticle(eve.GetEventData()->psd.type, eve.GetEventData()->psd.name, eve.GetEventData()->psd.x, eve.GetEventData()->psd.y); - return true; - break; - case DEATH: - ClearParticle((Particle*)eve.GetEventData()->p); - particlesKilled += 1; - //gCons->ConsPrintf("Particles killed: %i\n", particlesKilled); - return true; - break; - default: - gCons->ConsPrintf("Particle Manager Received Unrecognized Event\n"); - return false; - break; - } -} - -//Particle Functions -Particle::Particle(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, SpatialMonitor* spat) : Mobile(AnimData, Pos, Pos, AHM, spat, NULL, NULL) //Could enable particles to play sounds by replacing second null; worth considering -{ - mAnimGraph->GetAnimPack()->GetAnimation(PARTICLE)->mFeed.Subscribe(this); - mDrawPos.x = 0; - mDrawPos.y = 0; - mState = ALIVE; - mDir = 0; - mID = ID; -} - -//P_Static -bool P_static::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_static::UpdateAnimation() -{ - return false; -} - -bool P_static::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// - -//P_drift -P_drift::P_drift(AnimGraph* AnimData, SDL_Rect Pos, int ID, ActorHandleManager* AHM, SpatialMonitor* spat, drift_data data) : Particle(AnimData, Pos, ID, AHM, spat), mData(data) -{ -} - -bool P_drift::Drift() -{ - return true; -} - -bool P_drift::EventProcess(Event eve) -{ - switch (*eve.GetEventType()) - { - case ANIM_COMPLETE: - mState = DEAD; - return true; - break; - default: - gCons->ConsPrintf("Particle Received Unrecognized Event\n"); - return false; - break; - } -} - -bool P_drift::UpdateAnimation() -{ - return false; -} - -bool P_drift::ActorUpdate() -{ - switch (mState) - { - case ALIVE: - mFrame = mAnimGraph->PlayOnce(PARTICLE); - Drift(); - break; - case DEAD: - mFeed.EventProcess(Event(DEATH, this)); - break; - default: - gCons->ConsPrintf("Particle in invalid state\n"); - break; - } - return false; -} -// diff --git a/.svn/pristine/ff/ff8b5d176ef990171a1abe777c068202880f9c49.svn-base b/.svn/pristine/ff/ff8b5d176ef990171a1abe777c068202880f9c49.svn-base Binary files differ. diff --git a/.svn/pristine/ff/fff4ae983121b27a9fb02111f4534f60ad8216d4.svn-base b/.svn/pristine/ff/fff4ae983121b27a9fb02111f4534f60ad8216d4.svn-base @@ -1,19 +0,0 @@ -#ifndef MISCDRAW_H -#define MISCDRAW_H - -#include"Actor.h" -#include"Camera.h" -#include"Utils.h" - -SDL_Rect GetScreenPos(Actor& act, Camera cam); - -SDL_Rect DrawActorAnim(SDL_Renderer* ren, Actor& act, animation* anim, Camera cam, int dir); - -bool DrawParallax(SDL_Renderer* ren, SDL_Texture* img, Camera cam, float scale, int worldH, int worldW); - -SDL_Rect DrawActor(SDL_Renderer* ren, Actor& act, Camera cam); - -bool DrawRect(SDL_Renderer* mRen, SDL_Rect WrldPos, Camera& mCam); - -bool DrawText(SDL_Renderer* ren, char* text); -#endif- \ No newline at end of file diff --git a/.svn/wc.db b/.svn/wc.db Binary files differ. diff --git a/.svn/wc.db-journal b/.svn/wc.db-journal diff --git a/.vs/TapestryEngine/v14/.suo b/.vs/TapestryEngine/v14/.suo Binary files differ. diff --git a/.vs/config/applicationhost.config b/.vs/config/applicationhost.config @@ -1,1030 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - IIS configuration sections. - - For schema documentation, see - %IIS_BIN%\config\schema\IIS_schema.xml. - - Please make a backup of this file before making any changes to it. - - NOTE: The following environment variables are available to be used - within this file and are understood by the IIS Express. - - %IIS_USER_HOME% - The IIS Express home directory for the user - %IIS_SITES_HOME% - The default home directory for sites - %IIS_BIN% - The location of the IIS Express binaries - %SYSTEMDRIVE% - The drive letter of %IIS_BIN% - ---> - -<configuration> - - <!-- - - The <configSections> section controls the registration of sections. - Section is the basic unit of deployment, locking, searching and - containment for configuration settings. - - Every section belongs to one section group. - A section group is a container of logically-related sections. - - Sections cannot be nested. - Section groups may be nested. - - <section - name="" [Required, Collection Key] [XML name of the section] - allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set] - overrideModeDefault="Allow" [Allow|Deny] [Default delegation mode] - allowLocation="true" [true|false] [Allowed in location tags] - /> - - The recommended way to unlock sections is by using a location tag: - <location path="Default Web Site" overrideMode="Allow"> - <system.webServer> - <asp /> - </system.webServer> - </location> - - --> - <configSections> - <sectionGroup name="system.applicationHost"> - <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - </sectionGroup> - - <sectionGroup name="system.webServer"> - <section name="asp" overrideModeDefault="Deny" /> - <section name="caching" overrideModeDefault="Allow" /> - <section name="cgi" overrideModeDefault="Deny" /> - <section name="defaultDocument" overrideModeDefault="Allow" /> - <section name="directoryBrowse" overrideModeDefault="Allow" /> - <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="handlers" overrideModeDefault="Deny" /> - <section name="httpCompression" overrideModeDefault="Allow" /> - <section name="httpErrors" overrideModeDefault="Allow" /> - <section name="httpLogging" overrideModeDefault="Deny" /> - <section name="httpProtocol" overrideModeDefault="Allow" /> - <section name="httpRedirect" overrideModeDefault="Allow" /> - <section name="httpTracing" overrideModeDefault="Deny" /> - <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> - <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /> - <section name="odbcLogging" overrideModeDefault="Deny" /> - <sectionGroup name="security"> - <section name="access" overrideModeDefault="Deny" /> - <section name="applicationDependencies" overrideModeDefault="Deny" /> - <sectionGroup name="authentication"> - <section name="anonymousAuthentication" overrideModeDefault="Deny" /> - <section name="basicAuthentication" overrideModeDefault="Deny" /> - <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="digestAuthentication" overrideModeDefault="Deny" /> - <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" /> - <section name="windowsAuthentication" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="authorization" overrideModeDefault="Allow" /> - <section name="ipSecurity" overrideModeDefault="Deny" /> - <section name="dynamicIpSecurity" overrideModeDefault="Deny" /> - <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> - <section name="requestFiltering" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="serverRuntime" overrideModeDefault="Deny" /> - <section name="serverSideInclude" overrideModeDefault="Deny" /> - <section name="staticContent" overrideModeDefault="Allow" /> - <sectionGroup name="tracing"> - <section name="traceFailedRequests" overrideModeDefault="Allow" /> - <section name="traceProviderDefinitions" overrideModeDefault="Deny" /> - </sectionGroup> - <section name="urlCompression" overrideModeDefault="Allow" /> - <section name="validation" overrideModeDefault="Allow" /> - <sectionGroup name="webdav"> - <section name="globalSettings" overrideModeDefault="Deny" /> - <section name="authoring" overrideModeDefault="Deny" /> - <section name="authoringRules" overrideModeDefault="Deny" /> - </sectionGroup> - <sectionGroup name="rewrite"> - <section name="allowedServerVariables" overrideModeDefault="Deny" /> - <section name="rules" overrideModeDefault="Allow" /> - <section name="outboundRules" overrideModeDefault="Allow" /> - <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" /> - <section name="providers" overrideModeDefault="Allow" /> - <section name="rewriteMaps" overrideModeDefault="Allow" /> - </sectionGroup> - <section name="webSocket" overrideModeDefault="Deny" /> - </sectionGroup> - </configSections> - - <configProtectedData> - <providers> - <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" /> - <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAAKmFQvWHDEETRz8l2bjZlRxIkwcqTFaCUnCLljn3Q1OkesrhEO9YyLyx4bUhsj1/DyShAv7OAFFhXlrlomaornnk5PLeyO4lIXxaiT33yOFUUgxDx4GSaygkqghVV0tO5yQ/XguUBp2juMfZyztnsNa4pLcz7ZNZQ6p4yn9hxwNs=" /> - <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA4WoiRJ8KHwzAG8AgejPxEOO4/2Vhkolbwo/8gZeNdUDSD36m55hWv4uC9tr/MlKdnwRLL0NhT50Gccyftqz5xTZ0dg5FtvQhTw/he1NwexTKbV+I4Zrd+sZUqHZTsr7JiEr6OHGXL70qoISW5G2m9U8wKT3caPiDPNj2aAaYPLo=" /> - </providers> - </configProtectedData> - - <system.applicationHost> - - <applicationPools> - <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" /> - <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" /> - <applicationPoolDefaults managedRuntimeLoader="v4.0" > - <processModel/> - </applicationPoolDefaults> - </applicationPools> - - <!-- - - The <listenerAdapters> section defines the protocols with which the - Windows Process Activation Service (WAS) binds. - - --> - <listenerAdapters> - <add name="http" /> - </listenerAdapters> - - <sites> - <site name="WebSite1" id="1" serverAutoStart="true"> - <application path="/"> - <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" /> - </application> - <bindings> - <binding protocol="http" bindingInformation=":8080:localhost" /> - </bindings> - </site> - <siteDefaults> - <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> - <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> - </siteDefaults> - <applicationDefaults applicationPool="Clr4IntegratedAppPool" /> - <virtualDirectoryDefaults allowSubDirConfig="true" /> - </sites> - - <webLimits /> - - </system.applicationHost> - - <system.webServer> - - <serverRuntime /> - - <asp scriptErrorSentToBrowser="true"> - <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" /> - <limits /> - </asp> - - <caching enabled="true" enableKernelCache="true"> - </caching> - - <cgi /> - - <defaultDocument enabled="true"> - <files> - <add value="Default.htm" /> - <add value="Default.asp" /> - <add value="index.htm" /> - <add value="index.html" /> - <add value="iisstart.htm" /> - <add value="default.aspx" /> - </files> - </defaultDocument> - - <directoryBrowse enabled="false" /> - - <fastCgi /> - - <!-- - - The <globalModules> section defines all native-code modules. - To enable a module, specify it in the <modules> section. - - --> - <globalModules> - <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" /> - <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" /> -<!-- <add name="FileCacheModule" image="%IIS_BIN%\cachfile.dll" /> --> - <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" /> -<!-- <add name="HttpCacheModule" image="%IIS_BIN%\cachhttp.dll" /> --> - <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" /> - <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" /> - <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" /> - <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" /> - <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" /> - <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" /> - <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" /> - <add name="StaticFileModule" image="%IIS_BIN%\static.dll" /> - <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" /> - <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" /> - <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" /> - <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" /> - <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" /> -<!-- <add name="DigestAuthenticationModule" image="%IIS_BIN%\authmd5.dll" /> --> - <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" /> - <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" /> - <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" /> - <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" /> - <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" /> - <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" /> -<!-- <add name="TracingModule" image="%IIS_BIN%\iisetw.dll" /> --> - <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" /> - <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" /> - <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" /> - <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" /> - <add name="CgiModule" image="%IIS_BIN%\cgi.dll" /> - <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" /> -<!-- <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> --> - <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" /> - <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" /> - <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" /> - <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" /> - <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" /> - <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" /> - <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" /> - <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" /> - <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" /> - </globalModules> - - <httpCompression directory="%TEMP%\iisexpress\IIS Temporary Compressed Files"> - <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" /> - <dynamicTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </dynamicTypes> - <staticTypes> - <add mimeType="text/*" enabled="true" /> - <add mimeType="message/*" enabled="true" /> - <add mimeType="image/svg+xml" enabled="true" /> - <add mimeType="application/javascript" enabled="true" /> - <add mimeType="application/atom+xml" enabled="true" /> - <add mimeType="application/xaml+xml" enabled="true" /> - <add mimeType="*/*" enabled="false" /> - </staticTypes> - </httpCompression> - - <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath"> - <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" /> - <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" /> - <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" /> - <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" /> - <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" /> - <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" /> - <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" /> - <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" /> - <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" /> - </httpErrors> - - <httpLogging dontLog="false" /> - - <httpProtocol> - <customHeaders> - <clear /> - <add name="X-Powered-By" value="ASP.NET" /> - </customHeaders> - <redirectHeaders> - <clear /> - </redirectHeaders> - </httpProtocol> - - <httpRedirect enabled="false" /> - - <httpTracing> - </httpTracing> - - <isapiFilters> - <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" /> - <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" /> - <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" /> - <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" /> - </isapiFilters> - - <odbcLogging /> - - <security> - - <access sslFlags="None" /> - - <applicationDependencies> - <application name="Active Server Pages" groupId="ASP" /> - </applicationDependencies> - - <authentication> - - <anonymousAuthentication enabled="true" userName="" /> - - <basicAuthentication enabled="false" /> - - <clientCertificateMappingAuthentication enabled="false" /> - - <digestAuthentication enabled="false" /> - - <iisClientCertificateMappingAuthentication enabled="false"> - </iisClientCertificateMappingAuthentication> - - <windowsAuthentication enabled="false"> - <providers> - <add value="Negotiate" /> - <add value="NTLM" /> - </providers> - </windowsAuthentication> - - </authentication> - - <authorization> - <add accessType="Allow" users="*" /> - </authorization> - - <ipSecurity allowUnlisted="true" /> - - <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true"> - <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" /> - <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" /> - </isapiCgiRestriction> - - <requestFiltering> - <fileExtensions allowUnlisted="true" applyToWebDAV="true"> - <add fileExtension=".asa" allowed="false" /> - <add fileExtension=".asax" allowed="false" /> - <add fileExtension=".ascx" allowed="false" /> - <add fileExtension=".master" allowed="false" /> - <add fileExtension=".skin" allowed="false" /> - <add fileExtension=".browser" allowed="false" /> - <add fileExtension=".sitemap" allowed="false" /> - <add fileExtension=".config" allowed="false" /> - <add fileExtension=".cs" allowed="false" /> - <add fileExtension=".csproj" allowed="false" /> - <add fileExtension=".vb" allowed="false" /> - <add fileExtension=".vbproj" allowed="false" /> - <add fileExtension=".webinfo" allowed="false" /> - <add fileExtension=".licx" allowed="false" /> - <add fileExtension=".resx" allowed="false" /> - <add fileExtension=".resources" allowed="false" /> - <add fileExtension=".mdb" allowed="false" /> - <add fileExtension=".vjsproj" allowed="false" /> - <add fileExtension=".java" allowed="false" /> - <add fileExtension=".jsl" allowed="false" /> - <add fileExtension=".ldb" allowed="false" /> - <add fileExtension=".dsdgm" allowed="false" /> - <add fileExtension=".ssdgm" allowed="false" /> - <add fileExtension=".lsad" allowed="false" /> - <add fileExtension=".ssmap" allowed="false" /> - <add fileExtension=".cd" allowed="false" /> - <add fileExtension=".dsprototype" allowed="false" /> - <add fileExtension=".lsaprototype" allowed="false" /> - <add fileExtension=".sdm" allowed="false" /> - <add fileExtension=".sdmDocument" allowed="false" /> - <add fileExtension=".mdf" allowed="false" /> - <add fileExtension=".ldf" allowed="false" /> - <add fileExtension=".ad" allowed="false" /> - <add fileExtension=".dd" allowed="false" /> - <add fileExtension=".ldd" allowed="false" /> - <add fileExtension=".sd" allowed="false" /> - <add fileExtension=".adprototype" allowed="false" /> - <add fileExtension=".lddprototype" allowed="false" /> - <add fileExtension=".exclude" allowed="false" /> - <add fileExtension=".refresh" allowed="false" /> - <add fileExtension=".compiled" allowed="false" /> - <add fileExtension=".msgx" allowed="false" /> - <add fileExtension=".vsdisco" allowed="false" /> - <add fileExtension=".rules" allowed="false" /> - </fileExtensions> - <verbs allowUnlisted="true" applyToWebDAV="true" /> - <hiddenSegments applyToWebDAV="true"> - <add segment="web.config" /> - <add segment="bin" /> - <add segment="App_code" /> - <add segment="App_GlobalResources" /> - <add segment="App_LocalResources" /> - <add segment="App_WebReferences" /> - <add segment="App_Data" /> - <add segment="App_Browsers" /> - </hiddenSegments> - </requestFiltering> - - </security> - - <serverSideInclude ssiExecDisable="false" /> - - <staticContent lockAttributes="isDocFooterFileName"> - <mimeMap fileExtension=".323" mimeType="text/h323" /> - <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" /> - <mimeMap fileExtension=".3gp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" /> - <mimeMap fileExtension=".aac" mimeType="audio/aac" /> - <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".aca" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".accdb" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accde" mimeType="application/msaccess" /> - <mimeMap fileExtension=".accdt" mimeType="application/msaccess" /> - <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" /> - <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" /> - <mimeMap fileExtension=".afm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ai" mimeType="application/postscript" /> - <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" /> - <mimeMap fileExtension=".aifc" mimeType="audio/aiff" /> - <mimeMap fileExtension=".aiff" mimeType="audio/aiff" /> - <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" /> - <mimeMap fileExtension=".application" mimeType="application/x-ms-application" /> - <mimeMap fileExtension=".art" mimeType="image/x-jg" /> - <mimeMap fileExtension=".asd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".asm" mimeType="text/plain" /> - <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".atom" mimeType="application/atom+xml" /> - <mimeMap fileExtension=".au" mimeType="audio/basic" /> - <mimeMap fileExtension=".avi" mimeType="video/msvideo" /> - <mimeMap fileExtension=".axs" mimeType="application/olescript" /> - <mimeMap fileExtension=".bas" mimeType="text/plain" /> - <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" /> - <mimeMap fileExtension=".bin" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".bmp" mimeType="image/bmp" /> - <mimeMap fileExtension=".c" mimeType="text/plain" /> - <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" /> - <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" /> - <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" /> - <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" /> - <mimeMap fileExtension=".chm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".class" mimeType="application/x-java-applet" /> - <mimeMap fileExtension=".clp" mimeType="application/x-msclip" /> - <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" /> - <mimeMap fileExtension=".cnf" mimeType="text/plain" /> - <mimeMap fileExtension=".cod" mimeType="image/cis-cod" /> - <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" /> - <mimeMap fileExtension=".cpp" mimeType="text/plain" /> - <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" /> - <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" /> - <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".csh" mimeType="application/x-csh" /> - <mimeMap fileExtension=".css" mimeType="text/css" /> - <mimeMap fileExtension=".csv" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".cur" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dcr" mimeType="application/x-director" /> - <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" /> - <mimeMap fileExtension=".dib" mimeType="image/bmp" /> - <mimeMap fileExtension=".dir" mimeType="application/x-director" /> - <mimeMap fileExtension=".disco" mimeType="text/xml" /> - <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" /> - <mimeMap fileExtension=".dll.config" mimeType="text/xml" /> - <mimeMap fileExtension=".dlm" mimeType="text/dlm" /> - <mimeMap fileExtension=".doc" mimeType="application/msword" /> - <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" /> - <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" /> - <mimeMap fileExtension=".dot" mimeType="application/msword" /> - <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" /> - <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" /> - <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dtd" mimeType="text/xml" /> - <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" /> - <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" /> - <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" /> - <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".dxr" mimeType="application/x-director" /> - <mimeMap fileExtension=".eml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".emz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" /> - <mimeMap fileExtension=".eps" mimeType="application/postscript" /> - <mimeMap fileExtension=".etx" mimeType="text/x-setext" /> - <mimeMap fileExtension=".evy" mimeType="application/envoy" /> - <mimeMap fileExtension=".exe" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".exe.config" mimeType="text/xml" /> - <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" /> - <mimeMap fileExtension=".fif" mimeType="application/fractals" /> - <mimeMap fileExtension=".fla" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".flv" mimeType="video/x-flv" /> - <mimeMap fileExtension=".gif" mimeType="image/gif" /> - <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" /> - <mimeMap fileExtension=".gz" mimeType="application/x-gzip" /> - <mimeMap fileExtension=".h" mimeType="text/plain" /> - <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" /> - <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" /> - <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" /> - <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".hlp" mimeType="application/winhlp" /> - <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" /> - <mimeMap fileExtension=".hta" mimeType="application/hta" /> - <mimeMap fileExtension=".htc" mimeType="text/x-component" /> - <mimeMap fileExtension=".htm" mimeType="text/html" /> - <mimeMap fileExtension=".html" mimeType="text/html" /> - <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" /> - <mimeMap fileExtension=".hxt" mimeType="text/html" /> - <mimeMap fileExtension=".ico" mimeType="image/x-icon" /> - <mimeMap fileExtension=".ics" mimeType="text/calendar" /> - <mimeMap fileExtension=".ief" mimeType="image/ief" /> - <mimeMap fileExtension=".iii" mimeType="application/x-iphone" /> - <mimeMap fileExtension=".inf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" /> - <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" /> - <mimeMap fileExtension=".jar" mimeType="application/java-archive" /> - <mimeMap fileExtension=".java" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" /> - <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" /> - <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".jpe" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> - <mimeMap fileExtension=".js" mimeType="application/javascript" /> - <mimeMap fileExtension=".json" mimeType="application/json" /> - <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" /> - <mimeMap fileExtension=".jsx" mimeType="text/jscript" /> - <mimeMap fileExtension=".latex" mimeType="application/x-latex" /> - <mimeMap fileExtension=".less" mimeType="text/css" /> - <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" /> - <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" /> - <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".m1v" mimeType="video/mpeg" /> - <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" /> - <mimeMap fileExtension=".m4a" mimeType="audio/mp4" /> - <mimeMap fileExtension=".m4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".man" mimeType="application/x-troff-man" /> - <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" /> - <mimeMap fileExtension=".map" mimeType="text/plain" /> - <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" /> - <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".me" mimeType="application/x-troff-me" /> - <mimeMap fileExtension=".mht" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" /> - <mimeMap fileExtension=".mid" mimeType="audio/mid" /> - <mimeMap fileExtension=".midi" mimeType="audio/mid" /> - <mimeMap fileExtension=".mix" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" /> - <mimeMap fileExtension=".mno" mimeType="text/xml" /> - <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" /> - <mimeMap fileExtension=".mov" mimeType="video/quicktime" /> - <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" /> - <mimeMap fileExtension=".mp2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" /> - <mimeMap fileExtension=".mp4" mimeType="video/mp4" /> - <mimeMap fileExtension=".mp4v" mimeType="video/mp4" /> - <mimeMap fileExtension=".mpa" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpe" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpg" mimeType="video/mpeg" /> - <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" /> - <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" /> - <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" /> - <mimeMap fileExtension=".msi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mso" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" /> - <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" /> - <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" /> - <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" /> - <mimeMap fileExtension=".nws" mimeType="message/rfc822" /> - <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".oda" mimeType="application/oda" /> - <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" /> - <mimeMap fileExtension=".ods" mimeType="application/oleobject" /> - <mimeMap fileExtension=".oga" mimeType="audio/ogg" /> - <mimeMap fileExtension=".ogg" mimeType="video/ogg" /> - <mimeMap fileExtension=".ogv" mimeType="video/ogg" /> - <mimeMap fileExtension=".one" mimeType="application/onenote" /> - <mimeMap fileExtension=".onea" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" /> - <mimeMap fileExtension=".onetmp" mimeType="application/onenote" /> - <mimeMap fileExtension=".onepkg" mimeType="application/onenote" /> - <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" /> - <mimeMap fileExtension=".otf" mimeType="font/otf" /> - <mimeMap fileExtension=".p10" mimeType="application/pkcs10" /> - <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" /> - <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" /> - <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" /> - <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" /> - <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pdf" mimeType="application/pdf" /> - <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" /> - <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" /> - <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" /> - <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" /> - <mimeMap fileExtension=".png" mimeType="image/png" /> - <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" /> - <mimeMap fileExtension=".pnz" mimeType="image/png" /> - <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" /> - <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" /> - <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" /> - <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" /> - <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" /> - <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" /> - <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" /> - <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" /> - <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" /> - <mimeMap fileExtension=".prf" mimeType="application/pics-rules" /> - <mimeMap fileExtension=".prm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".prx" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ps" mimeType="application/postscript" /> - <mimeMap fileExtension=".psd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psm" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".psp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" /> - <mimeMap fileExtension=".qt" mimeType="video/quicktime" /> - <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" /> - <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" /> - <mimeMap fileExtension=".rar" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" /> - <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" /> - <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" /> - <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" /> - <mimeMap fileExtension=".rmi" mimeType="audio/mid" /> - <mimeMap fileExtension=".roff" mimeType="application/x-troff" /> - <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" /> - <mimeMap fileExtension=".rtf" mimeType="application/rtf" /> - <mimeMap fileExtension=".rtx" mimeType="text/richtext" /> - <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" /> - <mimeMap fileExtension=".sct" mimeType="text/scriptlet" /> - <mimeMap fileExtension=".sea" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" /> - <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" /> - <mimeMap fileExtension=".sgml" mimeType="text/sgml" /> - <mimeMap fileExtension=".sh" mimeType="application/x-sh" /> - <mimeMap fileExtension=".shar" mimeType="application/x-shar" /> - <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" /> - <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" /> - <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" /> - <mimeMap fileExtension=".smd" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smi" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".smx" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".smz" mimeType="audio/x-smd" /> - <mimeMap fileExtension=".snd" mimeType="audio/basic" /> - <mimeMap fileExtension=".snp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" /> - <mimeMap fileExtension=".spl" mimeType="application/futuresplash" /> - <mimeMap fileExtension=".spx" mimeType="audio/ogg" /> - <mimeMap fileExtension=".src" mimeType="application/x-wais-source" /> - <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" /> - <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" /> - <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" /> - <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" /> - <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" /> - <mimeMap fileExtension=".svg" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" /> - <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" /> - <mimeMap fileExtension=".t" mimeType="application/x-troff" /> - <mimeMap fileExtension=".tar" mimeType="application/x-tar" /> - <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" /> - <mimeMap fileExtension=".tex" mimeType="application/x-tex" /> - <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" /> - <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" /> - <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" /> - <mimeMap fileExtension=".thn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tif" mimeType="image/tiff" /> - <mimeMap fileExtension=".tiff" mimeType="image/tiff" /> - <mimeMap fileExtension=".toc" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tr" mimeType="application/x-troff" /> - <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" /> - <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" /> - <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" /> - <mimeMap fileExtension=".txt" mimeType="text/plain" /> - <mimeMap fileExtension=".u32" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".uls" mimeType="text/iuls" /> - <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" /> - <mimeMap fileExtension=".vbs" mimeType="text/vbscript" /> - <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" /> - <mimeMap fileExtension=".vcs" mimeType="text/plain" /> - <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" /> - <mimeMap fileExtension=".vml" mimeType="text/xml" /> - <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" /> - <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" /> - <mimeMap fileExtension=".wav" mimeType="audio/wav" /> - <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" /> - <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" /> - <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".webm" mimeType="video/webm" /> - <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" /> - <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" /> - <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" /> - <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" /> - <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" /> - <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" /> - <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" /> - <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" /> - <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" /> - <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" /> - <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" /> - <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" /> - <mimeMap fileExtension=".woff" mimeType="font/x-woff" /> - <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" /> - <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" /> - <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" /> - <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".wsdl" mimeType="text/xml" /> - <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" /> - <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" /> - <mimeMap fileExtension=".x" mimeType="application/directx" /> - <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" /> - <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" /> - <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" /> - <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" /> - <mimeMap fileExtension=".xdr" mimeType="text/plain" /> - <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" /> - <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" /> - <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" /> - <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" /> - <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> - <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" /> - <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" /> - <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" /> - <mimeMap fileExtension=".xml" mimeType="text/xml" /> - <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" /> - <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" /> - <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" /> - <mimeMap fileExtension=".xsd" mimeType="text/xml" /> - <mimeMap fileExtension=".xsf" mimeType="text/xml" /> - <mimeMap fileExtension=".xsl" mimeType="text/xml" /> - <mimeMap fileExtension=".xslt" mimeType="text/xml" /> - <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" /> - <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" /> - <mimeMap fileExtension=".z" mimeType="application/x-compress" /> - <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" /> - </staticContent> - - <tracing> - - <traceProviderDefinitions> - <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}"> - <areas> - <clear /> - <add name="Authentication" value="2" /> - <add name="Security" value="4" /> - <add name="Filter" value="8" /> - <add name="StaticFile" value="16" /> - <add name="CGI" value="32" /> - <add name="Compression" value="64" /> - <add name="Cache" value="128" /> - <add name="RequestNotifications" value="256" /> - <add name="Module" value="512" /> - <add name="Rewrite" value="1024" /> - <add name="FastCGI" value="4096" /> - <add name="WebSocket" value="16384" /> - </areas> - </add> - <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}"> - <areas> - <clear /> - </areas> - </add> - <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}"> - <areas> - <clear /> - </areas> - </add> - <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}"> - <areas> - <add name="Infrastructure" value="1" /> - <add name="Module" value="2" /> - <add name="Page" value="4" /> - <add name="AppServices" value="8" /> - </areas> - </add> - </traceProviderDefinitions> - - <traceFailedRequests> - <add path="*"> - <traceAreas> - <add provider="ASP" verbosity="Verbose" /> - <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" /> - <add provider="ISAPI Extension" verbosity="Verbose" /> - <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" /> - </traceAreas> - <failureDefinitions statusCodes="200-999" /> - </add> - </traceFailedRequests> - - </tracing> - - <urlCompression /> - - <validation /> - <webdav> - <globalSettings> - <propertyStores> - <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" /> - </propertyStores> - <lockStores> - <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" /> - </lockStores> - - </globalSettings> - <authoring> - <locks enabled="true" lockStore="webdav_simple_lock" /> - </authoring> - <authoringRules /> - </webdav> - <webSocket /> - <applicationInitialization /> - - </system.webServer> - <location path="" overrideMode="Allow"> - <system.webServer> - <modules> - <add name="IsapiFilterModule" lockItem="true" /> - <add name="BasicAuthenticationModule" lockItem="true" /> - <add name="IsapiModule" lockItem="true" /> - <add name="HttpLoggingModule" lockItem="true" /> - <!-- - <add name="HttpCacheModule" lockItem="true" /> ---> - <add name="DynamicCompressionModule" lockItem="true" /> - <add name="StaticCompressionModule" lockItem="true" /> - <add name="DefaultDocumentModule" lockItem="true" /> - <add name="DirectoryListingModule" lockItem="true" /> - - <add name="ProtocolSupportModule" lockItem="true" /> - <add name="HttpRedirectionModule" lockItem="true" /> - <add name="ServerSideIncludeModule" lockItem="true" /> - <add name="StaticFileModule" lockItem="true" /> - <add name="AnonymousAuthenticationModule" lockItem="true" /> - <add name="CertificateMappingAuthenticationModule" lockItem="true" /> - <add name="UrlAuthorizationModule" lockItem="true" /> - <add name="WindowsAuthenticationModule" lockItem="true" /> - <!-- - <add name="DigestAuthenticationModule" lockItem="true" /> ---> - <add name="IISCertificateMappingAuthenticationModule" lockItem="true" /> - <add name="WebMatrixSupportModule" lockItem="true" /> - <add name="IpRestrictionModule" lockItem="true" /> - <add name="DynamicIpRestrictionModule" lockItem="true" /> - <add name="RequestFilteringModule" lockItem="true" /> - <add name="CustomLoggingModule" lockItem="true" /> - <add name="CustomErrorModule" lockItem="true" /> - <add name="FailedRequestsTracingModule" lockItem="true" /> - <add name="CgiModule" lockItem="true" /> - <add name="FastCgiModule" lockItem="true" /> - <!-- <add name="WebDAVModule" /> --> - <add name="RewriteModule" /> - <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" /> - <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" /> - <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" /> - <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" /> - <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" /> - <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" /> - <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" /> - <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" /> - <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" /> - <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" /> - <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" /> - <add name="ConfigurationValidationModule" lockItem="true" /> - <add name="WebSocketModule" lockItem="true" /> - <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" /> - <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" /> - <add name="ApplicationInitializationModule" lockItem="true" /> - </modules> - <handlers accessPolicy="Read, Script"> - <!-- <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> --> - <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" /> - <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" /> - <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" /> - <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" /> - <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" /> - <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" /> - <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> - <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" /> - <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" /> - <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> - <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" /> - <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> - <add name="ExtensionlessUrl-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> - <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> - <add name="ExtensionlessUrl-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" /> - <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> - </handlers> - </system.webServer> - </location> -</configuration> diff --git a/TapestryEngine/json/level_arid_land.json b/TapestryEngine/json/level_arid_land.json @@ -918,7 +918,7 @@ {"name":"sludgeseal6", "type" : "sludge_seal" , "anim_pack" : "sludge_seal_pack" , "x" : 2350 , "y" : 710}, {"name":"sludgeseal7", "type" : "sludge_seal" , "anim_pack" : "sludge_seal_pack" , "x" : 2325 , "y" : 710}, {"name":"sludgeseal8", "type" : "sludge_seal" , "anim_pack" : "sludge_seal_pack" , "x" : 1700 , "y" : 710}, - {"name":"player0", "type" : "player" , "anim_pack" : "player_pack" , "x" : 50 , "y" : 710} + {"name":"player0", "type" : "player" , "anim_pack" : "player_pack" , "x" : 1000 , "y" : 710} ], "hud_textures" :