From fc26d7ff41b1b46444adab26f91a7ca8d159d11b Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 13:47:07 +0200 Subject: [PATCH 01/54] Repository initialization --- .gitignore | 2 ++ README.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a22ec46 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +**/.idea/ +**/cmake-build-*/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a5b38f --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# Project Maat +## Description + +Project Maat is the codename of my C++ course "mini-project" based on the quote "Entre le fort et le faible, entre le riche et le pauvre, entre le maître et le serviteur, c’est la liberté qui opprime et la loi qui affranchit." - [Henri Lacordaire](https://en.wikipedia.org/wiki/Jean-Baptiste_Henri_Lacordaire). + +This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). + +## TODO + + - [ ] Level + - [ ] Structure + - [ ] Parsing from XML + - [ ] A* + - [ ] Entities + - [ ] Strucutre + - [ ] Parsing from XML + - [ ] Moving + - [ ] Decorators (Rules) + - [ ] Rules + - [ ] Creation + - [ ] Interaction with entities + - [ ] Parsing of rules and creation of subsequent decorators + - [ ] Graphics + - [ ] Scene rendering + - [ ] UI + - [ ] Menu ? + - [ ] Gameloop + - [ ] Transition from starting to running state and vice-versa + - [ ] Entity behaviour evolution + - [ ] Rule application + - [ ] Saving state through serialization ? + - [ ] UML \ No newline at end of file From b0aeb3149226f5b977ee2606cbb8671d937b56f5 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 13:47:07 +0200 Subject: [PATCH 02/54] Repository initialization --- .gitignore | 2 ++ README.md | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 .gitignore create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a22ec46 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +**/.idea/ +**/cmake-build-*/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..4a5b38f --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +# Project Maat +## Description + +Project Maat is the codename of my C++ course "mini-project" based on the quote "Entre le fort et le faible, entre le riche et le pauvre, entre le maître et le serviteur, c’est la liberté qui opprime et la loi qui affranchit." - [Henri Lacordaire](https://en.wikipedia.org/wiki/Jean-Baptiste_Henri_Lacordaire). + +This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). + +## TODO + + - [ ] Level + - [ ] Structure + - [ ] Parsing from XML + - [ ] A* + - [ ] Entities + - [ ] Strucutre + - [ ] Parsing from XML + - [ ] Moving + - [ ] Decorators (Rules) + - [ ] Rules + - [ ] Creation + - [ ] Interaction with entities + - [ ] Parsing of rules and creation of subsequent decorators + - [ ] Graphics + - [ ] Scene rendering + - [ ] UI + - [ ] Menu ? + - [ ] Gameloop + - [ ] Transition from starting to running state and vice-versa + - [ ] Entity behaviour evolution + - [ ] Rule application + - [ ] Saving state through serialization ? + - [ ] UML \ No newline at end of file From 736eaac94c40a8c2381b1b19e5ab7cef2b0d6d16 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 17:07:24 +0200 Subject: [PATCH 03/54] Project structure and UML first draft --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ README.md | 4 ++++ UML_Class_Diagram.png | Bin 0 -> 45934 bytes src/CMakeLists.txt | 12 ++++++++++++ src/Entity.cpp | 5 +++++ src/Entity.h | 14 ++++++++++++++ src/Level.cpp | 5 +++++ src/Level.h | 18 ++++++++++++++++++ tests/CMakeLists.txt | 12 ++++++++++++ tests/gTests.cpp | 11 +++++++++++ 10 files changed, 109 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 UML_Class_Diagram.png create mode 100644 src/CMakeLists.txt create mode 100644 src/Entity.cpp create mode 100644 src/Entity.h create mode 100644 src/Level.cpp create mode 100644 src/Level.h create mode 100644 tests/CMakeLists.txt create mode 100644 tests/gTests.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8e61928 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_subdirectory(src) +add_subdirectory(tests) + +# Detect and add SFML +find_package(SFML COMPONENTS system window graphics network audio REQUIRED) +if(NOT SFML_FOUND) + message(FATAL_ERROR "SFML could not be found") +endif() + +# Detect and add GTest +find_package(GTest REQUIRED) +if(GTest_FOUND) + enable_testing() +else() + message(FATAL_ERROR "GTest could not be found") +endif() + +# Find PugiXML +find_path(PugiXML_INCLUDE_DIR pugixml.hpp) +if(NOT IS_DIRECTORY ${PugiXML_INCLUDE_DIR}) + message(FATAL_ERROR "PugiXML could not be found") +endif() \ No newline at end of file diff --git a/README.md b/README.md index 4a5b38f..7d4ca64 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ Project Maat is the codename of my C++ course "mini-project" based on the quote This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). +## Structure + +![UML Diagram](UML_Class_Diagram.png) + ## TODO - [ ] Level diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f4d913ff2ea745bf2ee8e5fa816bf420c41632 GIT binary patch literal 45934 zcmeFZWmuK_76*t$D4`-sBVvFcAe|co0g;gI5D_WqZd5`^m2T+<=?+0bLO@DDQhL+f zFzZ#%xyO6%%rnnC^KIsQIoETA{l5QL>sM>Pl93j}J572T0|Nt3{N7zT42%<07#PRa zurcAk+^KqJgMo2c*ik{n+QeSWQpemt%IvY;Qw$7t<;MK1d-w;DWVZ`uF4-4+6dtSU zw-y|$veOpmD7o?c{^{AvbcD0CYgkXpS#t;Gv5uEhXRqFraC^9k_53o%)uZF@r!587 zu~OXaF!BVL{X_$IKZMoiA3h2k-wtY9SxF^zRkV1safI$3%NgJ}d}hB+u$*>C=srpy zDR2~=G14~edcJRjc$GeCtMLrx{;|V7KJ5My2i(;Mw6#{x0$=7%F;K;pY+qWRV^AOe z@lAPDnmdI|q*cPVVgrXaXPfCs`&2UNt~N3D{)eM?H9i}p1=@x@1iGt{Uak)pv7U6^ zWSlB>V(zJtV2NHEkzMCxSv-T2po?8cePo;*SmBmU+}?e3+|7Su1jaj7Km=^YYW}WZl2}1NOP#2bc-?vWC?Ah;4o{U3}E>n{~A|0ncA{5-w0g^YI3cN&Qzl)Z7$N z9Fa713k`2c`lF{3%>}wOh$?%;I}dTDuRi6_wdLNqnN;RSyA!-6!8}E6F0x_M6n%I0 z0kgov2qtH2n)8DNvuD0Aqo_+bo}FYOnQkswv;RmTYoCx=Da+R${LczEAWugiDo>Nz6ZHHnsU@B1*S zVpGkEJR79Oys@7+a@XBCe@bft#k+vX(sMVm?o3Rn038#>#@kY^7lq+&#yVz;eI!KD zaic%H6SJT0G(4-l9%z@!@+@almB`pk#C*mM@XJyR1iK!bOMVhE-gZut#dGl7*jk_`CVk3M~1Kx&r89hI!m)>_UFw2i-WYe_bjzrPRPzgxNe*Wqo z-$!y8=TyO@q2~5}%J$??Uc!_Mfzr)g?(WwXJo~MmKwcN#uFTw~< zRr<)_^X0m#{zIw|%DB^-DyLCbdKpALhZys_Pd*zx=`MBEd2{2k@B3tecjpHQZ4LYQ ztHks_S7}UqEmAw-Jw+8cMWFLiP4SF{#OOqcUOra~?#&Y_6|s2-uRgVM+)?bjHB~0d z(|N1d16OW!;yRPA@l(=Nf4?Y)-0tJj5VgqAuY4=&m)^P8O3t8F?BrG!=A4*N97=C@l;dG;)G-QxH}8T#eTC*ksS33ehbrjJ(b8y>zwgYQe0 z%SD^MU1(N2{|0;eodD;|BZtS*?y}c|Ph4jr`b3;)fPIW$f`E`VIc@F+qh5aB^S9Tz z*4}ZRtgq9gGiogz35hn zOG$ep)J-qS9E)hHkL-WLhs&ICEY)t zJcIEjG1p6`wEAFd@yQD_Df4Qg=&V*vUl|e|-RX)@?NIF;g3~v$Ycp=F9y&5}P0vII zt#@U9fTm3tx!s%5x<)n^ccdF`qw_pk{9PaWBQyF`9<#d7k*qY_=yTb18k+ zUH>M!9Ew??QzaVB&*OZs2d!V!Z04W(z`C0R4;QevRV{AGHG(~McOpNbdyqqPty@Wsdg)OaJSA*KRUQSt~ zI8D`A-$s*C!%bD|UC@-2RB#?H-)Cz6;cLMh*Y3!!Cx>vJ<{TEfsV~W=D@W4g*f?cY z>C0&(xl4vSGG7|ab7$st*^S`!Qy2Su?6+r{1IK11r|Q1XsH^g<4dY`y79?X6Ce2+9 zyBNo8*m-%@88dptAr^abkDAVY*anXcO*F&x$oHIbe!-8Y)N+o3>nb^Bj%KEvZIp-A zp2Dizo7ECtW~D6iYt^5t4+{h5Wk(WtbF!!g?y0-a-cBa;X6##64FA|4TF?FR`IaWP zUsXm!jY&p80%?A_j)_*Ht&ttYGI7)NhXG7Z{1<)HWFE)f+THj{yq@oUVk2cqQ+U$r^>dR~a z$4FE}iJv>HORrQY83q{5Y)^SCMe9@aE@j-|V(&cZ%1g<`${a{<81{pjVOZn>Rbxst z=c6ih9gko?y~>nhs0{M%vto|3G^3A<314Uh30fG*R7avd7`~$%yrvgUdtlz&-7rjM zv%7gfkh+%2?=-4n<<8Qx#3*K%+(0o~EcIcbPoOt;o-V4xV&;y_kVjZxnc%T&TOSB9 zNNsj2G+SP(e3vv!kTiLQ^XAgQcm1H(bq7Rh3MObAK5Qi%gG{W}yQNAK2HEwBmF~Bn zpo=a(A$s7_nHOW8rw$XcqP_fCs<$OKSIG*kYt$uNy6D--B)q1D(6tr0NhU@lDinh}|G`o9# zE9_9~q(On&^Kvf2H5xvC+wV6*^ zaZ{nD4=dZs+PO~)VaMP0Nw_!tF6OKdwn-38)mb5{q;qrONrN6|h4v=yF?n>58-C=u zPRB{@(ShRbJVVVUMw%BO-YkVpUHBkiT?qTj8__J?x0ZxL*bD#vk3a2sS>?EK^W3>} ze&pP5t6lai7YDh6#y4lazIgZU^7H4+6LN=Eui%KNS^Iok#s=oz>YNg)wPM z%gLR`;O6GmD7S8!DAm!?L63|#2I}u`uZVgpD&M_(l7xhWJ$5+ssxvmV$7a(TE$n#i zVxy0!twF2SXzs2Ai>;-R+(Q#$)J^$Qbk@6${efs%)ux@8zpkV>L$yxu4cpaj7tNc6RQHin2Ja8`Ra;H?_3LH`-WQ zUSVSk{_*3{@e?N;X5ziKx5ooj^B?0ZE-tPw4n>8B6I)tZsuUWWga2T3SzJmgS;Y6E z^Y)lGMpAO}*9=Aa>(bGmKfj@|u(7$u#@0R0(|rkfym%MOq)S2u(k>j2tgNhXPM?+& zXpiO&%B|i#?H(L_p^BcWEA_z*ZtnhxX-luM@!o88dk2R%F)?_xUlYYFtgOa&H|8)T zqd5HIg}vp})b2YwR}QyV_-XDi&rdHc<$49KZfvfvPt5lhT)23V#dNUr=C^p%y=^$| zzt1bW;GEO;vQ8wsv8baXkEf@nV?A!Y*pnyMGnI2WcFLl4w)+b73EJA)fb;Y3>l@)S%`GgbQ7Em2x0lhGxyNlTp*9zXd^0nRlP8BO9pn$lVV9pi&Dyojwrr?t zTpp`eEiww(EmJQsRrDf|=#9@2|8oT@9M+y(WYWrVm6nuz+@G%}I4QdCg-3Sp!2`~p zOF+xW*wE7A>$10bOh!$u`8BmLm+L+k1}xE&gWU~{YG)EoPEOeWZbLDD(ob`_HEm^9 z)AyvLPBkw|M4()FFm6akzmrWARrCt{*8;)%?{8bw)z#g*ckkiE=QmfcU6WN%fa8Z* zU0uDsz0GVpuTq;&)~4;cqgQUXB)zpbBrYK#zjx`vg|j3i;zB~l^YZet)JyQ)Po25g zk)z2Q%B0FC05|>|;a2+t5(2 zni_!@n0P;;%&K*|Ql!w1?GdbEWa37K+|TPqV{nSl_N5!W#kba1l04d{~!K>0i8L!j6tcG;3!>NIm*qR9vzCeOe{|3 z%cFO$(9q2G<K5iQsoCR>-Ib4z4J6-d}0-qY{XPQ@Omq)-JE6 zrZ(=-bmV1wPgTv^gP`&1Sbg=q?T*)VbwX+-rv3@EPX|k7%~Zt2adL8UIMi5mB;=Ti z#;3kS4cd*k43=7)a8F9QYP&e7I==HieoIys!$yg#^qNpW(D)pE;xZ z`8Bn@lhazK1XKFBKb3%14AfUEd#KNmA)36s9(IL z_Oa`Mz?XM-UeGcyD0sL0`(>fUEEyTl-n_}etp#tITe<49>wxY~r}e3WH$B!dYwh9b z8BcpU5VcDSFEbYJO(`UM0h55THC;Xx8y{a(_QJ61o(YEQ-U8>~(2#|#t!Qf3n>TNs zCD1ac6{fjzsws%0lWm_4m5021iM_GLyHqKxp%LA02wkhGsp(jAPVm!_YE6pkM`Q!k zdWIC|QRG1$1bbJ;goST<1^OsoJx@ruva<4_t1GC=Y3ulV*8|7rFJ8=k%cUABw-J`T zkRlb8B29Si9DH8o;qDy9)vH(E(VjkYiSguUzkZyE?1jV4lA2@hEyhJJh>RWXEn!{e zT62&sArx>o`=K zB6Z$gPy6#l@Tde1w-blo1CmIfJb zv_s7ASm@Z^2rJyZa`TXam^jTfbU9vAF0_|=tp2w6_IsxDD7J}#BI81%p3@?-eT9ZW z!|#2@#zT~~;M1;4MV_pcV5(A>TVC1xZk9-UdTYoojwi6QQ?5$%^?SVZuz`HD5mc<} zt|4r3Dry1U7Q<`r=x90BN>Wv0w=f`*DjgFp;D$PN>eR_or*1#`i0yi~qb~?ca`%rV zX?XnPN#}bVVM@mt>Y``yU9-y@8?fSVC7R&bWG{Gr{(KKZ)Q?ye9t2uYC!9!9j;Cpu z0dRjxnnx0Scj0}JLNXv5mCxt0%Qn}WomsGwWisC2AI;~G-`2p|7+dEZ95tDB4wb~m z0C)Vw=F-Rm09`S>c28>EkDWYu@+=vd1b~BU*RIW2^FV*Gu&@|QPmR4oM~5RKYYuqi z3+Kq=uL&Y(qTt1$iUQLio`GT$-vnCg*-lSCKiq*5vq1R6Ovjxn*#mgU>sPOOz~3XJ zppXJo2KcXdW%%r`dKgd9bF1a;+w=MP`Pc*msWx-H=mX~-k|kKZ{c)pD7-SrPcLz*tjAE5J*uo;|P7$}mT4haepjzhU%tfy!fJi!By znqW2E=6ta6jqhlG4M8%82YXfv1MC=~45~s=946R!c-L52g8(p)3|*9HWNqvn6K>9S zZINoOuWqidb7;C0aduM_oy;r(+f?6~zYk|Ug4d3bl9CdanAyE2Q#o_%tfF0Iceg@{ zbW8?Wrtr1 z?jhfLhwz097i8q*61FgiXpId*1nzzM^2J}Z;EAk^jErFg14a7IU~iWY zZ_hO->D2T7zgmQW_cc9khtiKSi}Oz(|hbMF=-_M7TI6#dN5e&5cDOAvkOoI zYIla_-8`z+^Vt3nv;ZQ|}Y$ylOTAb|Lqo%`>gO&V%-?VR!ZUe& zQb&7IXRLC1GNC#Kgf|z^34(6LYkE7aG8~u z$vXx8N{6+n+Yf6opa@5>>IXPZt$ovWn~Zf@l#P3CHSzgebaZq$he;&Q0zBRF+L~^2 zFdcH^3JtzKho2;gIUKSZ(HpIOhAy<4YK@2Mh7P(&K!s|Bew(S`hFm<#Ix%iK&KA{i z*$O$z&>&=sNP1gX_1l<@x@jG-d|xleQ$wZJc`zodBCW+@pp9m8h6_z3BAXN>&BKc> zw_V6kmK|}JrrI>Hf&GzjSykoA#rBd_hJ+H zm6yfmvyv%o?1X_be65X_;eC;ub0QduR8Z39L^xxgFwfJyr8IFL)8`T zF)jtq1tumY$F0RL2U{cU`#Wo2XRQ_6wj%Uny=@k=cD*%EVIILmk477dP*?tye4H6U7ka~ zDOl%ymQ-Jb$;#65o}}c*_V&O}zL&^irl#ZErqDf^y(;`V!pO?%>N#wn71at20AN6k zR5Viox&y7v4eHO6X@n>t@MmKP!zMY0Oktxa)@%NjGdZtqmYRN3=Fev{?#+@t; zAD#*q0T47k3CmFH<~9H}IAsexG)XPMM7B-CW=_w@=%!Q@N3z9uLu;HsjjPiAzEj*! zjJ@;n2lMrOce^Wm%=j^11_p}BUZ8ZCIJaRYBCAqrPJOVq)!5YZO5kAj!7oVg`SWL) zRQ~@)jTxvdH^6pmPy5b_$cD4(;{&8>=r(*&i-BB>-GXRJe#f)K#MpuW2kX7? zXrL}o3ww<&EPMe>k;M3|+uHZyEtc|FKnHil#JWn%w1FjyK~Dxs`QD!Y)=+zqY}E2O z*v%Yclg)~}1O2CiaL31IXVY^K8eem;Nd`m`>Ay_X+d`V0^~%B1W@ zclS0IdP>CA^J7Ejrw7tZx6Lgr>%M)vq^+$T$zhVAoWnk}M3kCsG}tb1L@pw0FjUSC zWZ-18)?4Mn&;`qe9A^dgY`A1_n!;-KJ%P5czpmUIFur&&5}_M7Hom#=eS3E|!$v{& z0{p&aXcrqo_cVJ$1{NF3A6**LZF+kRZu9DD3)8p$=DtTHc2VbOM3>umm--yp?-FHX zgbC~~BVDl2uuF95vPzy6Gzl)Q($0SQvA(O$24ae1iIsWEi%>;m>#_ESxA(t~9Aef& z_bzkXFiIAk1rz}nWpAm5%6)K9*w1nLJ@sGI9%#YT4-?;9f!u zAhjW`i%%F}F-&&eYgX7ETmIq81Qp~27JlK(Q5!kjISfDz;{Xcf+$dFt46c0Q%Bqi&;)cXw)+{M$jut6IS&ONP4w zd?}L6@Hwa&uCA`76%}1@>)A(%rGp|PeG+ITV|Wx}a`U{t0*HZk24*3rq0!pHRHKo8 z%-C?e%$c9cdHIe_v{sd4JguI1A`gKg8LxW`n zJXwr$_f58RHQy}j+(7d>N26RK0ps>N^SAbwTF~5h5L?)kU(~8ng@9Tp+bQBf*DqoP zuI9kM*-Qo$avTlaJqQ+0A)e0r|>(r6D!%(5&Ww!zaOf#APde z9K<_IbT?g47qRilFsx@jc!|nd4yT|hu^FDnV5(Y|OU4YzoAtX@z@v;JXLrWfUvfJd z2dpai`)!?8eu%&w@(2ndynXw&sF^({5voDBO&$zK0Zg@*Dek`c#in?vYVmX|NH zv-eC`r-a@Hp!Z{ZTwGG}>dl)zfPBI=8wVI`_NPjqv#?sv$ZWX3hb;g$H#=0p2@f?f zF`+=}1|7(G`2*Jf6kQ8DcSD1NUx$QWs0G|yy~HW96N!TRzss* zqt7IpX{RZcrRbb3r-GCb@VoFQ-p$yVPdxA|T(#`uZo#*Jor02M0@C4|tSw zG~(f;qNOWr=0eN6TBY<${h%y?2hctFx4;c(lPsHA&_7HYmBpt5gtD@-vU`VA%Yv55 z4f;L?BGHH5QqO3S5*J4#i30t0ITe-9r55AehBZfrPE&0$zTVzgCopjzZlHS{Ihi89 z+v+N#ByZ7Qy9VOHWL$;aQX2q`GK+Ccps-5cv{Spr78l!~R3F=hLTuRa?ij3Rhq{ui z?3-O)Q4n#Te2EmfbLZLD{Ij7@9)QDxqGteCDjV5Lz|C*pzI|F1k$?#m*}E)%u)>bX z4cKT;81C-wE{oft^M>m)p9j3?;i`(=fMfNClMh&Tfi&RY;KVy^EkXki3J?Db#MECp z2)buu0EO&@Qv?JA98dc&1eKI7Qt;Y-{Qf8`EP7iK)aHEui-LlJVLV9` z3iVh|@0cD=?moj|vB`J)x$F{#$ebT6_*5uKsOX@mr@ntLW2OnvcjIkZd?bTgdn`Yj z*|3ILA25gPLzBK4P7YTCgS1`RBJe*N{7B>thps<}^#ceTbmPGkI4GjuMh1(cPE$36 z>M=O`QSd4qkW)~60UGI^ZzsWK+$(A31f~wXXQ0pO+FHbIT}2@W0|8~Xqvm5hED>F}Ct z81RGuHOhb##;t-!Mo%U=>u7xvv?$pWZWCvz7GPewbP0-8598&_f(J2AY;8FJyJPUJ zd?Z9)>&{4F-S6*#Ge-hN?GrqmVoB6JQZb@q3nViF<>h{R^ONJ2d@@4K0dBmZcQh%c~Pl;0S6bCjRf^? zp35i8E<#ta`X)SFW%d=R&DW+70_vv^NTqr$O1uNNhMfYTh^>MQbDok?E4AzXcBzxf zHD{HCN6dY2utA1(theEbaU{toEe(gw%s2kVSS9*Eu}e|IOFC7aiJOYw@d6bUm6pqf zqHk}}^_GzeJF{fgBj{ZUOUBGk*U89^2;8<`42KZtKEr4>RcUT(yUxP$7ECNw*M0k{ zOoplAs_ME%z$|88LjnN{GJ{s3p{a?G{+7^NXtTE>Ulg*!yzwc1e88g0>T*H_PzjjU zXA=s!vqff2ni5a}SE~mY3HmKQITvh|G&o_PQ6|vpZ9NaJ!OhRP2kIT1P*4L_R#zVZ z0}$+w*#>R*tMLTiS}Uu)z5RQuY3U+umQImRm2L&O1u(mEnMoZ>1A6kiS&im+swTVXAhEu_ zKBC0GXBWcOP5Szn!p>>iT;V)w-dEEjFj*q3v&dMP67Wj#)BfYZ{IhhhxE>xSAL;7S z^Izv+Vj_Towjr8inUcb)(XcY!25ouPr-BYq3w6P zZ}r{zEG#VDhhWb-j+^x7djcZku|azP3~{~+Gqhp> zHr3V&Zp>b7D2H=Jc>a7H>_v8Auh2{M>m}`f@bo$(kdu1E4liD~(2=Jr=4-ZkiCy2Y z3i#>`IO%MrgDQ9wuq#Zarlx3`1kbaZ;?-{dr2m;abJ|Du@7;U3d%R&a?2ON@;*jG` zNzH*j2*4d_vNTnf&%&yla-@A2-I`uhB|%{d9YyOUF6!cg>yh1FI)YsMSz0Vfl8nLheYks z!Id5c{#&=zKi>MU&p?;i+}k#nM2-$Z-=xvWVC-!S{zGv;OA7KZxWbO6|8NC2TcK|~}I+DnR6|BsIYZ~FIh{!=pf`IyGNYthlL2U@SqVoABaf3v(A|&=GBJu51Bp%sB8@)0`)o0>9WP`Rw119l_tO-7GZZ$bWy-;WuEnzH*!z0t2nmHHCH*`Iy4EswTG6Xi8uTH_Jo9={nFW-;emTfJd+^J(oL5Ak z64X^~4YvSD?$PlYOMLgveP+f0K=+rw%wGTkiC|bsMsvM^Lhu8PzHeYa3(7O7<}t%n zPK5Aj($e@c7g5(G!v!@o$SHWNp=$+vFELX$OSBkVw)pW82h1IiF+;qFE?t5)8gpO3 zgjEUOYy9bOWdwq0@g_ivJx4@zO3>961rn_vC4c1dvia)js{2UGP^8{0_L%PB{tn;a z_BcrRX$Jy(^Q_3j|M>A^z0Nz2M-eDlJ%NBE*wGOzdZ#hym2*BqY$T>vAwng}gTOy+ z$prPwzbM#o3@-q;DG{r;A_fk2VY|}UiOW#T5E=Ju%5sGs zqBP*Vd3H-$7*P7|0^Q`Y_~D_p*x%oeK@QyzDY(N>TrYrAk08%%xzK>~DCkXs$jNs* zx36=hLT8 zV9c&|2otQVG*Xepd`l4VHMg@y}#KC@j}W$vBtWCHNSClCPssu^&I)h4Ni$ zKK8tSA8t^`KCwHd`wQDe1B@=xhPMEsd0wU$n}YR;Wb#gw(R#o?z#G~qh~dY~SYle*=Xv`c z0Pjf4-rCX!*+fvajF*>pE~FwbkU&*c70s8WimWOI@_2wx+o9n1Fl*g*R!~d@`zyZq z8(@_Nb+f8uY5g3@tR}`fEQLd?+?xnj`%g@UFN{%>g_}wD0N7d2^09{Y>Tq@M-wb6I ztk))GZI@HE>$6?r($XB|G3-*wll9FnJf&0Nm}E8|C=V4#VT`yP@x%H51ThOZ_6SLW zfK5C;XUReez5>8gdkj{)>v#XpImbCL3vO_65&x5Sl&T}?oV}+cD2!pJC4P`H>cDf! zyoBn_QWb`0UQclWV?Bb);>yEa6uty$6`%|T&GJGbm;q$q&AQit;y36Wlb;5`A| zDz%!%mr+^--1)JwF;f$;Jk%(5p1@s339-{u(5{X4k}FLVf39ABLBY!ACg$j?8?mFH z%A&2Onmm`Du`c9OWDiwBb!`thA0!{IGRI zL`0TW)xbn?@6`}eiE=m%MNJEtv;8SeK{v+d=Ubs@a9d8i{JQb?5-~W3^ALiFEDYpe zy%<_Rh1_-;El35R`5+ch)y}X9Qodb^@u_5N$1NW|y!?}JxdNTaww^z%r#gJMr3qOA z9@s}n`6wnILe-FWyCV~{yz=Ric1ME9nL|X&TquD{3)pfarEAt2e6Ow@7ljQ8DZatX-0^rDiViURP)N>!$k8M5!Hxz| zt>gGT0$~ToW@p6#&GxuLWq?Fj9zb)9wm1Rp*_)MlOWt7btpM$`0xVke_1ajXEtKBn z&CRJsDmR6_g}%HOp!$REg{v^!s2Cy)$duo4eYEJCmV7D+qNOjw8=QDoSQrdSv^i+* zi7juISDdyn5Ct&KdG*z9*`w{W4C!NkB51uwQnpT$^=~~c{z_kI<+E}yxr6sLckK}B zgdz#5HTwnd1~*;@&6N#7YPEJn~5)p|&U@)`&#TFCc)<_GE@R);#)T z0nVKeZq?r{A^LSo{pmoG<~Zp0}pDSrX^f6HQL zt5k=ZIAAT%ZU4lL8#gGO=5IqogR-8eoU0|+?~)3g5ZWC$=$WX(hKqWJ?PExmgl~5y zaUBwpAigM(qV(Iy5f2YBj#ejIj&<2&XlQ9s0wxU^{-B#7nf1lA&ReHE=VpAiR#haR zAuABLL2~JKqW1f82GVBXkT#Rq{9GpLPx^Dg>;K|3rr@tb^E>enOopV?)Tp6hbc$Sk zk`tKT5DiNner;lOq`37oC>{!0p81#%w8vM0fmqBH3!%~3H5~vaTKq*qJ`?OhW0ir zOzeM<5cPwIr2s+vls|!U1za_SPs@jdW@cv9+ds~bW&4l6cBK1nBup-9Z(q9mdF1)? zOZk4Avw92z`Q$!S`RS;rQMU zRHYJdo`~oZU<{Q%60=o}=KkF}BG`>D z%9L3cXSG7#N8EM8fkHaag^xX)Yz_gIo)*~8tGun|-?Ik>3KS z9!w#9k#aH8yMO<5Y;0^azf&kYk4@~xr>}KlpB&de(*%a&QcZ1IDe66xK&sU*#>U@m zC6VJi4|N V!bBK7NXRd#qr;Q{+E#xn1|R)70Sw5GxldEI@NeF;@a*MVr?z>twWI zzNYW8FBj7kO0hFkp;|l4C2^TIPpJPD zd=T104gp6bBK$oNI7o6uS^PK&>e)0>oVSs9!!k%1tPr^Y!UNX9+g(~4!yuTfjYa-Cq&gu==!m`+q!1 zlusGMfcd%F4=+ z!@UPJVsB}v;u8F^Y6k+t@J2ZIwwY6TCUs2(loc_Hul^1+cx?6y^XH<^#bXgre*E;w zvn7n_#B$vkrZl{Mc<}=Jl}9#_aGF7d#;i?~O|*x|5Vzf8v?FUl_Mi!1_=u1wK*zw5 zMnR8N+yg>1J~{abY$f;n)L1+c77u7%C(ff<)1`O9zqc!fJiGNDPG6iejfGD>`c;hT z6PN*r*RTko4yDE@2oe$SEn|Rc454a7TLg^t>EHSdPJfjXCn&Rzew!Y}19xjz>b-Ti zUEmZr)&p3)50K3P><|#J&pa$|ZFbr0*Do~r9ttt`DhHx}1&IIFcL*Sjkv@Hkah!In z{=GBmU|qgytf9HF+cn21{2wm>qD1}IdNG%6B>e;lvTWsg1}IW?XMUz4erg*(b%$+D zP(&e3^W?+xQz1F;`pAA|{QgiJTsgt;0h9fWqnntR=Ig&A7yp(y&`ls9!3}AEHG|YW zh;m9xEgDc);KDgFVP%-ni29Aj*bV0mtj<4649P|wqy6H>K1ATr5@^uI;4{P^Z|7RY zK+n%l0R=u2McqVv3rN?94s3rTKmuq>QA^Y1Q?z3=C={X_C?XVcMhTfZ$o6eugofSz-(uA5)8+Yd1u`3`f4uP0iVWnXFHQO zY;8X(E%q*tVWSi3Vo)w>OXqAhWs1o-O%+CXj05<|B|Xn>v|QY%M5Yt~hdCZVdR5`Z zTIjND%~j`a)5={on0`P)iyLe55BNnMKfVgQQfbehgw+d)(HmEvM`fHtLG$YcQF^zioXDz`BPRW}X4z&l?P&f0$%a1hoNC$8|*)abBV=rV{0z+(ef zU=sCK-apLQ4hYDoJ|pRpnv#?hzK_Zet+?gfU5Fb$@3p?YZ4X&nP`G~7d7cs6sF|L7 zPU9I^GVFK;@aV=G)EbpC%WIGaFsiu`Yk%Awu0P@(_2ub;B{~5Lg5cz4L^_Wiy)6X_ z(6wh+SXg3yU1;MKZo_UE6Fs;=v=z?tQ&WhT)?@fvsQ7J> zJptS8`nOZ9oHAc-Ex}5#8FqSrK%G9`@adBxH-&=fJLx!7%*4dwpuN7gE(WF*^s%ox zXRS*sDhgoA0|U7Uq-+MYKI7f^Z86Ct&dHOawXV<4MNcVco1brq|98 z_h(>ojZvRK?~IIs!bj-K$OZoubW~JR{(FIUu&A672?xw&99U@Z909FTjBbsq?rb6O z0-U;J$N5ZjMPs+c_g``j$pI=K^Ok2IsE^Fh@~he)K!-;Kj5Ggh{oO}OQ@ zxg1unLc{}d+$*4|EJIjxWuasQ$=xFI|D8L>&Rk@`==gpF=fcs1q@Lc>ZZagWkE=ykRCm+6EF(I-9oc!PalvEdSS3 zjoeT2#lyhE6G=p`6s~cJc|eZZ{EDpxS6-1cu{ zfcbhElvhwFk(7CVK`IXc4plAqqlhvG2x!vtlGa0zdC=2P`bc7+4YEU!>C*(?EkiD{ zJ(sk+Lom=jK--4fRCER#`yqsVMN@&d=tBwob&fODw0_xfg8h?4tEuD)?3y-9J86q3 zw!uZ8dPue13{i&Y-6tUbCaj;#qXa_}0RAF<@8yHEuOumzIEQN53Mxah#oiYN|RgYs~aCRne{bKk(Ce zo|v45k+q^pgE5-hx8K0uh6ydM4a3K9wn1oMhCe`13=~ELgefl_w0`;0vuE?#gWyEy z;k?n(a8*cKQXHRy+=0p7?-?f^7z8q9$EN~y5S62Y{s#;Ihcl-PPD-FAm zQ~K;6cmYJ@aL5*ehXNcePp{=-)d9h#6*G}gH1F{?`5907^VO0&f(`5bY#dh*Rn#2+`G^7Iq5FwSK zskixN{7Kn;zN|Me=K$bZuA|e9TghCmgyMC+#CP0Cz#!N-_7@ZR~zo;|WPz`%O zEY|;Y^q5QdBsO2&hFOdC`F_F}X{_Lw+iCXgkSNSsPp1Q|90|-o4h&6kaz6fP&>!^q zddUYZAfhjKb$uO&lO--8#>2)M6n@AHPj)6tgjCnG#|h-x)d(t%@Q0F@TyyS@262Z& zuk`o$S{vkG-auNj=l2p$Oiw4$`V151fcuV+OrYr}nkkpZfBdL}J9f-|%=1#K7lE!# zv(h||bM4Xt5yb3+v<+mr((0vSctk)ggyAw6U>sXoYKO5Fga9HU(67m~nHVC@9;)V8 zv`lptWEwZVW)P(!NE5;|5WmBLTq*6$HOzw~$^}Pj}I+Hkj9L(R`+Z8l!^lJGhSO>q(cKxRH(>cniG)%L+r6 zSKy_={zP0Rut0jokoiv$5fB^%RaA(VYL2RTvND#ATQ!=1rcgR8hy}@} z6JoAB)-&&1IeQCn1E~b0;Rg`h4)d=tuC#Igo>cX;am&{_EScGpdT{a(Q~hWO&f4TN zEK09#R+_~UeO%j+QRV=tv8+V3H9>x9zq7A4)NFl%NYycBrvbm5v z{`>#=kF6(b_M|OZ91LcNqx6az8D)IU*}wJzVG_u-M;m-868V3@_Is+@4%q_;$AH2X zK*@i)7RF1Evey%q2G%OXitmC)j-+c$igSu=N<5H^0kD4&&@CXqiA%{B{!Pp2%Y?7p zLJR;NaO3`?fS|iR-@JLG>a@dOG%0Y$E_hG-+TY|I)Dp<4fQf~TQ zmnr@xDeb)*&VXPYne1H9>8X&X>UI(z2*0fh$tETLDW>LeT>F_ZXxC&{QlTl=r`}b&m8*Zp8eOn@x;{BdB_{L0ZEKNxP!aK&ihcv zS3wGtC#G%Qo~Y#tJ-sjZXz6kCa&pUmj~}D)3J^_-Ck7uFLb2Hhel1MuHGz<5%;FrL zssAe^{_F9)9f$LDSM48I{FMa|gBV29=g$w3SQvz$5WRcYejE>VxUKsueZ-oaoQ$^q zl|QohbD$YWjSj`+Z)@q_kb?m-32+O$*CLey6TJh0Vt{CoqHG2sA}KEdtBqF5Ka@5w zND=o1@^|ua9fX%Ii2=%nKY%9jlHIr$?y?XJ^$eUkdGbBvXffb5+d$rehOX0@B#tJr z$D!(d6BlQ;s;@i=8+->!a*u_jl@+8@1y{&TK0G9#3*1kAG&j) z*+?uHrpNWRoI%X1eTWHVpCow7(9ko({IdrP^^90oGM z4MqSmLuNT~4`kDBdTM|vDInJ4l5zNfhfrHirubp#Eb1MD`~K_$w<`e5L7$6tUKIx? z`5it&U;ZuAK>7&g@;)^-dc(9*pZS?}gj1N0VjvTp($dnPF{KOWw6?S)K8QmBV7hJb zU}f`p9BS&;U?$O{Izz6wLyFy3^r)|$Tn>!(au@8|&If*|UPK;!i9y@xIPZDQ{m z&mznzvIks1En@!uTRV^^N2V{4+V=9lqbPnoEr9wE{Ye=4;r|R1LIR9dWON^CAMIWONMD35uUu&$0}10!t~RI=n&s9=ia<&8QanE- z#^5}|7{+bL66A5&2iw8F;|;q~ln7>pu)8wU1CuiyZcI*v$H0W3jg5*on#1{jeJ4dQ zNI{T}m4-oD8QT|6A=|JG@$8KhMBs$_^*ax3I#P{?U}|J|;Qk9bkT-7t=!EYZcpDy` z=Jm{{g&3x&VWI?5j;|nqd>h1KK0ZE}Ir8U;gG3ovdL;agY>+ybn4C;-Ec&5)MdQa_jknit+WC#*`DS-K1NbQ`dg{lKzt8fJ*6nD_lPal73B-UR+AnKM#C^#u@A2Yd;mlR zNI_BKVrE&gol^ReOSf zuNJT-{g;wQ+bS@S0iiAQdpL!KqGP(i!=cNdZ;7RLS*%S-A%&zK=GwFjHDL~t8zj`( z`v;zB0X`e69r40^@C6(;j=%>qZR>6$xI!fZR#2nL5e61ZAvN{aljIp~hjUw9hg2w5 zbB+v~QFof!*f^3(gBU!xjYT6x#@}B4GN4b6LeYUkV-8j@1|$hRNj(DrFG7~Suf&WB z1DYT%3CmrRLQfBm<+!8$)J~27fT%zdRo{nsFn>|0a^71gG2SoCgo_9v4ap}@Qt*mJ zyRShH!IlV))AJq)B(q!Vw^a{X-PVlp4*bI<_)2CAb0y%fzx4ONcIy@%kUmh_KEkL# zBIgjeCP?5L1Vp%pARklOP{P~?e6`8>bLZ|TC|m&GF=ghq7d6~o3sL?SSY$zP=RqDr zBpnd56xAAFpaj0%#snEl0Lz$$4jD5Cw>JUM7Ayl)6LFxdU>k!+l-{BO2m?N>=X*6= z?heStI;2OXvHuY;U4QJ3q#!-chSCbO;MY)bE>0CJ6knfQ;q|Te?obBt5zyMka8@;F zP4}Nkyo^lyJ7Wsr5h<^LKSHK;q!VzO(wdL-mxjj^%9r*710NG6+Mn?d^tik}A&6X9*I!W_Lolqy?B3SW_afivArIFcbtn9R&TP z$pYnC-?PpsU!<2y8U*CZa8Bl0V=AOIO7>dHx>Jnf0Q3GvU5ngr%$F%CYYz#dUe4= z(e1%0@wIwdQKQbQ952PoFxI_XRCe*wChuPEwyR~e9ONhMstVa0#F%xXvDi7tDQ<8m zuybiKyMEfdlZxESiq#pW@j{1Pq{#y>HTM4KW+1cOXU~v(@5`1B*DTjv62WZ;?;S9{ zw97(2vnWGlWMqH;EPdB_jVl`?*kW|86oVuC`lc{oK3<{?A?08}S*B-zm;A}=Zp)1VWCLQ^;tp3hfU zfNIr+z;DpT1R)&ZrSU7jmn{-2%@lrm^7=%_ufk4)mPyd30utebC{jqs15j*gdH}uD z$+)4Rfrv6;tKux=*+oelOHf}7bOM!M9TerNWE7$M&?>{-ap)(G_C$3}p zrtI)ofJ5-Qcdt4^lzTcAKNS1?kh*$xL}Ek1(H`*kl4IZja{&cMLHwJMM9SJu@-p-sZLPUOx*fs%!y6xPL$ zTB8kGpP@VvdfGXW5}P?Hj*7fi^Xa>0^8!sZU@$-og+qbvenxZ&G`&ne7-l8tRpP4J z2sD>gqp)MgtFyy8?qbt1ailAs#&M`p_rs3mp3Tr{{9insFlw7oCCg4tx=HHa5gqp2+;q84={8zW(>7kY;i38hT%e!0#xk+$oPs_ zttLneK7u$Eqwha__+pKTsd-9jEZei3oSdciC=d{H)dlIM!fOVboCPGQkb@XUap?7X zdH6J7SmAPXGPj8vye4<=5Lww5E?(4rQu(OT2xc@Nsl|B_cGRd*-c4LY#Ctj^Netr^ zKu3^_{5s;2lGP0g1_Ae*8XJj!AR;2dEz<+E9+uRkN9c5xEn7x7Jz%B)YdBA%uTQmX z{`d&V3?u67R7@%8cq@+$K$iw%Fq@**yiu=!;Xh83WC(Pt73&0*hZ2+yAN~mc3=Cd8 zgC?sS0akF8;EM;!MZaUcfCfSk=Y?@+&+D2U{CAi;R#j$bR<~Y_vf(C2oQAhh+`%oX zz~KU{Oe8cD8XRwlaHq5Ww{Bekxs_cT03|h{#gXaOjC2{ZIBQIi_+qy9@GrCSHY})! z!QKG&z=y`tb|#f}4^?O)8I3_MO?hUM(al5n81LJWBaAg`))2xGn337%w7|{-4&u-| zW4K;aQjnE{Q~&a{YbMM`l~~0r57B{6m+a!(BWrqNHF#)_$?y3&NkfXx1pSQgQ+t9^Sdi-ktYBQSbM^|lO02M3?`6*HZ9seLxYsmy5&&$Vj$n_7MN0}^YznfqDMrjsDIGs(^OJY;uouzVyHJ|1+$2Y#B&IH zlshGea*)ww*^(uvO&#mGzc3Q;dmR*U+CvBgCe;GEVx3X+JY+Heba7YImBGc_h+yoHk8Gr@~*?a@d?2LQT<9~}VN zk}Yl`($b($skwQ1JpML`>N2r{;G-~zbLQzHJO@Z26tS<~yg3e-g8mJYHjMlCF{b`8 zWr~-t?~JV&HbD)TCC^nkae{EK$X?krBz0ZlAMajJdV}5ybXElCeehrz>Npfc$hfFx zgvM*JPOw)s4ImKt@CE@XcOyRKY5q_N?S*7a)KGb8HiT@g8aCCc&!0bc{Q8>T#80^{ zh)w;e?G22pNeQG6LA1sy0Ram&-{Oq%lg=jK&6_v6H9O*&uR5|dBc!JjrsM-hj#PeW z;0o$osy+MruMX>d-G~K`hygC}l^@_Eut@HGl9-#j8}cGl+&YZOO~_BO4i{>Zc~j!q zS!WoN7>rL=4Oy3n{S!#aR?@}n_$2nJa6D?4eAYBBwwc9W=9+Y z_$u96ABve&zdAo{E`_uSa;!EXWvG-^Ih?08nib?h%MF(E0%-(o;) z$Dn1$Y!>o51FLr5o-A35mcYQyF3=kj_p7MvLMi7~kBOtTINyqh^NEx)MUVnfAgo?} z8FO65P)!F{tlUo>Ogqggv)%>U88L);5RzdAwmp|O+$ffL4Dn-F{FL>^j7OPoOCK>pU3=oVn*+tWsbIHihnZ$p|usiNn^ZM zV!lQYjX538eG>Nv4cB4s&^fp(G>8U+{w*n^2VA#x%!<0~GW*l;chU!Kfk6`r5x({b z;4}5&8x0B_5Y57C`(Xm%>nUVb13Y2y>({jojiL_Xd~l+7<5hZM8{%Mquk;w^8;HD9 zpEr3dA=dyt0D&qm|^G6b5znD0D{Q3-#`0Gyx4e$ z7=N*MX=71pZ0OI;AQ!{+j%;g&&(D3Ip&nJ6H+sn6=N9jK4PX6J%lUuh2d03z{Hei< zS6+^HGlkdoG#nHY)?*cUalq9ITFJ>z1u2Vwk=b{yRuFP@=|0pNJuJcYF@)x z+hy@hn}_k&WoEm~hVM1VN-J7EI|oP_PDWis`jD7E94w1m_Uzuh44f7Oa}eb&R(RyW zBS9xId~9qdApK&m3rb9_oAlxLhAu-m7A|gLj6rXU&vn++x!acr8}TCN{L-C0{hBL) zkPWUg$B`Fe*;?)n?rGs^yf6E2pP!?-AaMqeDMB?DS|m(Cq)Pzm6iXkBiE-*_mR9^= zhX|w18o#R|s_(CM$KO9%e%620ezmE&FAGd%n>=qZ2)A(pWyF#7gI4Fvg@`@kPI~w}$Z!dT})42l{8F$ZwO8iK{fS|9mW5 z77p*K#HGIZ<(+Z`ux`7t0}s|Ph_dcSye#m(+PaQH+R$3k1`vp~jZv1IERG2VR?qu` zb8n>Pr3@xS0<$A3^{ZDm@`Bg3naV|UC1_VZ0W`4Giwvp5)_ZyEZYcc`pa<9tFQeuF zg@6|8{FN)y!P-89-LNH{j>eaS%5>PJq;08Mw}UH!lpeJ@nNOlcqer4%`B`;ra*W^J z)(Kjv&OYF%gX#F z-0pHU(+Oo2jsS3=|R1!hyF)Rq0RtQQg2Bf66h27DZ3D~)pXg-jSt>8s1YE?`r{cE z!W$V5sTaUJ2Ot-LO`b$g;ge3f?&p_}7~jS1xmL}^D=ug(&H6YK_N+680B zBPiMi`#Sc4nn4eBN@ZaI{nX$$eYl8;zzA#}vSiBo`S@5J=H~cAM~=urFoC@s?Q-tZ zwFl>XHwSedGfsWJHIEcCC~dmHigyQ5M_$!c%?A*|dN0M|tUj_hxo4fCmh?ffcb7!; z0By9C?}QH%ATk*!>b#UvB%1%6ly3uskvL0m_D&!}17W|fR+V6#?y9R_X9bMA{^KY* zQiy&~#qPcinzNDoFh%YM`%-S& z{Ru{sQ)o$#KB-iBbaVpF&=8Ef$Ytj0Cgc$Y?M3+frzcDzo@WZuVy8n)`Aql8jk|Z7 zE#IR;x&cVytcT#An<$B!Ycr)sM@JnYI!>|)sSd2>qJ1y9fwB_zzy?x{mz&ODn0`L? zQr4k%T|@7q%6T+(rMWavG%zqr10y78?aoIOV9WSDU=yAbYwERYblsuMtrH5Q^B*2b z47Y>OUlk7 zSnD+5ASj@fvUHzp8GdDM2wWYSB7hc%q(%MM7hgVHoL+{Pbt&AkbH2dAni&t-eS*-I zr`3)u<@*zNP_ga^xP~!CC)MP%%2QimQD1j5-gPH0CvDdpye+ifWD4$XDzvE=NFTzo zWc@e;{TlC^H?&{U6DcGwdhiK)> z&?5_MHNb>DKSi|<#ey6sbU#}oQEq@V_=?OC zWh2TP5-)pw>$}yMf$8Q2osZR zy^v_VF`K3}LP9wxl2;cB`AFTAxJEwzZu0r*Eu+ergYyxz&w&Ha#VhFxjD*Xf1S7>Q z$?V(5b&RnZyY~oM1k6aU9qknZTz9hfRQoOz674lSjxVopMGT=~^Tr%j1o}dE%w!h; z2r^%~)$&}IIM?f9<4>A?==(P!f|^YIPh2fz5BATReW>|El_Q(e*Z?|?q>zq_&eK$U zVy$bmFfbFZBlwy4!JHXm%>kpAfjF1FP+plII1-?8gZ1>ax6Q1ZysH8O)3SDTmzIuz zEt5qDqsk+0AdP&;Trwtt(%kEOt9V}9*b7pl$TyVemX+g|ulocsF8fX)(=%1Xw$#}Y z5sesD03_N$UW5jM9q=OHy2r4JAX_vGyuAwOIRyBx0SxjHQE@8>JUKQ}JC+Y{gQ(}w z4jsc$`Lw58jf{wOSQv}NEiaKQJm7&AU)~9mFji-5XbUV)2(I&SvJC)1cthI0by^uD zD2l{Hk~~r(+&*#Q1iLi*NhQYE<@w|5-S}>3R?ZlluNx4>3Rm=Va74&95uQJPzT;qX z*teFlyyO#xIAEXw4RRS9mBgwdbwj~BId*+xkP|9s&Jz<)G3W1m|Np{XV9gnWUvEf2sQME@gjFZp-GGjo! zM#dwse@GYRhX@&7k}uX0m@*xkBx=c!3wqG6!>Pl8WFta->CdM2qep?eXz{{z>K_oP8}#VWb=0U%;51*MKJz2dvN-;+ zLOs8)(7if!^@wVdAPJAqA)x1kP722r8I&kUL_?jh{Suesc0$v>c?I^S-%9Vv7dUJl zYV?uckJnUB&}p?!_+c_G$Hv$JI9n|!*nnL|gk1!Pg}eD4z*uPSUJ&0a0SjRBAgQus zIDt@-+;Krl00s|iifn9NK(ZXLd1~VXCy~Aggn|^~IW!6+c{H>CrBHump)(!PjadL! z?FJgW2LKtoL81Xk!6wqkq1rJTY5g5)hj>Z9~#=%WTTi6PL`^7v*tO3ytgS$`y#k zcajYEvHRGC9z-X@@g-{Va&V->g^Du*(e$tK@`$8uolqq9VL{6%2vTlBiDIZ|cv}Pt z9=k$sc+HdQE%9S>1-=)@4S=fg>W@H~F6vuf0Z>08*|OPF*e?JVr0Hg(po32(2Pyk$ zaI;TdpO{ZmjSWwghBB!JsZHO!uA^#047)JVq{iNNr(k>NFXeLq4O;2~0Lib;anN3& zA=5d3u@=SaU7NM59Toj3jxQW}8~ulX=9PbXJe?ZdWKa_Z4-mp9?Vr~}u0x8$0kDk> zpI#Scb4ktw-`GIvq9|nE^`8QbJlfWc6)($Pb}gWeY_uq@EeTho3TUJkOPWL%rL z)e?I>WrYoZpljmp5!d03+rmYlVm8fZ0qIfYe>}36*kwtg* zC#80z-R3UT4HO()*rT4f&Son@2(S>Fumm9tnmuQZcDxs;QJl)BTWW8G^Q`3>q>eGV zHM)?X1BVbcl2RNh5a5^`nUBVakY#OqS`Lve z0;IIARXika3ql)DE6Bjmv!MZdg3@> z4q5&xLBYu%Fl|DH)5S21osiE#b?+(J@8Eucg8~C3YGQl5v@+wVUmdYG(3NXmSTUPE zzw?*phqq5wrP3f$GIBJ4qW6_`8OYdzW7 zTU)bph!6?8nOyGy)`;CE4e>t2JB>h;xxBmuIFKi7Mw}4XCH%=o1QjE)e>X50*sQ*F z)CK^SsdpKGg?`b7nNd9sQk5~orz&GBPlBixR#1Z&oS_B)4xXHlPdE%MticJtwzC87y5h$MIlCRfDK zc_KkzJ-7#i;%GQaLF|i>>?OV!QxtFv(o42%Sp*pXgmTaX&}}?{!CwY(k12cw(`tIp z-YNNsd|FKbS{HR^r;ohi&GYv2Tp~!vrSNJV8bVco(&1B#u>*4dFWESArvvN z&F#}96vwuiqAfx*`3Ej!@dg(oQGHu@)v8Mm=WcNMxpj5fHqzzdBb-qplS zi)nxr_d-KxRuT3qhcYmag$_L*&4LdEGp{?8<~4PALXBsD=@)sXf|JV zip)%-C~At+&tGzi1XJRPt%+|fc3Qm1M4+mjig!(CEO+GSII`gJU$zOQIcyL(`%um5DO$5_Sba}pVE~Ehz@mYpZ2V$3(kVN4pM(;bc%o6Z zX3d?O4V-#A0C5tYzWkTc<=6XDr}ZDYF%$L3MDvE-m~a+}Tdu;p#N1cfn*F^QtN3Uo zV7%w&lOV5^h`}%b>xhG!ge#wNO?tCEL?o~Y&U}XPb_xm}9h-HvfB-R-0CSp1+H;gE z679Tytj~>Exx6kqe})(1CxsHTa@i=;22LsahKGj(@)luu-vL^R&U*Yj&TIYfqnDbA zb<)_Gl*->p!9-8aP;}Z8ulxG$!AsyVspXkB?*$k&5@^EBEowxGaB(ZeQU|yy#@Gjy zBeopf65TCKz`~(wTr|~UT^9f3-n*ia`AszQ?Ty-HCG_DbJ7TxaU=RZIIFf(=pWRb- z9l3%4STLu}nOsm%s8%5C>V<(r;ocCH*nodml79ciZ@-GKTD>|jK7QWA(OgAf8L{cT zT>Hn)j{tIdfb)Tn<(vE^fCqrK>|sFjp?hw`&cVR~savj142ymhTsHyPv{Af}FmqDa z&1%@r+^%?zDsG1%-Mty7A_(3IIdgl_KHw^lXF|?hGj!eqaX~P^4kV_@dhkxZ4+;`v zFPBy{e#=J0jL|nhVh0K+``FBUw&`e{bYY&Jw_pK)tdDgDWsV73 zIi#X`XX)$nkf{3qOGT;u=YEOVR5ioK3%KAfm0>Z&(185D3ih5&ge1!!lw+G{& zq&;k(9HlV@&6Jq)`u$Nm$TC0CfCUd5dsG!?m8-3m3ZP>k=gx zj-Lsg0K6_cw5Pb@r*Scl86@t4NFyvbvBeSlx$zq-jUO@w-+O%uQ4VI(WoKAuY>R?a z|20nG2W9**e~VBzZRr3-cNh0~kh@qD5-lhKrH|Qc{sc454%?`vWenw zadCmM%xEtx!H^tJ!6jv;l1WHkq~X(0aK}=y-c-XY5_ENCRuMNe&yYxHf0_RM{8^)H zvklm+dGp+}RWEt?V_1!7Wr!U{bR-8|$uq8Cqf!WXs(?Z63H|dLnMFiZAF2P-BX@LTinpCk%@o(9%6d(ooT5Z`c$nJfmD#-0b^ zg-%ixq7e9@Lq*LAsv#yCqj&2;3hJ<0KA_So=$(HVCE_e5}PHo(E5 zl@&5Fb@dXp1MDc6>pTXmV?Bsa6T{ph?ulbyq*5{Jnye*v+`#@vfNi3=g4qVO)AKh)?M4N4 z4gIusTMAAhH!t&t>@#sQ3EdJV6G+L{Gain-&VkGXcdw?FG^Y~l=Oxn9fMfK|aZIbo zL7xZS$q@)X(cIzx$ZdRx+vOcaK|VD)Y^RCaR$cp2dd1Ch?ie--ty%K`&>?+r`qZiG zGujg%fF1?c@Y>eYd9WnF94Ni384kN5&YwTCd)xVcs&7-{VmU%WLpMMU=Gp|`XER`I zB_$=g1@a`o*d=tKy1t56|lm{Scgu1u{D;M^xE%sb_ zb#S0ye2*l!@=pemg55S8NlD^I?!1_brSdd1fqac5)9^3(C0#jCK0bZBp{J*%zgjCgR_X= zJ%#VgwFxOIL`~WC?b~sj3J~UOHVzU_kRBik2ci{5B6r5Dr$7NNm?xB>8>^aqqw>oHc)XhdX_=M`qE^v5KcD#udbthU1Stuk@aJfVkBa zmQo~PXVs}t2!mwJy(HWitpw?J=t6K{UM{SkL;332t!wX-g8oRLUluQuCOa~njs9k`!X zsWIfEVb(CM+I)W`HnK{doO@PjSvg>ev7bL7C~Ip^*aUoHk&NEbcb5$TrQjlk^`_}P z3-*s3a7Os4+uVxAM2&HEF=xql_$L(c?Jx|PK5}P)Jav|-finumS~EvypyUJ3Vl)h% zZkbVLEb5!h69XO6Wmi|(^r}C^_#KnQ8<8$SDa))pFyzDWkhTw|s;n>0#Z`CYHrs?&&G#TzgNw4}`Q8~=!9u`+o`p(v%V-oIV2NAI` zBT=;qY}^<~5Vw&B^DAyafB>@fFm0NEpx_D6fAi+gzbiG*%nP_cSYU*xKt=j+!0qzC z4vFnLWqrt%!T%^aC2NL`=65YX^B!3?14D=At9lwIwx3)grJ}uY65+N}YA7PYX2_PEPE6z{V zN#pKczm7on!@2pA&9~L~_$q82nfqy6Nv1Oh*MMpHG%E|OLx=cFi8~IAyHa`+5*)HI zG;uGM(a}lstr)Kz#pBpvgVozowmIrs0!_%n4brFMcntw{i1=~BB?BUMud)-;NG+{9 zpV~fLK(B8xjF9k86{~qwSlASo!)uYOza6d`Vo=AeZzGw1R$NvpAOBv&f8h7`YL+~& zl;>%AA3Q#7_rIzL&_ife1MzFLm>8brESam^OHWHc7YF>g%l9zg;C+H6hre@;<-0N-x#jJ>5lJCP7dR^E&7z2^ z%U$o(D?~WxOW^%1W4^CQi9ncB5(dI%$~WV9N56B*wjFm73y-$7cgC^62_Am|$T&cn z!w8zxvpnhF^rIJ*aU~dvidV(l7}Fr;yT>_ZK9OPs>Sb-u== zDb{7gFx~lg&~z~c$BHcC0tw}WyZ(?t#NFNZpV=wV?5wPJxWhC(1I#;)Eerj0xglKJ zIRV20bGnHTqz&wnmk)t<3&0`?cfysk6H3R911oq3^>ZGP#NZw*H&QD?Zy zNT?n5l1GgRjG5`|6-;nVySBBtqhmot^oCF%aDMB&aZxyK?`x6j z*xe7y@upB>)rRq1h8scX$Oef*Xwe^#U;!QOnUjdU84`i};*Ml6?XMyV zHAaHKPgIh9>~bcBq!JdZ#gImu2_WhyJzumvxNBE8lZE7}nx^rejZ|Ne4q+??H$G?K!jqEFLl!{2bEc&;ju26!aQW+iwFdYD z{RjyH03=b`YJ=!Wn9U`4yyIPLa^=F}qkC1RumRF(_cf019Zc>O<<;jUOIAtEsVxFJ zt~VPCH>(SDAp%NNz!CC_bWLAWorhgzQK?fNfy0GAwPC#r5L{fmxQP*o9v*@T9mlT| z$aR?L-&=c9pon#iJ^9)%Ov>Lfx2=M=^?u-7Gn-nYpalM*He<6wTK4a{2c^z zP)Ld#*k|Lz{hfV%Hd7~s?F%6K-2QpGzldDl{N21zK>P_qHB%p{h&KBqx-c}Al#wYp5LKw{2LOJU^XQxqkE0DIkyZrLL_$l@$ZrTr zQ(*u9y!C#I2&sFpc7+0V!ze6e+(*o2=KKFG_L6#e6p0VxxL`qoH)Pc?pecwEx^)-5F=#n*m0xmH4BVF`8Fm24Y)QY&Bn ztwpDc=!x8OnjF4GtcpU+?X0wejkpOI{Nk5*k5GErIGJHWUmgun=(5nqU*%K|!E^v2 zDpXn%_y2HKrSW8Yi5_oA^&YE_`WqcwROO=K?j#={?yEr|i5r$*-raz@qc~7QImQJa zmmBMeki+W9rzQ|-2s!(E>vC;7un+55t&G&P$blQrv4ur#HC(G}qE!1nK1>L3+&qIS zU-RXG?kL2`AQ)TLYsu6FrHEA#MHuud8$yvNGO}}Duf`%%2VRd&zo31I%zvwm*^WFD zL=p2bEY~kHeCSd?Q*Sh16xxl8C`FjACLcxeAv^z2e)^Ui@EeFsT7O&2L9$q!+3|em zV>Q1oRWjz1`{WPDYUX1w*bT4{>PFamxb*tziv&|D>0mF3`5w}6`0&}Fu)t4kvK*zG z6ddR~Yw;v!{56j^BmeqT#zt~i+uaiAs>BNza-4`4x0=&xcCyBB2J!)Bn?bzCgp43X zoi>lgROO+G*n7Wo>0v@VEL)}xB?R+K#NVEa8pzbXUAlA!ekrJ-W$>3@{4t%%>yoIiiRdhQk7CFgief_^}t2 zVCquvHvIg_4!@c7sSubUf0t9z_EA?76eNgrYFzIEtt4pGz=()kTfkJ#JNt=D1h0$T zg=6}3ZTP?ya>kid%2u#t&?N#VXB_jtcy=4ElN08_4@IsRms7M=N@PCpK$KqYwms^k zNMR|Tr7L8`Xr}LmmFuw# zD7qZ{*wN9^Sxw~eok+3&2ZSPAs&wE0xo>2%MWb7GH{0Y3j1n~92-nPQHZ;DJ#u(>P zL0rU;0TwIxd0RiD44;{EliqdV5#mr^L_=WmyU%}{TZqsQ=9bD2oLnTy21hfGzhNO$ z{PE`AmM5TxMNn_ZrqjFHNsda4lH*E_Mwl_tWZhrv|I@hQ0XDQGlW7iy4F8Ob1dtn&0ft`z2+R%!%6G_g z?dtoTRSho^E=~V{0gGudE&)nKSHZ^Tp(i4q4xBG>8Q`>rGE#I<6$eLKxhTw1@KxQv zfB#uX-&U@$@h`u3ct(?mO-w`)b{En9CM9U8s^$XKTD@kCxti~Orx~@NMN$&-AtAA^ z+pGG$WVCH@BoReWLQ%>B%!!5KsNk;FT_99_zwzG zskrxb2@K)@N&sp=4!Ie6gM5+zx{i-5d*xzpUa&gR{72jyQkqOVZNC5^POF|q>^(i zhMQ(E)@E(CVjl5IgNqgI$oZ8eHYoi5_KUq9v6z9skdqC-9};Knq^j_T57##m9WcOl z5|x4MGeib*C{BS=nFDBLHhNWJ2q6MYJLu9$P&mY?B!L|=AOuJ*9*o9A`0s(33fWvZ z59;|+b>05$ArMs*Cnl1?^<6Gg@IxJ#96zew{G-Y@4YOtDk;#MXGZFq{;CsLQK8^i( z|L>{m8Dzr%%uo*A!{7>YL^0 zpg6~flrC;N1blB_Q?YfMBcAKd{jjT#&|2qd$GyUTCP_AF@=Y^pQClGclJi7Yb0R_Y z7L;~RaZ)*LBjHm;8w(|akX$k7<{;hG1^1sm1dsG{H3R$iRLH33L5_n zAA@33`sPoLj*bRHTMWL;K}sv#PuiuoBtYl(?b~ZaL=q~T*!W&dp-@gw!Vq5S^mfA~OKJF|dpjR}3`$8k0?D5^f;ITUqod`ChJbb@9wCcP zn4=8z^seXYcH8xD*|_l#s%a^72=O3!0-UU`d7$NcWdJ)(;9s8cP56dfkcAYcyJ*`>sJV9#MPi>&A_Q(pDWns?9v$qjqAEWT#aCp>F5 z70OW z9R{CsIN!(Bw4Wi&!COCw8;GFZS|SHO>vg&ZH5S7qkCc7syC!Tj5llwNx84mPgFcAQ zWPpwftXnZ~>Ej8iN~mTVb0E427^o;K(+8@7>rJoMm{h>a5DGM%Q@TUHT`E7edr}j- zs|>OO*54KY{*!_{gMO>g)T%<@T?vi@U!8eMT6@Sv)F7Tl$7F1`u|A>g;>@P{1E2fz zlz0$2(F4hTbS=HlRuXNjS6)L)l5j|`bX^)~HD?|$`H%P9W3yzfg^40GSP{c9GVU_S z%lYXXIG6hG$7 zCFb6p&~;|(cIIw5-M@9oGUjU9>bPY5J6uAWb?FiZzRkI_s8hGIe%#sxGlVoJ474PT zxeglhVQEi@krv82%|H2n{FDFXgMN^6^8mjl1s@nA(`9UuhZSHm+!mHv*al251O-JO z_8gzhW)EW2Q;O>oiCY1Jv?zpL=KD*j!OetA?e4v|ZxyToy>X_g`iRRt4^)LCYZu@O ztIq()JcEhZ&>mUIu;2^I9dvR^2Sq4?^h01_yU`MtQOEjaOB$;y;j~pccyL*4MO9NG z>-G4*=)aCcj+IiK7Yz68xe99P0h*QGls0&yHsStsxnckvR!{+ICdEcam!aV3tWB#i zA&WS3v?rFTS0L5w(TyWJ5OIKu@&Fi-;(}q@%?b*kx5#c>EjI{KtJ?5&oh||kD&u{u32iUI9Q)$1+GmM!3bJa3l=VnL{rugCz0dIH}cgxQ&C&{ zqf>s7)`%GmCu;oh*K>62iXQCPjXM?6Ix-BS)X*sU`1tVZN%QdTbc~OWU$t!6Hb_A_ ztRz^gX@rN0ZD$Ws`KGsb7(}_NaRC_efxP%Ml284Gxhwbe>ms~OC1vHNZhy>ztEHqg zq#+!=Gx*_=s>5st(}7HT?Xt;5^0czdht@hAH;;OYH;5zQ);tZ^31?q@+4dFLJd# zE@BCT#Pm^T*0zvzlb~9sX`pkuS<+mJE*pW4k)fe0kxr+NS<5pR zIN~eaC*g5%MYe?)xhzKpt!h#%;1ntH0L-{lu8n#GNirpv>Q)emYcc$yZZni!=zF7;+7(FK))$?0= zhf`sH4Q^Uc0GQZ&HwT`DGH%wFp005||L#UvKpNB8*lv{>l)-lA-teAAJDyaPK#p!J zR4Oj$$QcZVn-#u=h?p4B_ZA%*XTCQFjDR>!am$B=4ginc$3JRpMI?47Xxai58&H63 zJmQL2_!_)3I~)Vkp@GMJ+aWm(42Ej`nQnl3Bv&7&w6js6tm{H8#{2+@IhHa~sFVAk` zgaZH!d3jrx)e>d}d|S0cMMmb_J%up*hkHqbV7kyrNtzNPp>=cj!4oG!q7Fx5{Bct@ zGKzwqh|%VN{{x1&QZC}*!~NU0pD(oSb3WeWoO3%E3mx-rGqeJC3tmLqI$(c$Nj2r0X2!fx@c4A;&3rlqxO2o_=fzp8+WaLuqx2q4Lj$w&*I{WKwCEWG_3yP zAolT<%a@A?klxBE)jS+0;E@vqjT}1l_Bbi3Cuo6{>9`k&W;1s&yDKDE!H880Fz(=| z4d1nB3fPAvf#mKw>ogG5%e+w`!!Zc%GC&?HkvZng_6FfLLop|qcurp7Rv$FH4 z`T6jnf{gh z^jcVe>E@7{FJ_lb(lM$^l*gKqT4&SuY=C47fvJ0#kkAt+Nj*4pu4Td1mrX+Iez->p z^Q^|`-p-L1u9+4z(8R&L9bc0B?sCWh+_-Hd>f4pR9QzTQcBB7^=IeLw>JPuSAMZCa z>vg~~LwO$$dl8z5Pu)*`Z*f|_`U5nMeEL)!v6G&lAi~fq%N^9v@Pm}*J`|03Mt$gf zuOR!?*f_dY$Hw0S6`mxBG~nP_Ei8;QtRp^Pa-q8w!gl}(m5$rBlU()=ABI6#MLKs~ z)mpWAvkIW?!9thO<#J?A;A`FlBB-pqoMzn=B!iBs(8eJ?ApsTp#k(ZF0E>eM4ipJl zWB|ki_62Av1W$t4#1|(uNwWwZ&%FWW34P3Fv?|+lO_)M*n=P#!jJ~g^aIFpRsFJ*h zW&QZcJmro5^g%hCLLLXKgvQ&E#Z*t&i&oUfuBv<8Xr7{o&aA?F$sA^E zW*%4BJXhNR$31{ zK|rt&4Vi0@U;rA6ZjOED(b3IML)CC=Ks`0U{N@>q4`qk|L<2*^jn2G0JZ*DH0$>H= zL2ml^MBut8L#TwM+S5WqcOo3GYmpGfm9nz3ulDKF+1bkhQ>HGK8J{gBcS=^Wis(1% z+2wEFE(t4H9aa(!?h{u!*Q#V7nV$Lk%i%v-OKvV&aCL{fyZcY4!WUR9GH}~gw%e2! zhK7cq8_Vi5FarHFizZ+`PDo5#vuf2Y5Lq4OGvPjfj;pPUv+MYB*1Wf#X5E9{WJpq| ztDZWRTp>XXa2ZW8YpTaONPkbHVa2c?YY%_9DwOeAga$l36ev=_0ISq1d(LCkcIzz{ zK`z$^9p$wB-p}*{y58^XoDtkBF(0+r(z~A%Hzorm;9D&rQI-4_^9>ggOfa1+4e!1M`1t1IB4MCMkc=Vw-E0t7yu`SSb_aMe>g#d+VG+c2nD!W*Kxjn78XYaxOxSrhv!YcA$OT$~zt`WyjTy%ub#J8Ve*Hf0 zZ74@3=%C};nUls>=vLGQSoS@?Sf}y5ZZHpj^oZCWR~Am^m^*&J@lbiRHf#ptZxWC| z;hoGXmAcgfls7y7TO-+jC}jVW3GYt>N64z=Au7Dh2gY3q?Ird?qr!9#Hr69f5~iuD zs%}DHEs+E*|B~6ME{HPW9T1n@P76Y%9tE!@+LI5xk#M9{2ih(JVRaZv^ zjC?uC1rmc~a>y0SQk{ZHM}khu)3PpWGJzJ*V7)0Vx zTao%#hWG*}Xu>PsiAqV;G~w5@dGP@>--(VC``?q#H@|W2^1cE?keALpll~O_-*waQ z%kb8oL_dv!uCql{^f2-?Zj|z}qn5x$a!_909kXO8nns-}M3#le$18en0{c9IsEr$Z z&tHqKx4qZZS3#5_#U73}9npL*S4i>2n=w5qyN6Ma~l=TNqxTT(PfdMmSXR zzawnFRkaPVthRK}?C|=x<9Lb+HSH@uvse-Aulo5NajOWkCW34s1^Fx}nukP`UIiX+ zFT~KaAsUfPBj{7%x;lfL7E0PzgEBNUAS8p@{*~eDmU;zA((Z zKy6AvInJLuHwc}aAq2*lgp_b=36dis@qBCh#PFNCQ+iP4(W)H2w^)N#PdVSQw#v*GLW{or zQfzRlyn1n@&WzQ49$i9rCB8^G%%cZ~0y+iPu2sZ>ef=b>{wxco-RjP9U+n)76M{Nq z$<>!xSCzM>qizqjjV&cBnDT7-U!+n|Z26cEN%43wMp@DFM_H&5rH%Z#+zy59G24!w F{a=O=NzwoS literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..df9624a --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_library(engine Level.cpp Level.h Entity.cpp Entity.h) + +target_link_libraries(engine + sfml-window + sfml-graphics + sfml-system) \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp new file mode 100644 index 0000000..2f48d00 --- /dev/null +++ b/src/Entity.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Entity.h" diff --git a/src/Entity.h b/src/Entity.h new file mode 100644 index 0000000..d89911c --- /dev/null +++ b/src/Entity.h @@ -0,0 +1,14 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_ENTITY_H +#define SRC_ENTITY_H + + +class Entity { + +}; + + +#endif //SRC_ENTITY_H diff --git a/src/Level.cpp b/src/Level.cpp new file mode 100644 index 0000000..a6a22d8 --- /dev/null +++ b/src/Level.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Level.h" diff --git a/src/Level.h b/src/Level.h new file mode 100644 index 0000000..a3f959b --- /dev/null +++ b/src/Level.h @@ -0,0 +1,18 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_LEVEL_H +#define SRC_LEVEL_H + + +class Level { + Level(); + +private: + int width; + int height; +}; + + +#endif //SRC_LEVEL_H diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..0d53663 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_executable(gTests gTests.cpp gTests.cpp) + +target_link_libraries(gTests + engine + gtest + pthread) \ No newline at end of file diff --git a/tests/gTests.cpp b/tests/gTests.cpp new file mode 100644 index 0000000..0eccc74 --- /dev/null +++ b/tests/gTests.cpp @@ -0,0 +1,11 @@ +// +// Created by Teo-CD on 06/06/19. +// + +#include + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc,argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file From 2b9593bee847ec94a93392f37ebe48906c04fb94 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 17:07:24 +0200 Subject: [PATCH 04/54] Project structure and UML first draft --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ README.md | 4 ++++ UML_Class_Diagram.png | Bin 0 -> 45934 bytes src/CMakeLists.txt | 12 ++++++++++++ src/Entity.cpp | 5 +++++ src/Entity.h | 14 ++++++++++++++ src/Level.cpp | 5 +++++ src/Level.h | 18 ++++++++++++++++++ tests/CMakeLists.txt | 12 ++++++++++++ tests/gTests.cpp | 11 +++++++++++ 10 files changed, 109 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 UML_Class_Diagram.png create mode 100644 src/CMakeLists.txt create mode 100644 src/Entity.cpp create mode 100644 src/Entity.h create mode 100644 src/Level.cpp create mode 100644 src/Level.h create mode 100644 tests/CMakeLists.txt create mode 100644 tests/gTests.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..8e61928 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_subdirectory(src) +add_subdirectory(tests) + +# Detect and add SFML +find_package(SFML COMPONENTS system window graphics network audio REQUIRED) +if(NOT SFML_FOUND) + message(FATAL_ERROR "SFML could not be found") +endif() + +# Detect and add GTest +find_package(GTest REQUIRED) +if(GTest_FOUND) + enable_testing() +else() + message(FATAL_ERROR "GTest could not be found") +endif() + +# Find PugiXML +find_path(PugiXML_INCLUDE_DIR pugixml.hpp) +if(NOT IS_DIRECTORY ${PugiXML_INCLUDE_DIR}) + message(FATAL_ERROR "PugiXML could not be found") +endif() \ No newline at end of file diff --git a/README.md b/README.md index 4a5b38f..7d4ca64 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,10 @@ Project Maat is the codename of my C++ course "mini-project" based on the quote This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). +## Structure + +![UML Diagram](UML_Class_Diagram.png) + ## TODO - [ ] Level diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f4d913ff2ea745bf2ee8e5fa816bf420c41632 GIT binary patch literal 45934 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 F{a=O=NzwoS literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..df9624a --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_library(engine Level.cpp Level.h Entity.cpp Entity.h) + +target_link_libraries(engine + sfml-window + sfml-graphics + sfml-system) \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp new file mode 100644 index 0000000..2f48d00 --- /dev/null +++ b/src/Entity.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Entity.h" diff --git a/src/Entity.h b/src/Entity.h new file mode 100644 index 0000000..d89911c --- /dev/null +++ b/src/Entity.h @@ -0,0 +1,14 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_ENTITY_H +#define SRC_ENTITY_H + + +class Entity { + +}; + + +#endif //SRC_ENTITY_H diff --git a/src/Level.cpp b/src/Level.cpp new file mode 100644 index 0000000..a6a22d8 --- /dev/null +++ b/src/Level.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Level.h" diff --git a/src/Level.h b/src/Level.h new file mode 100644 index 0000000..a3f959b --- /dev/null +++ b/src/Level.h @@ -0,0 +1,18 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_LEVEL_H +#define SRC_LEVEL_H + + +class Level { + Level(); + +private: + int width; + int height; +}; + + +#endif //SRC_LEVEL_H diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..0d53663 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(src) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_executable(gTests gTests.cpp gTests.cpp) + +target_link_libraries(gTests + engine + gtest + pthread) \ No newline at end of file diff --git a/tests/gTests.cpp b/tests/gTests.cpp new file mode 100644 index 0000000..0eccc74 --- /dev/null +++ b/tests/gTests.cpp @@ -0,0 +1,11 @@ +// +// Created by Teo-CD on 06/06/19. +// + +#include + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc,argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file From 3906ecd27b1c1dbee97beb27cc48bd72766e0787 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 21:30:39 +0200 Subject: [PATCH 05/54] Class structure, updated UML Missing : actual code, decorators --- CMakeLists.txt | 2 +- README.md | 4 ++-- UML_Class_Diagram.png | Bin 45934 -> 46872 bytes src/CMakeLists.txt | 4 ++-- src/Entity.h | 48 +++++++++++++++++++++++++++++++++++++++++- src/Game.cpp | 6 ++++++ src/Game.h | 38 +++++++++++++++++++++++++++++++++ src/Level.h | 19 ++++++++++++++--- tests/CMakeLists.txt | 2 +- 9 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 src/Game.cpp create mode 100644 src/Game.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e61928..ad8b0b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) diff --git a/README.md b/README.md index 7d4ca64..576b9e4 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f ## TODO - [ ] Level - - [ ] Structure + - [x] Structure - [ ] Parsing from XML - [ ] A* - [ ] Entities - - [ ] Strucutre + - [x] Structure - [ ] Parsing from XML - [ ] Moving - [ ] Decorators (Rules) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index c9f4d913ff2ea745bf2ee8e5fa816bf420c41632..bb6dacb4dcf41f53125e229edebc530e633e202b 100644 GIT binary patch literal 46872 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 l>(^g1ANfFYKdbZ$pPJFQQUjt{{j58wtfHr literal 45934 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 F{a=O=NzwoS diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index df9624a..671a0a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.h b/src/Entity.h index d89911c..b79c1b3 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -5,9 +5,55 @@ #ifndef SRC_ENTITY_H #define SRC_ENTITY_H +#include -class Entity { +enum class EntityType +{ + Citizen, + Player, + House, + Car, +}; + +enum class State +{ + Moving, + Fleeing, + Waiting, + Idle, +}; + +enum class Orientation +{ + Nort, + East, + South, + West, +}; + + +class Entity +{ +public: + Entity(); + + void render(sf::RenderWindow& renderWindow) const; + void move(); + void update(); + + /// Position of the target of the current action on the map + sf::Vector2i target; +private: + // As it contains position, size and orientation, we do not need anything more + sf::RectangleShape shape; + + State currentState; + /// Used with rules : last to update has priority + State nextState; + + /// Used with rules : last to update has priority + sf::Vector2i nextTarget; }; diff --git a/src/Game.cpp b/src/Game.cpp new file mode 100644 index 0000000..8428f60 --- /dev/null +++ b/src/Game.cpp @@ -0,0 +1,6 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Game.h" + diff --git a/src/Game.h b/src/Game.h new file mode 100644 index 0000000..7dbc0f6 --- /dev/null +++ b/src/Game.h @@ -0,0 +1,38 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_GAME_H +#define SRC_GAME_H + +#include +#include + +#include "Level.h" + + +// Used for convenience +using TextureStore = std::vector>; + +class Game { +public: + Game(const std::vector& levels, const std::vector& textures); + + /// Loads the level of corresponding ID from Game::levelFiles + void loadLevel(int levelId); + + Level currentLevel; + +private: + /// Store the paths to level files + const std::vector levelFiles; + /// Store the paths to texture files + const std::vector textureFiles; + /// Stores pointers to textures for future use + TextureStore textures; + + void loadTextures(); +}; + + +#endif //SRC_GAME_H diff --git a/src/Level.h b/src/Level.h index a3f959b..a2a03be 100644 --- a/src/Level.h +++ b/src/Level.h @@ -5,13 +5,26 @@ #ifndef SRC_LEVEL_H #define SRC_LEVEL_H +#include +#include + +#include "Entity.h" +#include "Game.h" + class Level { - Level(); +public: + Level(const TextureStore& textureStore); + + void render(sf::RenderWindow& renderWindow) const; + void runStep() const; private: - int width; - int height; + const sf::Vector2i size; + + std::vector entities; + + const TextureStore& textures; }; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0d53663..0924c9a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) From 67435debe64431759cf59fbba956e3dcb93bd47e Mon Sep 17 00:00:00 2001 From: trotFunky Date: Thu, 6 Jun 2019 21:30:39 +0200 Subject: [PATCH 06/54] Class structure, updated UML Missing : actual code, decorators --- CMakeLists.txt | 2 +- README.md | 4 ++-- UML_Class_Diagram.png | Bin 45934 -> 46872 bytes src/CMakeLists.txt | 4 ++-- src/Entity.h | 48 +++++++++++++++++++++++++++++++++++++++++- src/Game.cpp | 6 ++++++ src/Game.h | 38 +++++++++++++++++++++++++++++++++ src/Level.h | 19 ++++++++++++++--- tests/CMakeLists.txt | 2 +- 9 files changed, 113 insertions(+), 10 deletions(-) create mode 100644 src/Game.cpp create mode 100644 src/Game.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 8e61928..ad8b0b6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) diff --git a/README.md b/README.md index 7d4ca64..576b9e4 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f ## TODO - [ ] Level - - [ ] Structure + - [x] Structure - [ ] Parsing from XML - [ ] A* - [ ] Entities - - [ ] Strucutre + - [x] Structure - [ ] Parsing from XML - [ ] Moving - [ ] Decorators (Rules) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index c9f4d913ff2ea745bf2ee8e5fa816bf420c41632..bb6dacb4dcf41f53125e229edebc530e633e202b 100644 GIT binary patch literal 46872 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 l>(^g1ANfFYKdbZ$pPJFQQUjt{{j58wtfHr literal 45934 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 F{a=O=NzwoS diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index df9624a..671a0a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.h b/src/Entity.h index d89911c..b79c1b3 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -5,9 +5,55 @@ #ifndef SRC_ENTITY_H #define SRC_ENTITY_H +#include -class Entity { +enum class EntityType +{ + Citizen, + Player, + House, + Car, +}; + +enum class State +{ + Moving, + Fleeing, + Waiting, + Idle, +}; + +enum class Orientation +{ + Nort, + East, + South, + West, +}; + + +class Entity +{ +public: + Entity(); + + void render(sf::RenderWindow& renderWindow) const; + void move(); + void update(); + + /// Position of the target of the current action on the map + sf::Vector2i target; +private: + // As it contains position, size and orientation, we do not need anything more + sf::RectangleShape shape; + + State currentState; + /// Used with rules : last to update has priority + State nextState; + + /// Used with rules : last to update has priority + sf::Vector2i nextTarget; }; diff --git a/src/Game.cpp b/src/Game.cpp new file mode 100644 index 0000000..8428f60 --- /dev/null +++ b/src/Game.cpp @@ -0,0 +1,6 @@ +// +// Created by trotfunky on 06/06/19. +// + +#include "Game.h" + diff --git a/src/Game.h b/src/Game.h new file mode 100644 index 0000000..7dbc0f6 --- /dev/null +++ b/src/Game.h @@ -0,0 +1,38 @@ +// +// Created by trotfunky on 06/06/19. +// + +#ifndef SRC_GAME_H +#define SRC_GAME_H + +#include +#include + +#include "Level.h" + + +// Used for convenience +using TextureStore = std::vector>; + +class Game { +public: + Game(const std::vector& levels, const std::vector& textures); + + /// Loads the level of corresponding ID from Game::levelFiles + void loadLevel(int levelId); + + Level currentLevel; + +private: + /// Store the paths to level files + const std::vector levelFiles; + /// Store the paths to texture files + const std::vector textureFiles; + /// Stores pointers to textures for future use + TextureStore textures; + + void loadTextures(); +}; + + +#endif //SRC_GAME_H diff --git a/src/Level.h b/src/Level.h index a3f959b..a2a03be 100644 --- a/src/Level.h +++ b/src/Level.h @@ -5,13 +5,26 @@ #ifndef SRC_LEVEL_H #define SRC_LEVEL_H +#include +#include + +#include "Entity.h" +#include "Game.h" + class Level { - Level(); +public: + Level(const TextureStore& textureStore); + + void render(sf::RenderWindow& renderWindow) const; + void runStep() const; private: - int width; - int height; + const sf::Vector2i size; + + std::vector entities; + + const TextureStore& textures; }; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0d53663..0924c9a 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(src) +project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) From a775d846d7e69c75798290278faec1249e6a3fd8 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 7 Jun 2019 02:59:27 +0200 Subject: [PATCH 07/54] Started object construction and parsing Simplified some structures Missing : Entity construction --- UML_Class_Diagram.png | Bin 46872 -> 43973 bytes resources/test_level.xml | 6 ++++++ src/CMakeLists.txt | 2 +- src/Entity.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/Entity.h | 11 ++++++++++- src/Game.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/Game.h | 8 +++++++- src/Level.cpp | 25 +++++++++++++++++++++++++ src/Level.h | 7 +++++-- src/Utils.h | 18 ++++++++++++++++++ 10 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 resources/test_level.xml create mode 100644 src/Utils.h diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index bb6dacb4dcf41f53125e229edebc530e633e202b..5f40a3df443970fd67cc5d6fca5182c16dfb305f 100644 GIT binary patch literal 43973 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 l>(^g1ANfFYKdbZ$pPJFQQUjt{{j58wtfHr diff --git a/resources/test_level.xml b/resources/test_level.xml new file mode 100644 index 0000000..7b4af30 --- /dev/null +++ b/resources/test_level.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 671a0a5..df21f86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.cpp b/src/Entity.cpp index 2f48d00..fd4cfca 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -3,3 +3,39 @@ // #include "Entity.h" + +const std::map Entity::entityTypeLookup = { + {"Citizen",EntityType::Citizen}, + {"Player",EntityType::Player}, + {"House",EntityType::House}, + {"Car",EntityType::Car}}; + +Entity::Entity(int x, int y, EntityType type, int width, int height) +{ + +} + +Entity::Entity(const pugi::xml_node& entityNode) +{ + +} + +void Entity::render(sf::RenderWindow& renderWindow) const +{ + +} + +void Entity::move() +{ + +} + +void Entity::update() +{ + +} + +const sf::RectangleShape& Entity::getShape() const +{ + return(shape); +} diff --git a/src/Entity.h b/src/Entity.h index b79c1b3..be52d46 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -6,6 +6,9 @@ #define SRC_ENTITY_H #include +#include + +#include "Utils.h" enum class EntityType @@ -36,15 +39,21 @@ enum class Orientation class Entity { public: - Entity(); + /// x,y, width and height are in grid coordinates + Entity(int x, int y, EntityType type, int width = 1, int height = 1); + Entity(const pugi::xml_node& entityNode); void render(sf::RenderWindow& renderWindow) const; void move(); void update(); + const sf::RectangleShape& getShape() const; + /// Position of the target of the current action on the map sf::Vector2i target; private: + static const std::map entityTypeLookup; + // As it contains position, size and orientation, we do not need anything more sf::RectangleShape shape; diff --git a/src/Game.cpp b/src/Game.cpp index 8428f60..6983d39 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -1,6 +1,44 @@ +#include + // // Created by trotfunky on 06/06/19. // #include "Game.h" + +Game::Game(const std::vector& levels, const std::vector& textures) +{ + + + loadTextures(); +} + +void Game::loadLevel(int levelId) +{ + pugi::xml_document document; + pugi::xml_parse_result result = document.load_file(levelFiles.at(levelId).c_str()); + + if(!result) + { + std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; + exit(-1); + } + + currentLevel = std::make_unique(document,textures); +} + +void Game::loadTextures() +{ + textures.reserve(textureFiles.size()); + for(const std::string& filePath : textureFiles) + { + textures.emplace_back(std::make_unique()); + textures.back()->loadFromFile(filePath); + } +} + +void Game::runGame() +{ + +} diff --git a/src/Game.h b/src/Game.h index 7dbc0f6..da9f7b2 100644 --- a/src/Game.h +++ b/src/Game.h @@ -7,8 +7,10 @@ #include #include +#include #include "Level.h" +#include "Entity.h" // Used for convenience @@ -19,9 +21,13 @@ public: Game(const std::vector& levels, const std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles + /// Closes the program if there is a fatal error (Missing file, bad file...) void loadLevel(int levelId); - Level currentLevel; + std::unique_ptr currentLevel; + + // This should not be called before a level has been loaded + void runGame(); private: /// Store the paths to level files diff --git a/src/Level.cpp b/src/Level.cpp index a6a22d8..1c0903b 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -3,3 +3,28 @@ // #include "Level.h" + + +Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) + : textures(textureStore), + size(xmlDoc.child("Level").attribute("width").as_int(),xmlDoc.child("Level").attribute("width").as_int()) +{ + pugi::xml_node levelNode = xmlDoc.child("Level"); + for(const pugi::xml_node& child : levelNode.children()) + { + if(!strncmp(child.name(),"Entity",6)) + { + entities.emplace_back(child); + } + } +} + +void Level::render(sf::RenderWindow& renderWindow) const +{ + +} + +void Level::runStep() const +{ + +} diff --git a/src/Level.h b/src/Level.h index a2a03be..63379f9 100644 --- a/src/Level.h +++ b/src/Level.h @@ -6,15 +6,18 @@ #define SRC_LEVEL_H #include +#include #include +#include +#include "Utils.h" #include "Entity.h" -#include "Game.h" +using TextureStore = std::vector>; class Level { public: - Level(const TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; void runStep() const; diff --git a/src/Utils.h b/src/Utils.h new file mode 100644 index 0000000..8fa40a5 --- /dev/null +++ b/src/Utils.h @@ -0,0 +1,18 @@ +// +// Created by trotfunky on 07/06/19. +// + +#ifndef PROJECT_MAAT_UTILS_H +#define PROJECT_MAAT_UTILS_H + +#include + + +namespace pro_maat +{ + +static constexpr uint8_t pixelsPerUnit = 20; + +} + +#endif //PROJECT_MAAT_UTILS_H From 46d26b6e61fb210b5d64a2704c43a4bbb620eed1 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 7 Jun 2019 02:59:27 +0200 Subject: [PATCH 08/54] Started object construction and parsing Simplified some structures Missing : Entity construction --- UML_Class_Diagram.png | Bin 46872 -> 43973 bytes resources/test_level.xml | 6 ++++++ src/CMakeLists.txt | 2 +- src/Entity.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/Entity.h | 11 ++++++++++- src/Game.cpp | 38 ++++++++++++++++++++++++++++++++++++++ src/Game.h | 8 +++++++- src/Level.cpp | 25 +++++++++++++++++++++++++ src/Level.h | 7 +++++-- src/Utils.h | 18 ++++++++++++++++++ 10 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 resources/test_level.xml create mode 100644 src/Utils.h diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index bb6dacb4dcf41f53125e229edebc530e633e202b..5f40a3df443970fd67cc5d6fca5182c16dfb305f 100644 GIT binary patch literal 43973 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 l>(^g1ANfFYKdbZ$pPJFQQUjt{{j58wtfHr diff --git a/resources/test_level.xml b/resources/test_level.xml new file mode 100644 index 0000000..7b4af30 --- /dev/null +++ b/resources/test_level.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 671a0a5..df21f86 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.cpp b/src/Entity.cpp index 2f48d00..fd4cfca 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -3,3 +3,39 @@ // #include "Entity.h" + +const std::map Entity::entityTypeLookup = { + {"Citizen",EntityType::Citizen}, + {"Player",EntityType::Player}, + {"House",EntityType::House}, + {"Car",EntityType::Car}}; + +Entity::Entity(int x, int y, EntityType type, int width, int height) +{ + +} + +Entity::Entity(const pugi::xml_node& entityNode) +{ + +} + +void Entity::render(sf::RenderWindow& renderWindow) const +{ + +} + +void Entity::move() +{ + +} + +void Entity::update() +{ + +} + +const sf::RectangleShape& Entity::getShape() const +{ + return(shape); +} diff --git a/src/Entity.h b/src/Entity.h index b79c1b3..be52d46 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -6,6 +6,9 @@ #define SRC_ENTITY_H #include +#include + +#include "Utils.h" enum class EntityType @@ -36,15 +39,21 @@ enum class Orientation class Entity { public: - Entity(); + /// x,y, width and height are in grid coordinates + Entity(int x, int y, EntityType type, int width = 1, int height = 1); + Entity(const pugi::xml_node& entityNode); void render(sf::RenderWindow& renderWindow) const; void move(); void update(); + const sf::RectangleShape& getShape() const; + /// Position of the target of the current action on the map sf::Vector2i target; private: + static const std::map entityTypeLookup; + // As it contains position, size and orientation, we do not need anything more sf::RectangleShape shape; diff --git a/src/Game.cpp b/src/Game.cpp index 8428f60..6983d39 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -1,6 +1,44 @@ +#include + // // Created by trotfunky on 06/06/19. // #include "Game.h" + +Game::Game(const std::vector& levels, const std::vector& textures) +{ + + + loadTextures(); +} + +void Game::loadLevel(int levelId) +{ + pugi::xml_document document; + pugi::xml_parse_result result = document.load_file(levelFiles.at(levelId).c_str()); + + if(!result) + { + std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; + exit(-1); + } + + currentLevel = std::make_unique(document,textures); +} + +void Game::loadTextures() +{ + textures.reserve(textureFiles.size()); + for(const std::string& filePath : textureFiles) + { + textures.emplace_back(std::make_unique()); + textures.back()->loadFromFile(filePath); + } +} + +void Game::runGame() +{ + +} diff --git a/src/Game.h b/src/Game.h index 7dbc0f6..da9f7b2 100644 --- a/src/Game.h +++ b/src/Game.h @@ -7,8 +7,10 @@ #include #include +#include #include "Level.h" +#include "Entity.h" // Used for convenience @@ -19,9 +21,13 @@ public: Game(const std::vector& levels, const std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles + /// Closes the program if there is a fatal error (Missing file, bad file...) void loadLevel(int levelId); - Level currentLevel; + std::unique_ptr currentLevel; + + // This should not be called before a level has been loaded + void runGame(); private: /// Store the paths to level files diff --git a/src/Level.cpp b/src/Level.cpp index a6a22d8..1c0903b 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -3,3 +3,28 @@ // #include "Level.h" + + +Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) + : textures(textureStore), + size(xmlDoc.child("Level").attribute("width").as_int(),xmlDoc.child("Level").attribute("width").as_int()) +{ + pugi::xml_node levelNode = xmlDoc.child("Level"); + for(const pugi::xml_node& child : levelNode.children()) + { + if(!strncmp(child.name(),"Entity",6)) + { + entities.emplace_back(child); + } + } +} + +void Level::render(sf::RenderWindow& renderWindow) const +{ + +} + +void Level::runStep() const +{ + +} diff --git a/src/Level.h b/src/Level.h index a2a03be..63379f9 100644 --- a/src/Level.h +++ b/src/Level.h @@ -6,15 +6,18 @@ #define SRC_LEVEL_H #include +#include #include +#include +#include "Utils.h" #include "Entity.h" -#include "Game.h" +using TextureStore = std::vector>; class Level { public: - Level(const TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; void runStep() const; diff --git a/src/Utils.h b/src/Utils.h new file mode 100644 index 0000000..8fa40a5 --- /dev/null +++ b/src/Utils.h @@ -0,0 +1,18 @@ +// +// Created by trotfunky on 07/06/19. +// + +#ifndef PROJECT_MAAT_UTILS_H +#define PROJECT_MAAT_UTILS_H + +#include + + +namespace pro_maat +{ + +static constexpr uint8_t pixelsPerUnit = 20; + +} + +#endif //PROJECT_MAAT_UTILS_H From 06841915f094bf9340b569ac8adf1daf4de32bda Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 7 Jun 2019 22:20:34 +0200 Subject: [PATCH 09/54] Entities are now constructable Added utility function to display error window Added textures Added font Added a way to choose resources location --- README.md | 6 ++--- resources/Building.png | Bin 0 -> 930 bytes resources/Head_Boy.png | Bin 0 -> 770 bytes resources/Head_Significant_Boy.png | Bin 0 -> 829 bytes resources/test_level.xml | 3 ++- resources/verdana.ttf | Bin 0 -> 153540 bytes src/CMakeLists.txt | 5 ++-- src/Entity.cpp | 33 +++++++++++++++--------- src/Entity.h | 9 ++++--- src/Game.cpp | 40 ++++++++++++++++++++++++----- src/Game.h | 6 +++-- src/Level.cpp | 15 ++++++++--- src/Level.h | 2 +- src/Utils.cpp | 39 ++++++++++++++++++++++++++++ src/Utils.h | 11 ++++++-- tests/CMakeLists.txt | 8 +++++- tests/gTests.cpp | 17 ++++++++++++ 17 files changed, 155 insertions(+), 39 deletions(-) create mode 100644 resources/Building.png create mode 100644 resources/Head_Boy.png create mode 100644 resources/Head_Significant_Boy.png create mode 100644 resources/verdana.ttf create mode 100644 src/Utils.cpp diff --git a/README.md b/README.md index 576b9e4..5830649 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Level - [x] Structure - - [ ] Parsing from XML + - [x] Parsing from XML - [ ] A* - [ ] Entities - [x] Structure - - [ ] Parsing from XML + - [x] Parsing from XML - [ ] Moving - [ ] Decorators (Rules) - [ ] Rules @@ -25,7 +25,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - [ ] Graphics - - [ ] Scene rendering + - [x] Scene rendering - [ ] UI - [ ] Menu ? - [ ] Gameloop diff --git a/resources/Building.png b/resources/Building.png new file mode 100644 index 0000000000000000000000000000000000000000..32fc6fa391363f2f958a2bec75de6903fa912c87 GIT binary patch literal 930 zcmV;T16}-yP)EX>4Tx04R}tkv&MmKpe$iTeTt)5j%)DWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLxH>7iNQwVT3N2zhIPS;0dyl(!K(JnBn$ z;Ji;9VMSRbJ|`YC>4L5=1DdqJ%PR#Aww?v5=zuxQ~Cx^-JVZ$W;O( z#{w$QAiI9>Klt6Pm7kpOl7u+W`QkVqBS3f;Xw)3%``B?BCqU>KxYAqxN*$Q_B)!(s zqDMgAHgIv>(v&^mat9cEGGtSBr4Y?vJ`cQ~(Kls*fm@(w&FihXkJASrO?wxXS8*o!@00006VoOIv0H^?{0I0TdNGbpT010qNS#tmY zE+YT{E+YYWr9XB6000McNliru;|2#2Brge08!Z3;02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00DYQL_t(o!|hj1PJ}QN{@QQ?6BlkxoVd{F1vmq%w&4=2 z;RG}5xkLk9aRx4+(S^~(tqT*60IneXv}FhdOq_26eQkK(dwu=-0RB5j{SpL0wWi}d z&j|o{ZDSaQt2mcZHt*ip0v%iu^-L4K?`!QvQCL6t^7(F@yT9I@PGAo19v=p_*QaOg zTDtWqSR@0cXeSXE+v~A?Zr6ft@2vz}RQbo-3<552bGzHF2F@99mI1~XC>=^gS(Z>r zSyix|0o#c%65yPJ5P~#K2XjIQaL$osnN|hkD8b>lZ*28grw`N=xyd;Iq-hF52pD67 zxj0I2ae0L}O0?sX2vABp&V>-2XH7!4J%{5SKi^+X2KwVw?t;EElk-Ug+R=}ppKeq7 zClN5!!y+{>H~mv;pwpDrmr#BFZBYv$26|xYhT1wHrPMd2HI!1|oI?m<)Pbt124ZAW zyva(KWf>S_+Tt@Qq4SQ&l@l8_?+O1_Q#$rTa>f$)1$()t`a}hj6951J07*qoM6N<$ Ef=yG3zyJUM literal 0 HcmV?d00001 diff --git a/resources/Head_Boy.png b/resources/Head_Boy.png new file mode 100644 index 0000000000000000000000000000000000000000..3a741fc75533529f00ccbae6a5b68f36e3cf54ce GIT binary patch literal 770 zcmV+d1O5DoP)EX>4Tx04R}tkv&MmKpe$iQ?(*h5j%)DWT@g`K~%(1t5Adrp;l;i>s5Oi_^|?Psx08P93mETO{_FA%bObU6meM9bjlY} z9;=+UIBUf+tKXBqFqqL-mbp%I2r(>T2@*soD5HQPY(!|)NwJWi{b&pSpzD{&rI4!t zMveuPph0&1;D7MDTPr&`;Uxv5K>Lg1d<+ADU7%KRobO}Dsht4+XW&Y2_)Aq_=9BbF zLkk}Pz1zUWbwgA3fXf|V;K`6p*_He>g=`jhKcjC-1O2x^*P7Q`eIKU}K$5zO-v9@P zz(|g=*IT^1v$?l_&(!<-0Xd3tkaKeFhX4Qo24YJ`L;$D&r~s(8a!4uw000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jd0@5i1Q_wnhd30090;L_t(I%bim(3c^4ToLo{x zQ>F}Q{6Gr9%3easAi>%P*om!R>jSj4@EcZwMcxq7i-lSVYoR&!&buHE1TLA~natju zvz{-|pzC*Nx?W&2Tj6@YIbg7H0sx9MLy=|#0Cav4c@R?Xa;H29DGx%0E7FXLH2Vku zAOIM-KDNshMy@ZN%esPvBQAi);V26mBvH&$Nba=TLy5pq)|GTMaXLKiUe?u@s|iUI z%O0T<-vw#6{bKEX>4Tx04R}tkv&MmKpe$iQ)@*kB6bjQ$WWauh>AFB6^c+H)C#RSm|WUgXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;i>s5Oi`}MJK}OLmVNQS;nj+rQkch?h)YYU7Tn6pZjz4sCkP40g-ry8KzCVPCT_~ z8=UuvqijP~iO-2gO}ZfQBi9v=-#8at7IZL8>U7)NgPu(o$`gO z$13M7&RV(3n)l={jO6v@C9cyPLJ|vDgai=^swklhoBAq2C&faV_7gt-LDw&lOCeVY zj2!c*K!fc1!T;cQw^m_d+)IiifY6KMd<+BOU7%5OobO}DX`BGTXW&Y2`73o``jhlp zON$)=z1zUWbxTwBfXf|V;K`6p*_DDcg+c*%KcjET0sXf?_o~-hb04PdH)!y5`XPW)}0570&jE0y-X#fBK24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jd0@5jG8^+A10V00B8kL_t(I%cYV(O9Md=#eeq) zLe9HNA~rFNUm%5`jeR(;400q@z~)j}MbZjsQ<=uJDXjGq*hH}KGl;b!7*h#rk<7BY zX9{&-xx1P7-pssPZ+B;pL9Yuy9Brwy@sR8D5sT%ghY_1<{-D<-Pc!l~Qvm91RcI$Q zwg0|U?WCsKNzJO|X{PctTM4X%6hJG8m|l)(1(ELj^zzJxngR&r>+AkO0|AaESLO!H zi@vTs&Tcs9oMH(`xI{NUFZxzKG`q{V03V%K3z*Ed^?S44&>Y_c6}NYq984?L5kYrC z-!%&$m{v+F{FKuICi%DFn|u9PK*-{7RE - + + \ No newline at end of file diff --git a/resources/verdana.ttf b/resources/verdana.ttf new file mode 100644 index 0000000000000000000000000000000000000000..017695057efc2d67b4dbe244ebbff8b95c9e1dc5 GIT binary patch literal 153540 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
Pi6hBUrs~M|H|Lhbp3z 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 z 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 d%HF8Uw4EM((K_h6+E Entity::entityTypeLookup = { {"Citizen",EntityType::Citizen}, - {"Player",EntityType::Player}, + {"Significant",EntityType::Significant}, {"House",EntityType::House}, {"Car",EntityType::Car}}; -Entity::Entity(int x, int y, EntityType type, int width, int height) +Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { + shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); + // Sets the origin at the center of the entity + shape.setOrigin(shape.getSize()/2.0f); + // Adjust position for offset origin + shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); + shape.setTexture(texture); + currentState = State::Idle; + nextState = State::Idle; + target = sf::Vector2i(shape.getPosition()); + nextTarget = target; } -Entity::Entity(const pugi::xml_node& entityNode) -{ - -} - -void Entity::render(sf::RenderWindow& renderWindow) const -{ - -} +Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) + : Entity(entityNode.attribute("x").as_int(), + entityNode.attribute("y").as_int(), + entityTypeLookup.at(entityNode.attribute("type").as_string()), + texture, + entityNode.attribute("w").as_int(1), + entityNode.attribute("h").as_int(1)) {} void Entity::move() { - + // FIXME : Testing purposes + shape.setRotation(shape.getRotation()+90); } void Entity::update() diff --git a/src/Entity.h b/src/Entity.h index be52d46..32ddfb9 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -14,7 +14,7 @@ enum class EntityType { Citizen, - Player, + Significant, House, Car, }; @@ -40,10 +40,9 @@ class Entity { public: /// x,y, width and height are in grid coordinates - Entity(int x, int y, EntityType type, int width = 1, int height = 1); - Entity(const pugi::xml_node& entityNode); + Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); + explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); - void render(sf::RenderWindow& renderWindow) const; void move(); void update(); @@ -54,6 +53,8 @@ public: private: static const std::map entityTypeLookup; + EntityType type; + // As it contains position, size and orientation, we do not need anything more sf::RectangleShape shape; diff --git a/src/Game.cpp b/src/Game.cpp index 6983d39..0262418 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -7,22 +7,22 @@ #include "Game.h" -Game::Game(const std::vector& levels, const std::vector& textures) +Game::Game(std::vector& levels, std::vector& textures) : levelFiles(std::move(levels)), + textureFiles(std::move(textures)) { - - loadTextures(); } void Game::loadLevel(int levelId) { pugi::xml_document document; - pugi::xml_parse_result result = document.load_file(levelFiles.at(levelId).c_str()); + pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelId)).c_str()); if(!result) { - std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; - exit(-1); +// std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; +// exit(-1); + pro_maat::errorWindow(result.description()); } currentLevel = std::make_unique(document,textures); @@ -34,11 +34,37 @@ void Game::loadTextures() for(const std::string& filePath : textureFiles) { textures.emplace_back(std::make_unique()); - textures.back()->loadFromFile(filePath); + textures.back()->loadFromFile(pro_maat::textureFolder+filePath); } } void Game::runGame() { + sf::RenderWindow window(sf::VideoMode(1280,1024),"Project Maat"); + while (window.isOpen()) + { + sf::Event event; + while (window.pollEvent(event)) + { + if (event.type == sf::Event::Closed) + { + window.close(); + } + // FIXME : For testing purposes + if (event.type == sf::Event::KeyPressed) + { + currentLevel->runStep(); + } + } + window.clear(sf::Color::White); + // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? + currentLevel->render(window); + window.display(); + } +} + +Game::operator bool() const +{ + return (currentLevel ? true : false); } diff --git a/src/Game.h b/src/Game.h index da9f7b2..aa149d7 100644 --- a/src/Game.h +++ b/src/Game.h @@ -11,14 +11,14 @@ #include "Level.h" #include "Entity.h" - +#include "Utils.h" // Used for convenience using TextureStore = std::vector>; class Game { public: - Game(const std::vector& levels, const std::vector& textures); + Game(std::vector& levels, std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles /// Closes the program if there is a fatal error (Missing file, bad file...) @@ -29,6 +29,8 @@ public: // This should not be called before a level has been loaded void runGame(); + explicit operator bool() const; + private: /// Store the paths to level files const std::vector levelFiles; diff --git a/src/Level.cpp b/src/Level.cpp index 1c0903b..20fbfb3 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,17 +14,24 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(child); + entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); } } } void Level::render(sf::RenderWindow& renderWindow) const { - + for(const Entity& entity : entities) + { + renderWindow.draw(entity.getShape()); + } } -void Level::runStep() const +void Level::runStep() { - + for(Entity& entity: entities) + { + // FIXME : For testing purposes + entity.move(); + } } diff --git a/src/Level.h b/src/Level.h index 63379f9..52d9f07 100644 --- a/src/Level.h +++ b/src/Level.h @@ -20,7 +20,7 @@ public: Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; - void runStep() const; + void runStep(); private: const sf::Vector2i size; diff --git a/src/Utils.cpp b/src/Utils.cpp new file mode 100644 index 0000000..4c75c2f --- /dev/null +++ b/src/Utils.cpp @@ -0,0 +1,39 @@ +// +// Created by trotfunky on 07/06/19. +// + +#include "Utils.h" + +namespace pro_maat +{ + void errorWindow(const std::string& error) + { + sf::Font font; + if(!font.loadFromFile(std::string(pro_maat::fontFolder)+"verdana.ttf")) + { + std::cerr << "Error while loading font for error :" << std::endl; + std::cerr << error << std::endl; + } + + sf::Text errorMessage(error,font); + errorMessage.setFillColor(sf::Color::Red); + sf::Rect errorArea = errorMessage.getGlobalBounds(); + errorMessage.setPosition(errorArea.width*(1.5/2-0.5),errorArea.height*(0.5)); + sf::RenderWindow window(sf::VideoMode(errorArea.width*1.5,errorArea.height*2),"ERROR"); + while (window.isOpen()) + { + sf::Event event; + while(window.pollEvent(event)) + { + if (event.type == sf::Event::Closed || event.type == sf::Event::KeyPressed || event.type == sf::Event::MouseButtonPressed) + { + window.close(); + exit(-1); + } + } + window.clear(sf::Color::White); + window.draw(errorMessage); + window.display(); + } + } +} \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index 8fa40a5..4b837d3 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -6,12 +6,19 @@ #define PROJECT_MAAT_UTILS_H #include - +#include +#include +#include namespace pro_maat { -static constexpr uint8_t pixelsPerUnit = 20; +static constexpr uint8_t pixelsPerUnit = 25; +static constexpr char levelFolder[] = "resources/"; +static constexpr char textureFolder[] = "resources/"; +static constexpr char fontFolder[] = "resources/"; + +void errorWindow(const std::string& error); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0924c9a..bdde3da 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,13 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) add_executable(gTests gTests.cpp gTests.cpp) +target_include_directories(gTests PRIVATE ${PROJECT_SOURCE_DIR}/../src) + target_link_libraries(gTests engine gtest - pthread) \ No newline at end of file + pthread + sfml-window + sfml-graphics + sfml-system + pugixml) \ No newline at end of file diff --git a/tests/gTests.cpp b/tests/gTests.cpp index 0eccc74..6997d4a 100644 --- a/tests/gTests.cpp +++ b/tests/gTests.cpp @@ -3,6 +3,23 @@ // #include +#include + +#include "Game.h" + +TEST(Setup,LevelSetup) +{ + // TODO : Think about parsing from file ? Currently cumbersome and error-prone + std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; + std::vector levels = {"test_level.xml"}; + + Game game(levels,textures); + ASSERT_FALSE(game); + game.loadLevel(0); + ASSERT_TRUE(game); + game.runGame(); +} + int main(int argc, char** argv) { From 3666b9e7e9d7f9e1c4b3de746d7a26ec6b8db199 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Fri, 7 Jun 2019 22:20:34 +0200 Subject: [PATCH 10/54] Entities are now constructable Added utility function to display error window Added textures Added font Added a way to choose resources location --- README.md | 6 ++--- resources/Building.png | Bin 0 -> 930 bytes resources/Head_Boy.png | Bin 0 -> 770 bytes resources/Head_Significant_Boy.png | Bin 0 -> 829 bytes resources/test_level.xml | 3 ++- resources/verdana.ttf | Bin 0 -> 153540 bytes src/CMakeLists.txt | 5 ++-- src/Entity.cpp | 33 +++++++++++++++--------- src/Entity.h | 9 ++++--- src/Game.cpp | 40 ++++++++++++++++++++++++----- src/Game.h | 6 +++-- src/Level.cpp | 15 ++++++++--- src/Level.h | 2 +- src/Utils.cpp | 39 ++++++++++++++++++++++++++++ src/Utils.h | 11 ++++++-- tests/CMakeLists.txt | 8 +++++- tests/gTests.cpp | 17 ++++++++++++ 17 files changed, 155 insertions(+), 39 deletions(-) create mode 100644 resources/Building.png create mode 100644 resources/Head_Boy.png create mode 100644 resources/Head_Significant_Boy.png create mode 100644 resources/verdana.ttf create mode 100644 src/Utils.cpp diff --git a/README.md b/README.md index 576b9e4..5830649 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Level - [x] Structure - - [ ] Parsing from XML + - [x] Parsing from XML - [ ] A* - [ ] Entities - [x] Structure - - [ ] Parsing from XML + - [x] Parsing from XML - [ ] Moving - [ ] Decorators (Rules) - [ ] Rules @@ -25,7 +25,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - [ ] Graphics - - [ ] Scene rendering + - [x] Scene rendering - [ ] UI - [ ] Menu ? - [ ] Gameloop diff --git a/resources/Building.png b/resources/Building.png new file mode 100644 index 0000000000000000000000000000000000000000..32fc6fa391363f2f958a2bec75de6903fa912c87 GIT binary patch literal 930 zcmV;T16}-yP)EX>4Tx04R}tkv&MmKpe$iTeTt)5j%)DWT;LSL`5963Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4RLxH>7iNQwVT3N2zhIPS;0dyl(!K(JnBn$ z;Ji;9VMSRbJ|`YC>4L5=1DdqJ%PR#Aww?v5=zuxQ~Cx^-JVZ$W;O( z#{w$QAiI9>Klt6Pm7kpOl7u+W`QkVqBS3f;Xw)3%``B?BCqU>KxYAqxN*$Q_B)!(s zqDMgAHgIv>(v&^mat9cEGGtSBr4Y?vJ`cQ~(Kls*fm@(w&FihXkJASrO?wxXS8*o!@00006VoOIv0H^?{0I0TdNGbpT010qNS#tmY zE+YT{E+YYWr9XB6000McNliru;|2#2Brge08!Z3;02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00DYQL_t(o!|hj1PJ}QN{@QQ?6BlkxoVd{F1vmq%w&4=2 z;RG}5xkLk9aRx4+(S^~(tqT*60IneXv}FhdOq_26eQkK(dwu=-0RB5j{SpL0wWi}d z&j|o{ZDSaQt2mcZHt*ip0v%iu^-L4K?`!QvQCL6t^7(F@yT9I@PGAo19v=p_*QaOg zTDtWqSR@0cXeSXE+v~A?Zr6ft@2vz}RQbo-3<552bGzHF2F@99mI1~XC>=^gS(Z>r zSyix|0o#c%65yPJ5P~#K2XjIQaL$osnN|hkD8b>lZ*28grw`N=xyd;Iq-hF52pD67 zxj0I2ae0L}O0?sX2vABp&V>-2XH7!4J%{5SKi^+X2KwVw?t;EElk-Ug+R=}ppKeq7 zClN5!!y+{>H~mv;pwpDrmr#BFZBYv$26|xYhT1wHrPMd2HI!1|oI?m<)Pbt124ZAW zyva(KWf>S_+Tt@Qq4SQ&l@l8_?+O1_Q#$rTa>f$)1$()t`a}hj6951J07*qoM6N<$ Ef=yG3zyJUM literal 0 HcmV?d00001 diff --git a/resources/Head_Boy.png b/resources/Head_Boy.png new file mode 100644 index 0000000000000000000000000000000000000000..3a741fc75533529f00ccbae6a5b68f36e3cf54ce GIT binary patch literal 770 zcmV+d1O5DoP)EX>4Tx04R}tkv&MmKpe$iQ?(*h5j%)DWT@g`K~%(1t5Adrp;l;i>s5Oi_^|?Psx08P93mETO{_FA%bObU6meM9bjlY} z9;=+UIBUf+tKXBqFqqL-mbp%I2r(>T2@*soD5HQPY(!|)NwJWi{b&pSpzD{&rI4!t zMveuPph0&1;D7MDTPr&`;Uxv5K>Lg1d<+ADU7%KRobO}Dsht4+XW&Y2_)Aq_=9BbF zLkk}Pz1zUWbwgA3fXf|V;K`6p*_He>g=`jhKcjC-1O2x^*P7Q`eIKU}K$5zO-v9@P zz(|g=*IT^1v$?l_&(!<-0Xd3tkaKeFhX4Qo24YJ`L;$D&r~s(8a!4uw000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jd0@5i1Q_wnhd30090;L_t(I%bim(3c^4ToLo{x zQ>F}Q{6Gr9%3easAi>%P*om!R>jSj4@EcZwMcxq7i-lSVYoR&!&buHE1TLA~natju zvz{-|pzC*Nx?W&2Tj6@YIbg7H0sx9MLy=|#0Cav4c@R?Xa;H29DGx%0E7FXLH2Vku zAOIM-KDNshMy@ZN%esPvBQAi);V26mBvH&$Nba=TLy5pq)|GTMaXLKiUe?u@s|iUI z%O0T<-vw#6{bKEX>4Tx04R}tkv&MmKpe$iQ)@*kB6bjQ$WWauh>AFB6^c+H)C#RSm|WUgXws0R zxHt-~1qVMCs}3&Cx;nTDg5U>;i>s5Oi`}MJK}OLmVNQS;nj+rQkch?h)YYU7Tn6pZjz4sCkP40g-ry8KzCVPCT_~ z8=UuvqijP~iO-2gO}ZfQBi9v=-#8at7IZL8>U7)NgPu(o$`gO z$13M7&RV(3n)l={jO6v@C9cyPLJ|vDgai=^swklhoBAq2C&faV_7gt-LDw&lOCeVY zj2!c*K!fc1!T;cQw^m_d+)IiifY6KMd<+BOU7%5OobO}DX`BGTXW&Y2`73o``jhlp zON$)=z1zUWbxTwBfXf|V;K`6p*_DDcg+c*%KcjET0sXf?_o~-hb04PdH)!y5`XPW)}0570&jE0y-X#fBK24YJ`L;(K){{a7>y{D4^000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2jd0@5jG8^+A10V00B8kL_t(I%cYV(O9Md=#eeq) zLe9HNA~rFNUm%5`jeR(;400q@z~)j}MbZjsQ<=uJDXjGq*hH}KGl;b!7*h#rk<7BY zX9{&-xx1P7-pssPZ+B;pL9Yuy9Brwy@sR8D5sT%ghY_1<{-D<-Pc!l~Qvm91RcI$Q zwg0|U?WCsKNzJO|X{PctTM4X%6hJG8m|l)(1(ELj^zzJxngR&r>+AkO0|AaESLO!H zi@vTs&Tcs9oMH(`xI{NUFZxzKG`q{V03V%K3z*Ed^?S44&>Y_c6}NYq984?L5kYrC z-!%&$m{v+F{FKuICi%DFn|u9PK*-{7RE - + + \ No newline at end of file diff --git a/resources/verdana.ttf b/resources/verdana.ttf new file mode 100644 index 0000000000000000000000000000000000000000..017695057efc2d67b4dbe244ebbff8b95c9e1dc5 GIT binary patch literal 153540 zcmeFacbpVO-alT|lT(M8o*cR-?QC9HG9s)56DlZ(AXz{V1Xe*26R4;N=9~e~h-s0a zD26-JnNQE`$zj$rr!&I*-k<6jcHw+}&-WKzuZKULs_jpws!vsYa#i>CFwPi@0NB}- zp`#Ai@4RbHzm`b@+8IlZ-f!rzeOZm|N+z{FfKr+LMvfTe>LU-p`I|WJyWgn82Y*=j zw1!DNRGeRa(CAV7_gsJVCyc4*GiJMD#Hg0m1@E5r7-RfX+@CUL=)q$betYU%#`FSX zj&0NCPHhieY0hVC{uhk7ew}vWLUT;^=qARNZa|&yW=vn$ZR>N#=Yaoa#@x>y-9B^f z$-}-v-9^CXcy#8}1??=#Jm}Buz^~3ccJa~e55HW?*m=)0zWC=^)90S_qTP6(v4owm z!#|xhW9sxbR?K$*_pvD7dloKexPAVDg`z{?FIH@bYiBY`-jUyE}!l zz)M$=P|xk#aTwa@``az$Y~Xf*$+{m9??MF%k!##%#DN*;h(i zaL4Vq*3knfi`L$@n*H78a5Ks0w%Z(byJTO(oaHuVjt64mDm!?TX)@&U$Ii@-aqL;Q zkKbc5zKZVIr#Ub>+~sbD4j`covDx~v=j`j*ZO(7l6^;&ej<<=ayYcXV(s_M5Stk8L!zo3WjP?Rsp}u+2gn?_oO_ zI0(-#*uJoT%`S6oVwX63vzRl+9&tR&W;$=iei62w>=EZ_IA6~mu}@;B*pFlN&IVkM zvqxN4;NDZ%USKmF?^=83VBEWx&2=nfbt4jx zI&j@_x+uSv%GrKJ{YTkk+byWKo~;4jGOpKIljBI1aP(ps`%{80SKG(&>p+iZ(Ebf# z+!#BJo5oxn6ZK#8iTbtMCi;l}Q6H-t`Zr73QvMa&kJ!H2**EH6*Nytsb?ac?f$tm8 zpDoy~#da08cd?!8*ud6;Hz!xN3qhxku=PQ|e|0~`?4bP&_epFW&fl(XsMpi+B_-{?G^<($v6 zx17)O8uxT|f0a(eZ%>%bbg#s?I@mSP$ZODlAGT8mX+6|ECbKq z0_|%YuYf;qV#C-;hEb;%>i3fSLgtAV#D~hBj)m+^V#ihXr%)euZX{=w4LrcOc>-G+ z+kV)_I65Q)d(f5NhwTt-k6}wX@+>C(4Q)YQNoIs>LOw_~Apa@He0GG8SsKH8kZZ^$ z#`T5s8}7FMl}ACxkFjm@EM)7kJ&kQ0#xsNTg=CTXx)V2KOUO)hPx1}9r?HE1LcVtH zp?fYbJ5uz4bdY4Mx`*CjjEhPC?9CV}?H8h7&_j~9oqN(r@RszEbfU7Ky|X{iPoX2U z-^?0>tV1TN`zkGV?$Hj>+jS$GDD;u!<{mcQ@gny7Gq3AVk_G7TYS^&9vKzgRvWMLY z#{UXi?Yy@9k@N~X!TuFH0XFRt+eoI^Ut^a_ud}mg!|^)o+pFUzJ=}#>)v@okuhRKH z_OMlg7VB9*?CZdX6QPg)CVqf+O_hDBvR_R$jqHlBYp^Y3Ux=}vVl_f`2My|e5n?8ooy zjEYRI!~QmG8*qQMCI3ul{+vDZWK`YB9!WWPY z5V8lmUG)J(C+cg}{yQFE=LuaTy2B4RPGYmj{!`z`?z>)ME6Lsvy+waXH%N9Yo4&?z zD_iAw2s9`AJj1%~xRxyvx=g(2#UjFiu zA^kzy_BVkCHWEBpO*AHbamQKQU5m0PBl72EYB{O{Ln4P(C}*8P1WW54adelFw~_PyL;?S-v}jVC)VHrRcs8OP(X zP26p(tLoT)?#tgh#+GOQ=XFab|4*;)w9~uUs?O`^_sH^fo#&uW7yC{!NpfG=uXY{> zT8u=@5@#vUw2owt_+PbEJNG1SMEi<8sqRJG1)h_<5zn!=Y-0s4$*PbSilf#e)P_HY zA8xaMRi>En7!eaehAGy9Ev)rE0GV~M0_^>@XuF1F+k?po`0s_h>+p}ikiLM=cm5%B z|M%kmQsDn31*)?82m3*e)5}-=!F3_qReSQ^?f=79SL~1Tzu8xH?Z4c^-@$g>0)4u} zyBTrjo#oFQcS@&QTlKj787ACCG1sCv;9e#R-K)l?6sKWM1KV)5^clN={0`ZEn!$3e z>-BZ5oY!fw7;oh=?~>~4TU%SX;^QU7kell?-0iLfpV`UpL^>J)i0YU(CYJ*3{>)qq!QGT>O7R{kmNeFh-MW<;pjksQ=1ys0vc~= z@o658PViRE=fhv1dlWrIh1OO%z?E1`(@?Wc_8C6I(2xQ=Aj`7eIR{h4i0fpCby(DXf-{bV^-8EI$ zJ-TY7xuRYj;BQKR2d7@Cyb12fv1sA)tv_~8UJY93fQ_aNaKyqh>{!oVK zRZ}zAM^d4KJ(hjrOx$CB_OrXp+{|6xf%PdbpjSX2^WoUf{D1)#C~s#nlK~Z`0IC9N zOv7=I1fj?JXpX(*dgU_*a$WPa3nhv@KAOb;9-DYvr%jm z;Al1)@NjlG;23rU;1O(W`71V7z;SFGj*nzV0*+@B04K1Cy9n@Nb}`^3>=M9B*=2y2 z0lvpBXO{zB!L9(jl3fXS6}uYnYIaR|8@oopYuR-;zD~gF+4VTSf!$dCC%aL=Rctkm zR|~j?t-`&#b>`&}wz?%iUh24tdTLrw0-Bx~=-Ola+yhFgX>`oltDd1h~uJS+F z-RvH~d)U2z_p%Pa4guG(b>(;1ee6C!tndMDU>gB9vQ2=S0N-Z!v-<%bV4DFqvj+hm zWDfy81o#%)!nOcD%pL}OggpxQD0>X>G4|*3o9xd5{)PPo$B(lo0H0t_0zL`&278J< z1^6_38t|{|uYk|6X91sO&y`bqz*pI8Wo!bz&fdWB8v?$`-o)`+?CtX3+1uWx9mH>?*Lz9-?Q%le_%fV{>c6f_;2Mju|X2vt8~{JT9d_Ejf*C;z}RJYnc8(k44fu0(mEJja9)EVpv2D~n}&FQl{ z&^j=Pg4AhI*=o#zJ0jabE~m}HYIWPfNmqOx7xlpFaXalk4`rMK3p(keQDD?Aug7Zx z(Q(z`!tlTXL4VMPhC!ui7}U5$Nsot4JVYp>i61y!7@!LmFmfCc2ML7-d!OIqMK_4z zK<6V2bdPGHJnDE|9t;_mfC{4GC9F8{`00WJPu3`5SWeoDd!2wt`$xI6gmpw@q87Yp z2jinoVsB;Y84b+k^1A(A4Bt!Ksbvf)k1y{#^!+vdR%rtMkvmKh$fCS z3J_c9B<-P=ZVV6C1pT2MGz=<5w5Qh52Xq8FNj0HMIHmCtNw9&-7`ZsMP+cxdT27A02=N+jBIrvnRU_vh%DulwJ2O<_cKDCn+XYIc#j!;k3`j7$q_bWaN$3IHCb~Po0CCeN3(Xap2%SVpl1;kTB~{0~`@TyNaY$q$!{$d* z!sgJx$R5EGiO!IraQi(9kq34K9O%@9J?CimVgB*?&cQRcVjV+jaR6C^T)UV*?1xS| zz;?w82MOjwCrPTUL9?hX>WJ>aPLa-e-B3A-{zxaqImw9IXAOybnTn9l z?oz5cNyr2ORITQ!PQtO$m@TXVFR)e%$&fPiAOLA}&|0N+?(v|LGK~VG#?1g7f&*Zl z&r5$e_F%1++zRO*+OFy(4*h;Qf$;(n;r0{-{1R&Db;}s32P6Ut4BHPH%Ze}H@hH?q zp_ABCQ*=riT=Ao%h*g~wcb$Hy~^3~&ZOS`sbdm6eH3 zz$q9V@TxNWgG@$ckJL#YNZy(Kpr4fm>p^QPS6T07m^q3>Iz)jVbkgf)fmi@KiRp_+ z^N~*aC>ZTbV)ErCB|$AOCL?6nD>~_waS?JW@PTfqM}AVK+7#oGTO-1fj*u8wSc$;U zBH@6oD>PvdGUG=W1*JnqBuCAWo%hLbX*h=%`4q3$r^p`IbUQ*QkC!4UlylhKF|;7! zQWX79okTB)&%jBZ*o~(KIDr6K{Kh0^Xa6AC~L%F zqWD7vOLW9Qtm?2RmX}0?O;U`B7-1E7ftAiELkB&$B}3Sp6`dqXdeKQm=%g}lC=_I;^Qm}mp4bV6?96~2?jDQ29hEA$vKZq*O8(1UM_Y;NDWpc|ho^yD; z3Mz=Iq$ubXCDK{Tk9x35O}9aJ2MiioLA0yUsNB};kqp%E{((+bN4fi6;O_#2P6DYC zppv3*f@9Vh^@TM4Xci4zLOUQ8 zcGzkr$7M!KJAQA_PvNE?ItlJolbC#g79{CHpnaZz51a&teLfWsqUa};BksdJIX!l0 zDqJfG9ki3go&>-PF|e8^+6tYlHi12PDI|CX2%3WI2TqbXu-q>LGtTj##;^E%epT@T zFBUE^Qmjl+RcJ+=Mk_oW>Y_ck(Q1OkqZe@R=%rT#UU-N^OeJ6FLw$#!A%;Yv2&XDS z0SK!P6Bm?%;#wDJU5GocW-$UMM7b1=C5>1VsUvP*x5K zdRKG<0kDsxk}7sdRq@)p(h_uj#3QUmD03n1h2%YrWRcZ#29CVBb3zX0juRkCNEeb+@kgVPi1o1_JPD12V z$z9Cz+z-S5#0Mvl4!FIu-Vy%Z-+tX522dzCZz{=L3AjBeDg98<5HAf_{mB#3G zVY=>NYD%r>q%PBBC4f-PDkq@ON!TYS0|_)dg;xPbWfb zNy1H4v8b9ND@1P94aG+FF4!UA1-QXbkQRpO&a2rv!-Kh$;dfjSR z=%$ER8B^f3Nkgb&mqeufquiy4I3!X*!aNu~%A;?jj}=ma+9a5QE7M2 z(n^|lb!HgTN*1gqYKv@{8rX5>3tNPsDuiiwY33CTgUN#_c}Q?IP~z37Br0ft~8Acul}4L+I7b$}M1P!3v=fg7b2 zB5Q3#mb+kw&Vj-3^&kvhZGv{-)iewT=0#*b9&13%5j=t{K2l(mrA#`B5}2mb8I|?P z=pcqfFbYw1dLx!j3WcvkCst*GVnQkwib&uqvqi#7SgXZCTEK@Mgx~;NA&oN5p+fWm z9gRW;0aR6kSwbH$mky|?NpIQ(0vb+%3Z=kKKPfWkjSD_ip_-r>MhudK!(bp;D(FoJ zm7(S!CZWKaXlO_QU3D2Uk5wZL7)a!ipy<#^KVG_vhz z74K_P#V)C8d3N6ut-EF-71=u)J$18E9!!OZ6F!R4{6RU2;ME_Zm-+Tgodo4NGtI)R zEUtmpR<05QuXaT(T6u(tgj6^oB`jzLNhc8&L{$Wz0Todv*j-I7ED)$Z4Sa-_kU-Nk z8*euPha&5MkW|uGG=t^AfYar7hA7HJSZMiCcyR~-DT7cmVmK1%ByCY`GkwJ1Tq51k08zz~vUMGpmnq}0$~C=GfXz;iO6Nuw4rf?`M%a#s@R9E24s z8E6cH@%h5xZ~#oLkS5@wx{50LCv*~_05TK+GLMy3znjiUf_#dGJy!o9-mzdnar&b4 zK#$aokck1&yPuVeXx_?b0qZg1GMHpxtrpUQ0YB>NZ~!hnNEzqoIyxDqy$p@fw4f71 z2M6E+HPl3R=mk{F^w2I!!2?*pM8EUEa3(pz&Uh=WF(}-beJR^W0NcGS{7kXfmI!}_FzCI z3uc4XR;Iy;Oe?G+VL5@u2%W?#7YpS=c+TsF_luEE%A}L@8geDM-Q>K2U?}X9f&~J_ zA5;-a0f(Z50Wn1(or7pVLu8jb;DV--PQuwhJAH_!p-nQB0YX4Y=pPMszt;(McK4R3W4?bTUVy7R$q^3xT8O9hKyF zAzVZtEkbUglaWXS(HqPQWptYAs+uqZh*ZhX&{|7C!2%!dW66<7DU?oyN5POF;=Tkz zK9@g64@-T(AW(@B3Hn25uvmksC}kg%I^f6p1z{z;gtf|`a0m`k354MQ+~E*q89FM< z=wyWU3J3tgxKJJ@1R&mYu4T}%Ps%0VGtGztcS zWwKulgozUfkcq;i)v5xG)nz$K?15&7zzeiP1|2#X#4d!ug<@NT{jiQMH_oXgZzyg> zK9)YfnF^h(QoXXbi1D9LP^t?cGQkjd!y&;8bQNZjOdCcG&Ot;l6j@i}VVI;aIr=?P zCyBkC84RdoVzywvfK~GpzzVBH1F)6G7{DVRkWnw_q>~8M;~FM}vIgQ*=t(6q;pKM5IX5tUc|YEckaUo;-X<$$9p&kp@eYz&w%HEK;Hjyrn=6DG6xkAR

Pi6hBUrs~M|H|Lhbp3z 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 z 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 d%HF8Uw4EM((K_h6+E Entity::entityTypeLookup = { {"Citizen",EntityType::Citizen}, - {"Player",EntityType::Player}, + {"Significant",EntityType::Significant}, {"House",EntityType::House}, {"Car",EntityType::Car}}; -Entity::Entity(int x, int y, EntityType type, int width, int height) +Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { + shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); + // Sets the origin at the center of the entity + shape.setOrigin(shape.getSize()/2.0f); + // Adjust position for offset origin + shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); + shape.setTexture(texture); + currentState = State::Idle; + nextState = State::Idle; + target = sf::Vector2i(shape.getPosition()); + nextTarget = target; } -Entity::Entity(const pugi::xml_node& entityNode) -{ - -} - -void Entity::render(sf::RenderWindow& renderWindow) const -{ - -} +Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) + : Entity(entityNode.attribute("x").as_int(), + entityNode.attribute("y").as_int(), + entityTypeLookup.at(entityNode.attribute("type").as_string()), + texture, + entityNode.attribute("w").as_int(1), + entityNode.attribute("h").as_int(1)) {} void Entity::move() { - + // FIXME : Testing purposes + shape.setRotation(shape.getRotation()+90); } void Entity::update() diff --git a/src/Entity.h b/src/Entity.h index be52d46..32ddfb9 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -14,7 +14,7 @@ enum class EntityType { Citizen, - Player, + Significant, House, Car, }; @@ -40,10 +40,9 @@ class Entity { public: /// x,y, width and height are in grid coordinates - Entity(int x, int y, EntityType type, int width = 1, int height = 1); - Entity(const pugi::xml_node& entityNode); + Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); + explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); - void render(sf::RenderWindow& renderWindow) const; void move(); void update(); @@ -54,6 +53,8 @@ public: private: static const std::map entityTypeLookup; + EntityType type; + // As it contains position, size and orientation, we do not need anything more sf::RectangleShape shape; diff --git a/src/Game.cpp b/src/Game.cpp index 6983d39..0262418 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -7,22 +7,22 @@ #include "Game.h" -Game::Game(const std::vector& levels, const std::vector& textures) +Game::Game(std::vector& levels, std::vector& textures) : levelFiles(std::move(levels)), + textureFiles(std::move(textures)) { - - loadTextures(); } void Game::loadLevel(int levelId) { pugi::xml_document document; - pugi::xml_parse_result result = document.load_file(levelFiles.at(levelId).c_str()); + pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelId)).c_str()); if(!result) { - std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; - exit(-1); +// std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; +// exit(-1); + pro_maat::errorWindow(result.description()); } currentLevel = std::make_unique(document,textures); @@ -34,11 +34,37 @@ void Game::loadTextures() for(const std::string& filePath : textureFiles) { textures.emplace_back(std::make_unique()); - textures.back()->loadFromFile(filePath); + textures.back()->loadFromFile(pro_maat::textureFolder+filePath); } } void Game::runGame() { + sf::RenderWindow window(sf::VideoMode(1280,1024),"Project Maat"); + while (window.isOpen()) + { + sf::Event event; + while (window.pollEvent(event)) + { + if (event.type == sf::Event::Closed) + { + window.close(); + } + // FIXME : For testing purposes + if (event.type == sf::Event::KeyPressed) + { + currentLevel->runStep(); + } + } + window.clear(sf::Color::White); + // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? + currentLevel->render(window); + window.display(); + } +} + +Game::operator bool() const +{ + return (currentLevel ? true : false); } diff --git a/src/Game.h b/src/Game.h index da9f7b2..aa149d7 100644 --- a/src/Game.h +++ b/src/Game.h @@ -11,14 +11,14 @@ #include "Level.h" #include "Entity.h" - +#include "Utils.h" // Used for convenience using TextureStore = std::vector>; class Game { public: - Game(const std::vector& levels, const std::vector& textures); + Game(std::vector& levels, std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles /// Closes the program if there is a fatal error (Missing file, bad file...) @@ -29,6 +29,8 @@ public: // This should not be called before a level has been loaded void runGame(); + explicit operator bool() const; + private: /// Store the paths to level files const std::vector levelFiles; diff --git a/src/Level.cpp b/src/Level.cpp index 1c0903b..20fbfb3 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,17 +14,24 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(child); + entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); } } } void Level::render(sf::RenderWindow& renderWindow) const { - + for(const Entity& entity : entities) + { + renderWindow.draw(entity.getShape()); + } } -void Level::runStep() const +void Level::runStep() { - + for(Entity& entity: entities) + { + // FIXME : For testing purposes + entity.move(); + } } diff --git a/src/Level.h b/src/Level.h index 63379f9..52d9f07 100644 --- a/src/Level.h +++ b/src/Level.h @@ -20,7 +20,7 @@ public: Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; - void runStep() const; + void runStep(); private: const sf::Vector2i size; diff --git a/src/Utils.cpp b/src/Utils.cpp new file mode 100644 index 0000000..4c75c2f --- /dev/null +++ b/src/Utils.cpp @@ -0,0 +1,39 @@ +// +// Created by trotfunky on 07/06/19. +// + +#include "Utils.h" + +namespace pro_maat +{ + void errorWindow(const std::string& error) + { + sf::Font font; + if(!font.loadFromFile(std::string(pro_maat::fontFolder)+"verdana.ttf")) + { + std::cerr << "Error while loading font for error :" << std::endl; + std::cerr << error << std::endl; + } + + sf::Text errorMessage(error,font); + errorMessage.setFillColor(sf::Color::Red); + sf::Rect errorArea = errorMessage.getGlobalBounds(); + errorMessage.setPosition(errorArea.width*(1.5/2-0.5),errorArea.height*(0.5)); + sf::RenderWindow window(sf::VideoMode(errorArea.width*1.5,errorArea.height*2),"ERROR"); + while (window.isOpen()) + { + sf::Event event; + while(window.pollEvent(event)) + { + if (event.type == sf::Event::Closed || event.type == sf::Event::KeyPressed || event.type == sf::Event::MouseButtonPressed) + { + window.close(); + exit(-1); + } + } + window.clear(sf::Color::White); + window.draw(errorMessage); + window.display(); + } + } +} \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index 8fa40a5..4b837d3 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -6,12 +6,19 @@ #define PROJECT_MAAT_UTILS_H #include - +#include +#include +#include namespace pro_maat { -static constexpr uint8_t pixelsPerUnit = 20; +static constexpr uint8_t pixelsPerUnit = 25; +static constexpr char levelFolder[] = "resources/"; +static constexpr char textureFolder[] = "resources/"; +static constexpr char fontFolder[] = "resources/"; + +void errorWindow(const std::string& error); } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0924c9a..bdde3da 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,7 +6,13 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) add_executable(gTests gTests.cpp gTests.cpp) +target_include_directories(gTests PRIVATE ${PROJECT_SOURCE_DIR}/../src) + target_link_libraries(gTests engine gtest - pthread) \ No newline at end of file + pthread + sfml-window + sfml-graphics + sfml-system + pugixml) \ No newline at end of file diff --git a/tests/gTests.cpp b/tests/gTests.cpp index 0eccc74..6997d4a 100644 --- a/tests/gTests.cpp +++ b/tests/gTests.cpp @@ -3,6 +3,23 @@ // #include +#include + +#include "Game.h" + +TEST(Setup,LevelSetup) +{ + // TODO : Think about parsing from file ? Currently cumbersome and error-prone + std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; + std::vector levels = {"test_level.xml"}; + + Game game(levels,textures); + ASSERT_FALSE(game); + game.loadLevel(0); + ASSERT_TRUE(game); + game.runGame(); +} + int main(int argc, char** argv) { From 86490f3ff4d476d04de33b606a9f353fedae846f Mon Sep 17 00:00:00 2001 From: trotFunky Date: Fri, 7 Jun 2019 22:38:55 +0200 Subject: [PATCH 11/54] Implemented move function for entities Does not consider speed (TODO ?) --- src/Entity.cpp | 28 ++++++++++++++++++++++------ src/Entity.h | 10 +++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index a6b14a6..a1eb423 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -33,16 +33,32 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) entityNode.attribute("w").as_int(1), entityNode.attribute("h").as_int(1)) {} -void Entity::move() +void Entity::move(Orientation orientation) { - // FIXME : Testing purposes - shape.setRotation(shape.getRotation()+90); + shape.setRotation(static_cast(orientation)); + + sf::Vector2f movementVector(0,0); + switch (orientation) + { + case Orientation::Nort: + movementVector.y = -pro_maat::pixelsPerUnit; + break; + case Orientation::East: + movementVector.x = pro_maat::pixelsPerUnit; + break; + case Orientation::South: + movementVector.y = pro_maat::pixelsPerUnit; + break; + case Orientation::West: + movementVector.x = -pro_maat::pixelsPerUnit; + break; + } + + shape.setPosition(shape.getPosition()+movementVector); } void Entity::update() -{ - -} +{} const sf::RectangleShape& Entity::getShape() const { diff --git a/src/Entity.h b/src/Entity.h index 32ddfb9..0f333cf 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -29,10 +29,10 @@ enum class State enum class Orientation { - Nort, - East, - South, - West, + Nort = 0, + East = 90, + South = 180, + West = 270, }; @@ -43,7 +43,7 @@ public: Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); - void move(); + void move(Orientation orientation); void update(); const sf::RectangleShape& getShape() const; From dafc442512023a2af1057e9ff5d2899a4befb609 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Fri, 7 Jun 2019 22:38:55 +0200 Subject: [PATCH 12/54] Implemented move function for entities Does not consider speed (TODO ?) --- src/Entity.cpp | 28 ++++++++++++++++++++++------ src/Entity.h | 10 +++++----- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index a6b14a6..a1eb423 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -33,16 +33,32 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) entityNode.attribute("w").as_int(1), entityNode.attribute("h").as_int(1)) {} -void Entity::move() +void Entity::move(Orientation orientation) { - // FIXME : Testing purposes - shape.setRotation(shape.getRotation()+90); + shape.setRotation(static_cast(orientation)); + + sf::Vector2f movementVector(0,0); + switch (orientation) + { + case Orientation::Nort: + movementVector.y = -pro_maat::pixelsPerUnit; + break; + case Orientation::East: + movementVector.x = pro_maat::pixelsPerUnit; + break; + case Orientation::South: + movementVector.y = pro_maat::pixelsPerUnit; + break; + case Orientation::West: + movementVector.x = -pro_maat::pixelsPerUnit; + break; + } + + shape.setPosition(shape.getPosition()+movementVector); } void Entity::update() -{ - -} +{} const sf::RectangleShape& Entity::getShape() const { diff --git a/src/Entity.h b/src/Entity.h index 32ddfb9..0f333cf 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -29,10 +29,10 @@ enum class State enum class Orientation { - Nort, - East, - South, - West, + Nort = 0, + East = 90, + South = 180, + West = 270, }; @@ -43,7 +43,7 @@ public: Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); - void move(); + void move(Orientation orientation); void update(); const sf::RectangleShape& getShape() const; From 220a9a6f4804e4faaf24c61bfbe4904e55a3c04d Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sat, 8 Jun 2019 01:14:52 +0200 Subject: [PATCH 13/54] Level updates are now triggered at timed intervals --- src/Game.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Game.cpp b/src/Game.cpp index 0262418..23b2e81 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -20,8 +20,6 @@ void Game::loadLevel(int levelId) if(!result) { -// std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; -// exit(-1); pro_maat::errorWindow(result.description()); } @@ -42,6 +40,8 @@ void Game::runGame() { sf::RenderWindow window(sf::VideoMode(1280,1024),"Project Maat"); + sf::Clock clock; + while (window.isOpen()) { sf::Event event; @@ -51,10 +51,10 @@ void Game::runGame() { window.close(); } - // FIXME : For testing purposes - if (event.type == sf::Event::KeyPressed) + if (clock.getElapsedTime().asMilliseconds() >= 200) { currentLevel->runStep(); + clock.restart(); } } window.clear(sf::Color::White); From 81364c7b4c5ba313ecf95b5cfff040fc1fc042db Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 01:14:52 +0200 Subject: [PATCH 14/54] Level updates are now triggered at timed intervals --- src/Game.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Game.cpp b/src/Game.cpp index 0262418..23b2e81 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -20,8 +20,6 @@ void Game::loadLevel(int levelId) if(!result) { -// std::cerr << "Error while loading level :\n" << "\t" << result.description() << std::endl; -// exit(-1); pro_maat::errorWindow(result.description()); } @@ -42,6 +40,8 @@ void Game::runGame() { sf::RenderWindow window(sf::VideoMode(1280,1024),"Project Maat"); + sf::Clock clock; + while (window.isOpen()) { sf::Event event; @@ -51,10 +51,10 @@ void Game::runGame() { window.close(); } - // FIXME : For testing purposes - if (event.type == sf::Event::KeyPressed) + if (clock.getElapsedTime().asMilliseconds() >= 200) { currentLevel->runStep(); + clock.restart(); } } window.clear(sf::Color::White); From 115af7dcc73ae4e55aa877b693c14d60dca47de8 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sat, 8 Jun 2019 01:54:58 +0200 Subject: [PATCH 15/54] Moved the clock check outside of the event loop It caused the game to update only if events were received (Mouse movement, button press, etc) --- README.md | 2 +- src/Game.cpp | 10 +++++----- tests/gTests.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5830649..acb88d6 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Entities - [x] Structure - [x] Parsing from XML - - [ ] Moving + - [x] Moving - [ ] Decorators (Rules) - [ ] Rules - [ ] Creation diff --git a/src/Game.cpp b/src/Game.cpp index 23b2e81..b1c7df0 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -51,11 +51,11 @@ void Game::runGame() { window.close(); } - if (clock.getElapsedTime().asMilliseconds() >= 200) - { - currentLevel->runStep(); - clock.restart(); - } + } + if (clock.getElapsedTime().asMilliseconds() >= 200) + { + currentLevel->runStep(); + clock.restart(); } window.clear(sf::Color::White); // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? diff --git a/tests/gTests.cpp b/tests/gTests.cpp index 6997d4a..bcdb5ff 100644 --- a/tests/gTests.cpp +++ b/tests/gTests.cpp @@ -7,7 +7,7 @@ #include "Game.h" -TEST(Setup,LevelSetup) +TEST(Setup,GameSetup) { // TODO : Think about parsing from file ? Currently cumbersome and error-prone std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; From d53f8b32e9196b369e21473cc36e2d2bd6c3ea47 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 01:54:58 +0200 Subject: [PATCH 16/54] Moved the clock check outside of the event loop It caused the game to update only if events were received (Mouse movement, button press, etc) --- README.md | 2 +- src/Game.cpp | 10 +++++----- tests/gTests.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 5830649..acb88d6 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Entities - [x] Structure - [x] Parsing from XML - - [ ] Moving + - [x] Moving - [ ] Decorators (Rules) - [ ] Rules - [ ] Creation diff --git a/src/Game.cpp b/src/Game.cpp index 23b2e81..b1c7df0 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -51,11 +51,11 @@ void Game::runGame() { window.close(); } - if (clock.getElapsedTime().asMilliseconds() >= 200) - { - currentLevel->runStep(); - clock.restart(); - } + } + if (clock.getElapsedTime().asMilliseconds() >= 200) + { + currentLevel->runStep(); + clock.restart(); } window.clear(sf::Color::White); // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? diff --git a/tests/gTests.cpp b/tests/gTests.cpp index 6997d4a..bcdb5ff 100644 --- a/tests/gTests.cpp +++ b/tests/gTests.cpp @@ -7,7 +7,7 @@ #include "Game.h" -TEST(Setup,LevelSetup) +TEST(Setup,GameSetup) { // TODO : Think about parsing from file ? Currently cumbersome and error-prone std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; From 430d2b03077241a5103f51e0f363b8f443850394 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sat, 8 Jun 2019 02:32:06 +0200 Subject: [PATCH 17/54] Added representation of occupied squares and a way to retrieve them for A* implementation Updated UML --- UML_Class_Diagram.png | Bin 43973 -> 43106 bytes src/Entity.cpp | 36 ++++++++++++++++++++++++++++++++- src/Entity.h | 8 +++++++- src/Level.cpp | 46 ++++++++++++++++++++++++++++++++++++++++-- src/Level.h | 8 ++++++++ src/Utils.h | 2 +- 6 files changed, 95 insertions(+), 5 deletions(-) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 5f40a3df443970fd67cc5d6fca5182c16dfb305f..7800665767a5767cbba8d07ee87c4a4e397a7631 100644 GIT binary patch literal 43106 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

`WZmnsu&%=aWqxz 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 sf::Vector2f movementVector(0,0); switch (orientation) { - case Orientation::Nort: + case Orientation::North: movementVector.y = -pro_maat::pixelsPerUnit; break; case Orientation::East: @@ -64,3 +65,36 @@ const sf::RectangleShape& Entity::getShape() const { return(shape); } + +const State Entity::getState() const +{ + return currentState; +} + +const sf::Vector2i Entity::getPosition() const +{ + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; + uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; + return sf::Vector2i(x,y); +} + +const std::vector> Entity::getOccupiedSquares() const +{ + std::vector> occupiedSquares; + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; + uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; + uint8_t x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; + uint8_t y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + + for(int i = 0;i #include +#include #include "Utils.h" @@ -29,7 +30,7 @@ enum class State enum class Orientation { - Nort = 0, + North = 0, East = 90, South = 180, West = 270, @@ -47,6 +48,11 @@ public: void update(); const sf::RectangleShape& getShape() const; + const State getState() const; + const sf::Vector2i getPosition() const; + // Don't like it : iterates over every square every tick + const std::vector> getOccupiedSquares() const; + /// Position of the target of the current action on the map sf::Vector2i target; diff --git a/src/Level.cpp b/src/Level.cpp index 20fbfb3..e5c4e22 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -15,6 +15,10 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) if(!strncmp(child.name(),"Entity",6)) { entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); + + // Initialize the occupied squares vector with the new entity's squares + std::vector> entitySquares = entities.rbegin()->getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } } @@ -29,9 +33,47 @@ void Level::render(sf::RenderWindow& renderWindow) const void Level::runStep() { + std::vector> newOccupiedSquares{}; + newOccupiedSquares.reserve(occupiedSquares.size()); + for(Entity& entity: entities) { - // FIXME : For testing purposes - entity.move(); + entity.update(); + int heuristicSign = 0; + switch (entity.getState()) + { + case State::Moving: + { + heuristicSign = 1; + } + case State::Fleeing: + { + if(heuristicSign == 0) + { + heuristicSign = -1; + } + if(entity.target != entity.getPosition()) + { + entity.move(findPath(entity.getPosition(),entity.target,heuristicSign)); + } + break; + } + case State::Waiting:break; + case State::Idle:break; + } + + // Moves the occupied squares from the entity to the new occupied squares vector + std::vector> entitySquares = entity.getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(newOccupiedSquares)); } + + occupiedSquares.swap(newOccupiedSquares); + // Sort the vector as to get O(ln(n)) complexity when searching for a square + std::sort(occupiedSquares.begin(),occupiedSquares.end()); +} + +Orientation Level::findPath(sf::Vector2i start, sf::Vector2i end, int sign) +{ + // TODO : A* which returns the next move + return Orientation::East; } diff --git a/src/Level.h b/src/Level.h index 52d9f07..681a6a6 100644 --- a/src/Level.h +++ b/src/Level.h @@ -28,6 +28,14 @@ private: std::vector entities; const TextureStore& textures; + + // + // Pathfinding + // + + std::vector> occupiedSquares; + + Orientation findPath(sf::Vector2i start, sf::Vector2i end, int sign); }; diff --git a/src/Utils.h b/src/Utils.h index 4b837d3..4632cb0 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -13,7 +13,7 @@ namespace pro_maat { -static constexpr uint8_t pixelsPerUnit = 25; +static constexpr uint8_t pixelsPerUnit = 50; static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; From 1a79679c21be88c14ad96b5097fecc8ea000c156 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 02:32:06 +0200 Subject: [PATCH 18/54] Added representation of occupied squares and a way to retrieve them for A* implementation Updated UML --- UML_Class_Diagram.png | Bin 43973 -> 43106 bytes src/Entity.cpp | 36 ++++++++++++++++++++++++++++++++- src/Entity.h | 8 +++++++- src/Level.cpp | 46 ++++++++++++++++++++++++++++++++++++++++-- src/Level.h | 8 ++++++++ src/Utils.h | 2 +- 6 files changed, 95 insertions(+), 5 deletions(-) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 5f40a3df443970fd67cc5d6fca5182c16dfb305f..7800665767a5767cbba8d07ee87c4a4e397a7631 100644 GIT binary patch literal 43106 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

`WZmnsu&%=aWqxz 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 sf::Vector2f movementVector(0,0); switch (orientation) { - case Orientation::Nort: + case Orientation::North: movementVector.y = -pro_maat::pixelsPerUnit; break; case Orientation::East: @@ -64,3 +65,36 @@ const sf::RectangleShape& Entity::getShape() const { return(shape); } + +const State Entity::getState() const +{ + return currentState; +} + +const sf::Vector2i Entity::getPosition() const +{ + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; + uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; + return sf::Vector2i(x,y); +} + +const std::vector> Entity::getOccupiedSquares() const +{ + std::vector> occupiedSquares; + // Safe : size is a multiple of pro_maat::pixelsPerUnit + uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; + uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; + uint8_t x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; + uint8_t y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + + for(int i = 0;i #include +#include #include "Utils.h" @@ -29,7 +30,7 @@ enum class State enum class Orientation { - Nort = 0, + North = 0, East = 90, South = 180, West = 270, @@ -47,6 +48,11 @@ public: void update(); const sf::RectangleShape& getShape() const; + const State getState() const; + const sf::Vector2i getPosition() const; + // Don't like it : iterates over every square every tick + const std::vector> getOccupiedSquares() const; + /// Position of the target of the current action on the map sf::Vector2i target; diff --git a/src/Level.cpp b/src/Level.cpp index 20fbfb3..e5c4e22 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -15,6 +15,10 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) if(!strncmp(child.name(),"Entity",6)) { entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); + + // Initialize the occupied squares vector with the new entity's squares + std::vector> entitySquares = entities.rbegin()->getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } } @@ -29,9 +33,47 @@ void Level::render(sf::RenderWindow& renderWindow) const void Level::runStep() { + std::vector> newOccupiedSquares{}; + newOccupiedSquares.reserve(occupiedSquares.size()); + for(Entity& entity: entities) { - // FIXME : For testing purposes - entity.move(); + entity.update(); + int heuristicSign = 0; + switch (entity.getState()) + { + case State::Moving: + { + heuristicSign = 1; + } + case State::Fleeing: + { + if(heuristicSign == 0) + { + heuristicSign = -1; + } + if(entity.target != entity.getPosition()) + { + entity.move(findPath(entity.getPosition(),entity.target,heuristicSign)); + } + break; + } + case State::Waiting:break; + case State::Idle:break; + } + + // Moves the occupied squares from the entity to the new occupied squares vector + std::vector> entitySquares = entity.getOccupiedSquares(); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(newOccupiedSquares)); } + + occupiedSquares.swap(newOccupiedSquares); + // Sort the vector as to get O(ln(n)) complexity when searching for a square + std::sort(occupiedSquares.begin(),occupiedSquares.end()); +} + +Orientation Level::findPath(sf::Vector2i start, sf::Vector2i end, int sign) +{ + // TODO : A* which returns the next move + return Orientation::East; } diff --git a/src/Level.h b/src/Level.h index 52d9f07..681a6a6 100644 --- a/src/Level.h +++ b/src/Level.h @@ -28,6 +28,14 @@ private: std::vector entities; const TextureStore& textures; + + // + // Pathfinding + // + + std::vector> occupiedSquares; + + Orientation findPath(sf::Vector2i start, sf::Vector2i end, int sign); }; diff --git a/src/Utils.h b/src/Utils.h index 4b837d3..4632cb0 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -13,7 +13,7 @@ namespace pro_maat { -static constexpr uint8_t pixelsPerUnit = 25; +static constexpr uint8_t pixelsPerUnit = 50; static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; From 633fda83364efd44682e012a5d0f8797f016807e Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sat, 8 Jun 2019 16:11:29 +0200 Subject: [PATCH 19/54] Added type alias for std::pair for grid coordinates as sf::Vector2 cannot be used in std::map or std::set --- src/Entity.cpp | 8 ++++---- src/Entity.h | 8 ++++---- src/Level.cpp | 4 ++-- src/Level.h | 6 ++++-- src/Utils.h | 10 ++++++++++ 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 921df1f..df05975 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -71,17 +71,17 @@ const State Entity::getState() const return currentState; } -const sf::Vector2i Entity::getPosition() const +const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; - return sf::Vector2i(x,y); + return pro_maat::GridPos(x,y); } -const std::vector> Entity::getOccupiedSquares() const +const std::vector Entity::getOccupiedSquares() const { - std::vector> occupiedSquares; + std::vector occupiedSquares; // Safe : size is a multiple of pro_maat::pixelsPerUnit uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; diff --git a/src/Entity.h b/src/Entity.h index f729123..1d0d49c 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -49,13 +49,13 @@ public: const sf::RectangleShape& getShape() const; const State getState() const; - const sf::Vector2i getPosition() const; + const pro_maat::GridPos getPosition() const; // Don't like it : iterates over every square every tick - const std::vector> getOccupiedSquares() const; + const std::vector getOccupiedSquares() const; /// Position of the target of the current action on the map - sf::Vector2i target; + pro_maat::GridPos target; private: static const std::map entityTypeLookup; @@ -69,7 +69,7 @@ private: State nextState; /// Used with rules : last to update has priority - sf::Vector2i nextTarget; + pro_maat::GridPos nextTarget; }; diff --git a/src/Level.cpp b/src/Level.cpp index e5c4e22..470c84e 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -33,7 +33,7 @@ void Level::render(sf::RenderWindow& renderWindow) const void Level::runStep() { - std::vector> newOccupiedSquares{}; + std::vector newOccupiedSquares{}; newOccupiedSquares.reserve(occupiedSquares.size()); for(Entity& entity: entities) @@ -72,7 +72,7 @@ void Level::runStep() std::sort(occupiedSquares.begin(),occupiedSquares.end()); } -Orientation Level::findPath(sf::Vector2i start, sf::Vector2i end, int sign) +Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign) { // TODO : A* which returns the next move return Orientation::East; diff --git a/src/Level.h b/src/Level.h index 681a6a6..a975c84 100644 --- a/src/Level.h +++ b/src/Level.h @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include "Utils.h" #include "Entity.h" @@ -33,9 +35,9 @@ private: // Pathfinding // - std::vector> occupiedSquares; + std::vector occupiedSquares; - Orientation findPath(sf::Vector2i start, sf::Vector2i end, int sign); + Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign); }; diff --git a/src/Utils.h b/src/Utils.h index 4632cb0..431ed1a 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,6 +12,8 @@ namespace pro_maat { +// Used with positions on the map grid +using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 50; static constexpr char levelFolder[] = "resources/"; @@ -20,6 +22,14 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); +// Good heuristic on 4-way grids +double manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) +{ + // The *0.01 helps with breaking ties and minimizing exploration + // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties + return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; +} + } #endif //PROJECT_MAAT_UTILS_H From f7481f2bc9898155c9a149feb5c16ae38a99940a Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 16:11:29 +0200 Subject: [PATCH 20/54] Added type alias for std::pair for grid coordinates as sf::Vector2 cannot be used in std::map or std::set --- src/Entity.cpp | 8 ++++---- src/Entity.h | 8 ++++---- src/Level.cpp | 4 ++-- src/Level.h | 6 ++++-- src/Utils.h | 10 ++++++++++ 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 921df1f..df05975 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -71,17 +71,17 @@ const State Entity::getState() const return currentState; } -const sf::Vector2i Entity::getPosition() const +const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; - return sf::Vector2i(x,y); + return pro_maat::GridPos(x,y); } -const std::vector> Entity::getOccupiedSquares() const +const std::vector Entity::getOccupiedSquares() const { - std::vector> occupiedSquares; + std::vector occupiedSquares; // Safe : size is a multiple of pro_maat::pixelsPerUnit uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; diff --git a/src/Entity.h b/src/Entity.h index f729123..1d0d49c 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -49,13 +49,13 @@ public: const sf::RectangleShape& getShape() const; const State getState() const; - const sf::Vector2i getPosition() const; + const pro_maat::GridPos getPosition() const; // Don't like it : iterates over every square every tick - const std::vector> getOccupiedSquares() const; + const std::vector getOccupiedSquares() const; /// Position of the target of the current action on the map - sf::Vector2i target; + pro_maat::GridPos target; private: static const std::map entityTypeLookup; @@ -69,7 +69,7 @@ private: State nextState; /// Used with rules : last to update has priority - sf::Vector2i nextTarget; + pro_maat::GridPos nextTarget; }; diff --git a/src/Level.cpp b/src/Level.cpp index e5c4e22..470c84e 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -33,7 +33,7 @@ void Level::render(sf::RenderWindow& renderWindow) const void Level::runStep() { - std::vector> newOccupiedSquares{}; + std::vector newOccupiedSquares{}; newOccupiedSquares.reserve(occupiedSquares.size()); for(Entity& entity: entities) @@ -72,7 +72,7 @@ void Level::runStep() std::sort(occupiedSquares.begin(),occupiedSquares.end()); } -Orientation Level::findPath(sf::Vector2i start, sf::Vector2i end, int sign) +Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign) { // TODO : A* which returns the next move return Orientation::East; diff --git a/src/Level.h b/src/Level.h index 681a6a6..a975c84 100644 --- a/src/Level.h +++ b/src/Level.h @@ -9,6 +9,8 @@ #include #include #include +#include +#include #include "Utils.h" #include "Entity.h" @@ -33,9 +35,9 @@ private: // Pathfinding // - std::vector> occupiedSquares; + std::vector occupiedSquares; - Orientation findPath(sf::Vector2i start, sf::Vector2i end, int sign); + Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign); }; diff --git a/src/Utils.h b/src/Utils.h index 4632cb0..431ed1a 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,6 +12,8 @@ namespace pro_maat { +// Used with positions on the map grid +using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 50; static constexpr char levelFolder[] = "resources/"; @@ -20,6 +22,14 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); +// Good heuristic on 4-way grids +double manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) +{ + // The *0.01 helps with breaking ties and minimizing exploration + // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties + return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; +} + } #endif //PROJECT_MAAT_UTILS_H From e0443585d09be558194e90faef0cdb37259b55db Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sat, 8 Jun 2019 17:08:15 +0200 Subject: [PATCH 21/54] Fixed target initialization still using sf::Vector2i Forgot to move manhattanDistance to .cpp --- src/Entity.cpp | 2 +- src/Utils.cpp | 7 +++++++ src/Utils.h | 7 +------ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index df05975..f4ebf56 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -21,7 +21,7 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i currentState = State::Idle; nextState = State::Idle; - target = sf::Vector2i(shape.getPosition()); + target = pro_maat::GridPos(x,y); nextTarget = target; } diff --git a/src/Utils.cpp b/src/Utils.cpp index 4c75c2f..153f214 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -36,4 +36,11 @@ namespace pro_maat window.display(); } } + + float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) + { + // The *0.01 helps with breaking ties and minimizing exploration + // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties + return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; + } } \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index 431ed1a..f6331c6 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -23,12 +23,7 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); // Good heuristic on 4-way grids -double manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) -{ - // The *0.01 helps with breaking ties and minimizing exploration - // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties - return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; -} +float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide); } From 250a680cadd59e50c1128564cf62c75a2ffca608 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sat, 8 Jun 2019 17:08:15 +0200 Subject: [PATCH 22/54] Fixed target initialization still using sf::Vector2i Forgot to move manhattanDistance to .cpp --- src/Entity.cpp | 2 +- src/Utils.cpp | 7 +++++++ src/Utils.h | 7 +------ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index df05975..f4ebf56 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -21,7 +21,7 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i currentState = State::Idle; nextState = State::Idle; - target = sf::Vector2i(shape.getPosition()); + target = pro_maat::GridPos(x,y); nextTarget = target; } diff --git a/src/Utils.cpp b/src/Utils.cpp index 4c75c2f..153f214 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -36,4 +36,11 @@ namespace pro_maat window.display(); } } + + float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) + { + // The *0.01 helps with breaking ties and minimizing exploration + // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties + return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; + } } \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index 431ed1a..f6331c6 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -23,12 +23,7 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); // Good heuristic on 4-way grids -double manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) -{ - // The *0.01 helps with breaking ties and minimizing exploration - // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties - return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; -} +float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide); } From 4b39ac42fd235c743e32806a00994e662ac8f06b Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 05:18:28 +0200 Subject: [PATCH 23/54] A* implementation Working except for end of path endless loop (0,0 point appearing in paths for no reason?) Commit mainly because the HDD is on the verge of dying --- README.md | 4 +- UML_Class_Diagram.png | Bin 43106 -> 44467 bytes resources/test_level.xml | 4 +- src/Entity.cpp | 24 +++++--- src/Entity.h | 8 ++- src/Level.cpp | 118 +++++++++++++++++++++++++++++++++++++-- src/Level.h | 12 +++- src/Utils.cpp | 27 ++++++++- src/Utils.h | 13 +++-- 9 files changed, 181 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index acb88d6..4ded453 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Creation - [ ] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators + - [ ] Raytrace in order to find best goal for pathfinding ? - [ ] Graphics - [x] Scene rendering - [ ] UI @@ -33,4 +34,5 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Entity behaviour evolution - [ ] Rule application - [ ] Saving state through serialization ? - - [ ] UML \ No newline at end of file + - [ ] UML + - [ ] Unit tests \ No newline at end of file diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 7800665767a5767cbba8d07ee87c4a4e397a7631..e5faeff5084f75aae708da41dfc1f428274d1b0d 100644 GIT binary patch literal 44467 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 z zNkIdve?RG_keKj!m5`{1Ex!4Z@y=^i73U{F5j`=YVO1|t~A9Jdcy zmC584W+h%)Dfm1wCkokRuTHCxiCYF`b$SG2%ag}rVLg~z)h%Lbv?CBNTX-^#hTvLX zmR-cc^kVDLb~4N8UY*C7VX8q{ zrv(?|yohoF#|<+3>1(i;oja20%I=3IL1cT#a?g?xj*Vbs+wrZKu)`AL){48}%T87i z9LI;!ht)hL5KFcnQAAl+Lhr7#ENbJMmYhgIT|S=#E*djE;aBKJc$peJ(V3AOCae|- zs@HY%eIFazp)SSKIS5&IF*U3I7UB;P`ZMi|c%wABxr zh*}Jh?_0+{Y)vHXn4X{9Rl{}MdqeE1T@CI>3?+SSHKwzyB(b6d2w!NTiyKGkCR7nJ zLTs)|3en6=FuO9#mnX91E}0j{&y?kL&QvTWrm$DjT_hVvtuqlmYX3&(<!$s~A5Xi#m3k$awnw!BJfCVC8maho9t;7Uho5$52f6Vp=1xO83ui{ArP>Jj(Rq zz&u%1nWd{+?^USL!`}6VxD2)!2mPiEg=U%o2=1hMKZNX`IP#1!cuOEo^tGYC!XseRbcv_6538%FQ5M2VJN0&5j&p!r}_e&e^jF3LT z^Nc!0&X@jVn>kNF?n7(INz;pbVOMhUMLi4S9{?ryTKW9k9fTGa%hc@%U6+D>o7Ms=W`vPh)lcm*T#{zgR{U zJZz7<+BIf*R5aX{^GiYPb`|Xkj(x5$c_zg&+_0r2x>NkWTs#WDa;aQy?LC&v$tRpfFxH0;*(%MrS8_J{8TVR6>YC7d!jWH&`QMuiEWiy}Id+BJS2V8cCNbRCVr==Q@5+dw_M{H>xu zvIK>$iq8VtWI3;u^0vym`}>)H$=$#v*g2tG5dIJr@);l}0x}5n{7dlu+};j|!FkE4 zdHKwE*SV=_ty+@>4(+R*dP3^mO4pyRu;B4>)|!;j7it!%Dr!)mvM{@uKGXNiD6TF+ zs5}_S36p$11{7{kJbV7@>;|GJ(&pnZtq{HP`jbv(zQKRk{eSV(Yz%k#y<1V`9@$;? zTyOkXN+l~i-dHid6v$~~X_|i~aw=JKQ98hcf%zpAa`H`3pEF0Nld=!%6cho8fqcRgo5d0woD8!Zbh)3%Po9~!%E>hAg7XAFag4! z!{{@+OafLeKe?(p`M!ln&#|m@{g-{O+oBi9(3U8tFv<}(m2XQdc(RL-bM*efw1=fc6wR{sKJ-P+JsaraE;%?%59%*QRM)YD-rYW~#FhI3-kn2u1M0zxeAl z-t)>G{lb$~pe#w1n*8HPR8#faud5wxAa99|y(*~oH&9e~ zls~Pxa8e~!B9iUq;0>~gWM1sy)t0AMx`J~n5>ia-czA^#`V@0Q~0dTzA zoX~UqD_(WMzjWr>nXOa5`rK+(Mv^CW{=BNiDDt-n+ZRLU<59p$s5dz9WQ*U>{&KFZ zkVq^ff_VE@=IaMeT;_hx2~}~2uZYdX$KQO_iU2Oa!(FA4zMbYLm&Clksv^tv_@!3fvqO-M5b?mhSYV z-VZ0k`0)S+2d47b<=7eTjhe+XEirdCX2T^1<0i?_^*f*~rr)1k0+Ep)$xN<1#FBQ{ zCs-s=iCeP2|Eq_{#MMElNu#eSf`&p)%e1Hb9{CQilcfM~{<8~!&GphR=K!MHpVR3< znDp-hpo;|E&<+sYLaJ-<>%G7+xET#J0;mCqX8gVbGy2?ufJVUcbSvYtSwJZN zzdKl*Ms@+{{#on3UNL~^)8hr1K4`Dc2;#T0^G181VM&B~++|j$qt1J0LXXJ~7@2Wa zz*=GwtPdM6)2#RUO>CHlmCi%c4{MK6uzhw{t2G=Uz|9i(q#C3?^b4i>P9Awm`oSM6 z%lm>E6X)z3c5vAn`oHH7(0GxrH?KRy_zQ_yvG*-Y&Z@hw1kA-JsdG+reyyx98RjkO zywiDvz3##KD^VH;1M`y+q&jDtDtt9NPniXNSCU~+Hmt;u|AR|tR9f_7gK)tAePZxR zA0&$EfJ4hmf{QQQ*v$|iDJ7iX{t_EK1LWhRPvo%Oq{_Azi^)Y(lC(LKuR?EYhq|Ux zbcyuiq*;Y>Him!L>!?pH@-`-R$I~-C4#)>g%@nn;e^yjWqsk{aG%}Nxh+mR7JrbJ| zK!OvTe-~2l@`I?CgXC@I*NK{ZZm3p45l?~q5N(kg+F8k)^2X|Y`z$}ygK)whn?Ah0 zDBI%yHLM0tMECx=!?TUhN)|xbvH?N}nxy|>Fg^Wg&^?{r=e!(79ZBM_$O*%dSH!2BnGlfgKssd6!BD;eHnwrw_ujq@EBo=_hzB zQ=}5XAHQ%|&?c)#;%n<$b(?q@qDVDzij6DbOBt<#W5>jAnx@9xko7EE5Ok^YzvlwW zi$cLD6Z%=}iT5h=aMs46rz?q+P|gPE`m60(kJwF_6&4c5B?P18xM`FdZ>aa~nz0b1 zKa50XPX*TP!)y4&h@LM`zcWrFX!RBW=~wBetn_}+A7badqd44)zC!;- z>_)0gUR2EI;*+)KImk1QkTqg;L%f|nwjc^$9Tj+Pu^wB|T48?K8EJjyDQ<_BT)gg` zZl4A{Ia*@NFdh&qq?F@n`_TVd`Di})lD>r>$G{MOR$Lf(?&I@D`3_u@GmLufMX*Tr zO||WES?1-*j+60OGM`PZ*N}$aCl4BImUbSQ;gOBhatZ+ik|lSP#0_m?h~8ZA+^d0t z?ZCpfqZ+5_qOfY>@!PsA+T;(~rVb)aZ`-Yb$53f7l}xl>&cKz`0y#BZ!Y1@%rk0+J z8?F&`kYt~$S*$X!on5`M;2OR>qNgwPok1Y%Td&Sia;$p<&+pv<*j?XoZMQYpAhXRc zWsBNdy%njy#hQaX8Chp#f2$TFcqnDAZJBgxOsq4O!|s!_;udzO%)}ow!=}aPRzp*m zPH2{t(w#%OCsGQ&L%j?dUI;Wx1){NVZtZT#Ko7UG24K7Cq^{BYZkmVT)At?`4nWEZ z!>R@4Mf=yb8+c5cXz@-zrh_r}guoctkUt+X=n|zlKv)v>^WX_NbE*a`?F5?jm?j#> z1d3>#cbKx}LosCO4CG=$zxLvZRW)~L zwz-e_U7ACK8$aMt{uiH@!O4`690yxw>{~Y1O3-R!C!j3x#N-*N65M!SQDnl;uiCHQ z-}vP}OgK&)P`wu#U;2KRzex-m?!dsnxMOzyoXrDh z4<=TP5Uv-R>(6GagwL+|xD;Ex;k@S+F+H}%o(~o? z2fT#|7YzD!L2aiV%kFoC!zw*m~ znT2MbKD0)#VO3Q_L_!7}UuJDR`~_J`r#r8%T)*oi0&@!#gWJzM3~<{=a3jwG@G3ml zb&>SA{d@1fQ5jC`$$TdJba&iAxYT*d;~riT!zBcDC)Ic_^Vh-*I|3+3i*6*QAKm{e zv|9W}(a>FA27bF9{H(J^f7e#ee|ktsnWEps(rHMHDs^pu$BO9wa*P2WGh>VM)nK=T F{{g<{_#OZN literal 43106 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

`WZmnsu&%=aWqxz z=tU*FjGz3c=c>P#E8$%8-S&y`wGZ>WGV;7#M2|sER~e&BLZ?-#3PapJAnbMY+_jYt zq|Kbp$v06eALPw*lUVRox&jVlsQmdS63Ddf$IrYgVb_PWG|sCG(HI})R^ahAodNi~ z_Ai#V7Sx7>l|)$vnq;gn(vOeurM1VWPWQZ8;hePtENi$CNuH(UmxvTqswk27{*a4b znZfm6y8dcgy>TQ=+@X6F`rh{@H1p1$K+xV*$chiFM$2rqtg`LQg7SqDSBXsR0DT5@ zjSCb$tS>7gUrE@8IH5kqAM6cMnT*-ISqww3Ap{wQUukU&LvT8EM~{z)=LpNHC*;sp zwI`dbZnj#gJsl10!ET3PTL!ojA{D%)$EwDf?kLsQTy15r`r_U+!Ufa`$(!99r`X16 z3;vtFq^&Yp(&$>b#JVbASYY~rd(Ug4HV361Po(p*Z*y#V1QX-Tj - + - + \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index f4ebf56..163bcd9 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -19,9 +19,10 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); shape.setTexture(texture); - currentState = State::Idle; + // FIXME : Testing purposes + currentState = State::Moving; nextState = State::Idle; - target = pro_maat::GridPos(x,y); + target = pro_maat::GridPos(x+10,y); nextTarget = target; } @@ -36,7 +37,6 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) void Entity::move(Orientation orientation) { // TODO : Add speed ? - shape.setRotation(static_cast(orientation)); sf::Vector2f movementVector(0,0); switch (orientation) @@ -53,8 +53,11 @@ void Entity::move(Orientation orientation) case Orientation::West: movementVector.x = -pro_maat::pixelsPerUnit; break; + case Orientation::None: + return; } + shape.setRotation(static_cast(orientation)); shape.setPosition(shape.getPosition()+movementVector); } @@ -74,19 +77,22 @@ const State Entity::getState() const const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit - uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; - uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; + pro_maat::GridUnit x = shape.getPosition().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit y = shape.getPosition().y/pro_maat::pixelsPerUnit; return pro_maat::GridPos(x,y); } const std::vector Entity::getOccupiedSquares() const { std::vector occupiedSquares; + // Safe : size is a multiple of pro_maat::pixelsPerUnit - uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; - uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; - uint8_t x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; - uint8_t y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + pro_maat::GridUnit w = shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit h = shape.getSize().y/pro_maat::pixelsPerUnit; + pro_maat::GridUnit x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; + pro_maat::GridUnit y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + + occupiedSquares.reserve(w*h); for(int i = 0;i getOccupiedSquares() const; - /// Position of the target of the current action on the map pro_maat::GridPos target; private: @@ -62,6 +65,7 @@ private: EntityType type; // As it contains position, size and orientation, we do not need anything more + // TODO : Maybe we need something more : lots of computations sf::RectangleShape shape; State currentState; diff --git a/src/Level.cpp b/src/Level.cpp index 470c84e..5a446b0 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -7,7 +7,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) : textures(textureStore), - size(xmlDoc.child("Level").attribute("width").as_int(),xmlDoc.child("Level").attribute("width").as_int()) + size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()) { pugi::xml_node levelNode = xmlDoc.child("Level"); for(const pugi::xml_node& child : levelNode.children()) @@ -17,7 +17,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); // Initialize the occupied squares vector with the new entity's squares - std::vector> entitySquares = entities.rbegin()->getOccupiedSquares(); + std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } @@ -62,8 +62,14 @@ void Level::runStep() case State::Idle:break; } + std::vector entitySquares = entity.getOccupiedSquares(); + + // FIXME : Very heavy memory usage and a lot of duplicates, slows down occupiedSquares.find() calls too. + // Copy the squares to the currently occupied squares : prevents moving into an entity that just moved + occupiedSquares.insert(occupiedSquares.end(),entitySquares.begin(),entitySquares.end()); + std::sort(occupiedSquares.begin(),occupiedSquares.end()); + // Moves the occupied squares from the entity to the new occupied squares vector - std::vector> entitySquares = entity.getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(newOccupiedSquares)); } @@ -72,8 +78,108 @@ void Level::runStep() std::sort(occupiedSquares.begin(),occupiedSquares.end()); } -Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign) +Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int sign) { - // TODO : A* which returns the next move - return Orientation::East; + std::set openNodes{start}; + std::set closedNodes{}; + + std::map estimatedCosts{{start,pro_maat::manhattanDistance(start,goal)*sign}}; + std::map pathCosts{{start,0}}; + std::map paths{}; + + + const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); + // Save the iterators : vector is const and .begin() and .end() might get called a lot + auto goalNeighboursBeginIterator = goalNeighbours.begin(); + auto goalNeighboursEndIterator = goalNeighbours.end(); + + + // FIXME : Find an efficient way to get rid of openNodes.find calls + // Lambda checking if the current element is also in the open nodes set + auto compWithOpen = [&openNodes](const std::pair& leftHandSide, + const std::pair& rightHandSide){ + if(openNodes.find(leftHandSide.first) == openNodes.end()) + { + return (false); + } + else if(openNodes.find(rightHandSide.first) == openNodes.end()) + { + return (true); + } + else + { + return (leftHandSide.second < rightHandSide.second); + } + }; + + + while(!openNodes.empty()) + { + // Expand from the open node with the smallest estimated cost + pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; + + if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) + { + // Trace back to the start + pro_maat::GridPos& previousNode = paths[currentNode]; + for(;paths[previousNode]!=start;previousNode = paths[previousNode]) + {} + + pro_maat::GridUnit dx = previousNode.first - start.first; + pro_maat::GridUnit dy = previousNode.second - start.second; + + if(dx < 0) + { + return(Orientation::West); + } + else if(dx > 0) + { + return(Orientation::East); + } + else if(dy < 0) + { + return(Orientation::North); + } + else if(dy > 0 ) + { + return(Orientation::South); + } + else + { + return(Orientation::None); + } + } + + openNodes.erase(currentNode); + closedNodes.insert(currentNode); + + for(pro_maat::GridPos neighbour : pro_maat::getNeighbours(currentNode,size)) + { + // Checks if node has been closed or is an obstacle + if(std::find(occupiedSquares.begin(),occupiedSquares.end(),neighbour) != occupiedSquares.end() || + closedNodes.find(neighbour) != closedNodes.end()) + { + continue; + } + + // As the neighbours are adjacent squares, distance from them is always +-1 + float newPathCost = pathCosts[currentNode] + sign; + + if(openNodes.find(neighbour) == openNodes.end()) + { + openNodes.insert(neighbour); + } + else if(newPathCost >= pathCosts[neighbour]) // If the node is open but this path is longer, ignore it + { + continue; + } + + pathCosts.insert_or_assign(neighbour,newPathCost); + estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); + auto returnPathIt = paths.insert_or_assign(neighbour,currentNode); + } + } + + // If we did not find a path, do not move + return Orientation::None; } diff --git a/src/Level.h b/src/Level.h index a975c84..7f4f8c8 100644 --- a/src/Level.h +++ b/src/Level.h @@ -25,7 +25,7 @@ public: void runStep(); private: - const sf::Vector2i size; + const pro_maat::GridPos size; std::vector entities; @@ -37,7 +37,15 @@ private: std::vector occupiedSquares; - Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign); + /// If sign is +1, finds a path between start and goal positions. + /// If sign is -1, finds a path away from the goal position, from the starting position. + /// THIS DOES NOT HANDLE ENTITIES BIGGER THAN ONE SQUARE + /// + /// \param start Starting position + /// \param goal Goal position + /// \param sign +1 or -1, defines if we go towards or away from the goal + /// \return Orientation of the next move if successful, Orientation::None otherwise. + Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int sign); }; diff --git a/src/Utils.cpp b/src/Utils.cpp index 153f214..4e820ca 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -37,10 +37,33 @@ namespace pro_maat } } - float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) + float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) { // The *0.01 helps with breaking ties and minimizing exploration // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties - return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; + return (std::abs(rightHandSide.first-leftHandSide.first)+ + std::abs(rightHandSide.second-leftHandSide.second))*1.01; + } + + const std::vector getNeighbours(const pro_maat::GridPos& origin, const GridPos& gridSize) + { + std::vector neighbours{}; + neighbours.reserve(4); + + for(GridUnit i = std::max(origin.first-1,0);i<=std::min(static_cast(origin.first+1),gridSize.first);i++) + { + // Do not add the original position + if(i == origin.first) continue; + + neighbours.emplace_back(i,origin.second); + } + for(GridUnit i = std::max(origin.second-1,0);i<=std::min(static_cast(origin.second+1),gridSize.second);i++) + { + if(i == origin.second) continue; + + neighbours.emplace_back(origin.first,i); + } + + return std::move(neighbours); } } \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index f6331c6..4491e10 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,10 +12,12 @@ namespace pro_maat { -// Used with positions on the map grid -using GridPos = std::pair; +// Used as the base of all grid based computations +using GridUnit = int16_t; +// Used when dealing with the grid representation of the map +using GridPos = std::pair; -static constexpr uint8_t pixelsPerUnit = 50; +static constexpr uint8_t pixelsPerUnit = 30; static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; @@ -23,8 +25,9 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); // Good heuristic on 4-way grids -float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide); - +float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide); +/// Gets the 4 cardinal neighbours on the grid with edge checking +const std::vector getNeighbours(const GridPos& origin, const GridPos& gridSize); } #endif //PROJECT_MAAT_UTILS_H From d42d176e8de7742b008cad852f993a283b4c0615 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 05:18:28 +0200 Subject: [PATCH 24/54] A* implementation Working except for end of path endless loop (0,0 point appearing in paths for no reason?) Commit mainly because the HDD is on the verge of dying --- README.md | 4 +- UML_Class_Diagram.png | Bin 43106 -> 44467 bytes resources/test_level.xml | 4 +- src/Entity.cpp | 24 +++++--- src/Entity.h | 8 ++- src/Level.cpp | 118 +++++++++++++++++++++++++++++++++++++-- src/Level.h | 12 +++- src/Utils.cpp | 27 ++++++++- src/Utils.h | 13 +++-- 9 files changed, 181 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index acb88d6..4ded453 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Creation - [ ] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators + - [ ] Raytrace in order to find best goal for pathfinding ? - [ ] Graphics - [x] Scene rendering - [ ] UI @@ -33,4 +34,5 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Entity behaviour evolution - [ ] Rule application - [ ] Saving state through serialization ? - - [ ] UML \ No newline at end of file + - [ ] UML + - [ ] Unit tests \ No newline at end of file diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 7800665767a5767cbba8d07ee87c4a4e397a7631..e5faeff5084f75aae708da41dfc1f428274d1b0d 100644 GIT binary patch literal 44467 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 z zNkIdve?RG_keKj!m5`{1Ex!4Z@y=^i73U{F5j`=YVO1|t~A9Jdcy zmC584W+h%)Dfm1wCkokRuTHCxiCYF`b$SG2%ag}rVLg~z)h%Lbv?CBNTX-^#hTvLX zmR-cc^kVDLb~4N8UY*C7VX8q{ zrv(?|yohoF#|<+3>1(i;oja20%I=3IL1cT#a?g?xj*Vbs+wrZKu)`AL){48}%T87i z9LI;!ht)hL5KFcnQAAl+Lhr7#ENbJMmYhgIT|S=#E*djE;aBKJc$peJ(V3AOCae|- zs@HY%eIFazp)SSKIS5&IF*U3I7UB;P`ZMi|c%wABxr zh*}Jh?_0+{Y)vHXn4X{9Rl{}MdqeE1T@CI>3?+SSHKwzyB(b6d2w!NTiyKGkCR7nJ zLTs)|3en6=FuO9#mnX91E}0j{&y?kL&QvTWrm$DjT_hVvtuqlmYX3&(<!$s~A5Xi#m3k$awnw!BJfCVC8maho9t;7Uho5$52f6Vp=1xO83ui{ArP>Jj(Rq zz&u%1nWd{+?^USL!`}6VxD2)!2mPiEg=U%o2=1hMKZNX`IP#1!cuOEo^tGYC!XseRbcv_6538%FQ5M2VJN0&5j&p!r}_e&e^jF3LT z^Nc!0&X@jVn>kNF?n7(INz;pbVOMhUMLi4S9{?ryTKW9k9fTGa%hc@%U6+D>o7Ms=W`vPh)lcm*T#{zgR{U zJZz7<+BIf*R5aX{^GiYPb`|Xkj(x5$c_zg&+_0r2x>NkWTs#WDa;aQy?LC&v$tRpfFxH0;*(%MrS8_J{8TVR6>YC7d!jWH&`QMuiEWiy}Id+BJS2V8cCNbRCVr==Q@5+dw_M{H>xu zvIK>$iq8VtWI3;u^0vym`}>)H$=$#v*g2tG5dIJr@);l}0x}5n{7dlu+};j|!FkE4 zdHKwE*SV=_ty+@>4(+R*dP3^mO4pyRu;B4>)|!;j7it!%Dr!)mvM{@uKGXNiD6TF+ zs5}_S36p$11{7{kJbV7@>;|GJ(&pnZtq{HP`jbv(zQKRk{eSV(Yz%k#y<1V`9@$;? zTyOkXN+l~i-dHid6v$~~X_|i~aw=JKQ98hcf%zpAa`H`3pEF0Nld=!%6cho8fqcRgo5d0woD8!Zbh)3%Po9~!%E>hAg7XAFag4! z!{{@+OafLeKe?(p`M!ln&#|m@{g-{O+oBi9(3U8tFv<}(m2XQdc(RL-bM*efw1=fc6wR{sKJ-P+JsaraE;%?%59%*QRM)YD-rYW~#FhI3-kn2u1M0zxeAl z-t)>G{lb$~pe#w1n*8HPR8#faud5wxAa99|y(*~oH&9e~ zls~Pxa8e~!B9iUq;0>~gWM1sy)t0AMx`J~n5>ia-czA^#`V@0Q~0dTzA zoX~UqD_(WMzjWr>nXOa5`rK+(Mv^CW{=BNiDDt-n+ZRLU<59p$s5dz9WQ*U>{&KFZ zkVq^ff_VE@=IaMeT;_hx2~}~2uZYdX$KQO_iU2Oa!(FA4zMbYLm&Clksv^tv_@!3fvqO-M5b?mhSYV z-VZ0k`0)S+2d47b<=7eTjhe+XEirdCX2T^1<0i?_^*f*~rr)1k0+Ep)$xN<1#FBQ{ zCs-s=iCeP2|Eq_{#MMElNu#eSf`&p)%e1Hb9{CQilcfM~{<8~!&GphR=K!MHpVR3< znDp-hpo;|E&<+sYLaJ-<>%G7+xET#J0;mCqX8gVbGy2?ufJVUcbSvYtSwJZN zzdKl*Ms@+{{#on3UNL~^)8hr1K4`Dc2;#T0^G181VM&B~++|j$qt1J0LXXJ~7@2Wa zz*=GwtPdM6)2#RUO>CHlmCi%c4{MK6uzhw{t2G=Uz|9i(q#C3?^b4i>P9Awm`oSM6 z%lm>E6X)z3c5vAn`oHH7(0GxrH?KRy_zQ_yvG*-Y&Z@hw1kA-JsdG+reyyx98RjkO zywiDvz3##KD^VH;1M`y+q&jDtDtt9NPniXNSCU~+Hmt;u|AR|tR9f_7gK)tAePZxR zA0&$EfJ4hmf{QQQ*v$|iDJ7iX{t_EK1LWhRPvo%Oq{_Azi^)Y(lC(LKuR?EYhq|Ux zbcyuiq*;Y>Him!L>!?pH@-`-R$I~-C4#)>g%@nn;e^yjWqsk{aG%}Nxh+mR7JrbJ| zK!OvTe-~2l@`I?CgXC@I*NK{ZZm3p45l?~q5N(kg+F8k)^2X|Y`z$}ygK)whn?Ah0 zDBI%yHLM0tMECx=!?TUhN)|xbvH?N}nxy|>Fg^Wg&^?{r=e!(79ZBM_$O*%dSH!2BnGlfgKssd6!BD;eHnwrw_ujq@EBo=_hzB zQ=}5XAHQ%|&?c)#;%n<$b(?q@qDVDzij6DbOBt<#W5>jAnx@9xko7EE5Ok^YzvlwW zi$cLD6Z%=}iT5h=aMs46rz?q+P|gPE`m60(kJwF_6&4c5B?P18xM`FdZ>aa~nz0b1 zKa50XPX*TP!)y4&h@LM`zcWrFX!RBW=~wBetn_}+A7badqd44)zC!;- z>_)0gUR2EI;*+)KImk1QkTqg;L%f|nwjc^$9Tj+Pu^wB|T48?K8EJjyDQ<_BT)gg` zZl4A{Ia*@NFdh&qq?F@n`_TVd`Di})lD>r>$G{MOR$Lf(?&I@D`3_u@GmLufMX*Tr zO||WES?1-*j+60OGM`PZ*N}$aCl4BImUbSQ;gOBhatZ+ik|lSP#0_m?h~8ZA+^d0t z?ZCpfqZ+5_qOfY>@!PsA+T;(~rVb)aZ`-Yb$53f7l}xl>&cKz`0y#BZ!Y1@%rk0+J z8?F&`kYt~$S*$X!on5`M;2OR>qNgwPok1Y%Td&Sia;$p<&+pv<*j?XoZMQYpAhXRc zWsBNdy%njy#hQaX8Chp#f2$TFcqnDAZJBgxOsq4O!|s!_;udzO%)}ow!=}aPRzp*m zPH2{t(w#%OCsGQ&L%j?dUI;Wx1){NVZtZT#Ko7UG24K7Cq^{BYZkmVT)At?`4nWEZ z!>R@4Mf=yb8+c5cXz@-zrh_r}guoctkUt+X=n|zlKv)v>^WX_NbE*a`?F5?jm?j#> z1d3>#cbKx}LosCO4CG=$zxLvZRW)~L zwz-e_U7ACK8$aMt{uiH@!O4`690yxw>{~Y1O3-R!C!j3x#N-*N65M!SQDnl;uiCHQ z-}vP}OgK&)P`wu#U;2KRzex-m?!dsnxMOzyoXrDh z4<=TP5Uv-R>(6GagwL+|xD;Ex;k@S+F+H}%o(~o? z2fT#|7YzD!L2aiV%kFoC!zw*m~ znT2MbKD0)#VO3Q_L_!7}UuJDR`~_J`r#r8%T)*oi0&@!#gWJzM3~<{=a3jwG@G3ml zb&>SA{d@1fQ5jC`$$TdJba&iAxYT*d;~riT!zBcDC)Ic_^Vh-*I|3+3i*6*QAKm{e zv|9W}(a>FA27bF9{H(J^f7e#ee|ktsnWEps(rHMHDs^pu$BO9wa*P2WGh>VM)nK=T F{{g<{_#OZN literal 43106 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

`WZmnsu&%=aWqxz z=tU*FjGz3c=c>P#E8$%8-S&y`wGZ>WGV;7#M2|sER~e&BLZ?-#3PapJAnbMY+_jYt zq|Kbp$v06eALPw*lUVRox&jVlsQmdS63Ddf$IrYgVb_PWG|sCG(HI})R^ahAodNi~ z_Ai#V7Sx7>l|)$vnq;gn(vOeurM1VWPWQZ8;hePtENi$CNuH(UmxvTqswk27{*a4b znZfm6y8dcgy>TQ=+@X6F`rh{@H1p1$K+xV*$chiFM$2rqtg`LQg7SqDSBXsR0DT5@ zjSCb$tS>7gUrE@8IH5kqAM6cMnT*-ISqww3Ap{wQUukU&LvT8EM~{z)=LpNHC*;sp zwI`dbZnj#gJsl10!ET3PTL!ojA{D%)$EwDf?kLsQTy15r`r_U+!Ufa`$(!99r`X16 z3;vtFq^&Yp(&$>b#JVbASYY~rd(Ug4HV361Po(p*Z*y#V1QX-Tj - + - + \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index f4ebf56..163bcd9 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -19,9 +19,10 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); shape.setTexture(texture); - currentState = State::Idle; + // FIXME : Testing purposes + currentState = State::Moving; nextState = State::Idle; - target = pro_maat::GridPos(x,y); + target = pro_maat::GridPos(x+10,y); nextTarget = target; } @@ -36,7 +37,6 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) void Entity::move(Orientation orientation) { // TODO : Add speed ? - shape.setRotation(static_cast(orientation)); sf::Vector2f movementVector(0,0); switch (orientation) @@ -53,8 +53,11 @@ void Entity::move(Orientation orientation) case Orientation::West: movementVector.x = -pro_maat::pixelsPerUnit; break; + case Orientation::None: + return; } + shape.setRotation(static_cast(orientation)); shape.setPosition(shape.getPosition()+movementVector); } @@ -74,19 +77,22 @@ const State Entity::getState() const const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit - uint8_t x = (shape.getPosition().x-0.5*shape.getSize().x)/pro_maat::pixelsPerUnit; - uint8_t y = (shape.getPosition().y-0.5*shape.getSize().y)/pro_maat::pixelsPerUnit; + pro_maat::GridUnit x = shape.getPosition().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit y = shape.getPosition().y/pro_maat::pixelsPerUnit; return pro_maat::GridPos(x,y); } const std::vector Entity::getOccupiedSquares() const { std::vector occupiedSquares; + // Safe : size is a multiple of pro_maat::pixelsPerUnit - uint8_t w = shape.getSize().x/pro_maat::pixelsPerUnit; - uint8_t h = shape.getSize().y/pro_maat::pixelsPerUnit; - uint8_t x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; - uint8_t y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + pro_maat::GridUnit w = shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit h = shape.getSize().y/pro_maat::pixelsPerUnit; + pro_maat::GridUnit x = shape.getPosition().x/pro_maat::pixelsPerUnit - 0.5*w; + pro_maat::GridUnit y = shape.getPosition().y/pro_maat::pixelsPerUnit - 0.5*h; + + occupiedSquares.reserve(w*h); for(int i = 0;i getOccupiedSquares() const; - /// Position of the target of the current action on the map pro_maat::GridPos target; private: @@ -62,6 +65,7 @@ private: EntityType type; // As it contains position, size and orientation, we do not need anything more + // TODO : Maybe we need something more : lots of computations sf::RectangleShape shape; State currentState; diff --git a/src/Level.cpp b/src/Level.cpp index 470c84e..5a446b0 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -7,7 +7,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) : textures(textureStore), - size(xmlDoc.child("Level").attribute("width").as_int(),xmlDoc.child("Level").attribute("width").as_int()) + size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()) { pugi::xml_node levelNode = xmlDoc.child("Level"); for(const pugi::xml_node& child : levelNode.children()) @@ -17,7 +17,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); // Initialize the occupied squares vector with the new entity's squares - std::vector> entitySquares = entities.rbegin()->getOccupiedSquares(); + std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } @@ -62,8 +62,14 @@ void Level::runStep() case State::Idle:break; } + std::vector entitySquares = entity.getOccupiedSquares(); + + // FIXME : Very heavy memory usage and a lot of duplicates, slows down occupiedSquares.find() calls too. + // Copy the squares to the currently occupied squares : prevents moving into an entity that just moved + occupiedSquares.insert(occupiedSquares.end(),entitySquares.begin(),entitySquares.end()); + std::sort(occupiedSquares.begin(),occupiedSquares.end()); + // Moves the occupied squares from the entity to the new occupied squares vector - std::vector> entitySquares = entity.getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(newOccupiedSquares)); } @@ -72,8 +78,108 @@ void Level::runStep() std::sort(occupiedSquares.begin(),occupiedSquares.end()); } -Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign) +Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int sign) { - // TODO : A* which returns the next move - return Orientation::East; + std::set openNodes{start}; + std::set closedNodes{}; + + std::map estimatedCosts{{start,pro_maat::manhattanDistance(start,goal)*sign}}; + std::map pathCosts{{start,0}}; + std::map paths{}; + + + const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); + // Save the iterators : vector is const and .begin() and .end() might get called a lot + auto goalNeighboursBeginIterator = goalNeighbours.begin(); + auto goalNeighboursEndIterator = goalNeighbours.end(); + + + // FIXME : Find an efficient way to get rid of openNodes.find calls + // Lambda checking if the current element is also in the open nodes set + auto compWithOpen = [&openNodes](const std::pair& leftHandSide, + const std::pair& rightHandSide){ + if(openNodes.find(leftHandSide.first) == openNodes.end()) + { + return (false); + } + else if(openNodes.find(rightHandSide.first) == openNodes.end()) + { + return (true); + } + else + { + return (leftHandSide.second < rightHandSide.second); + } + }; + + + while(!openNodes.empty()) + { + // Expand from the open node with the smallest estimated cost + pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; + + if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) + { + // Trace back to the start + pro_maat::GridPos& previousNode = paths[currentNode]; + for(;paths[previousNode]!=start;previousNode = paths[previousNode]) + {} + + pro_maat::GridUnit dx = previousNode.first - start.first; + pro_maat::GridUnit dy = previousNode.second - start.second; + + if(dx < 0) + { + return(Orientation::West); + } + else if(dx > 0) + { + return(Orientation::East); + } + else if(dy < 0) + { + return(Orientation::North); + } + else if(dy > 0 ) + { + return(Orientation::South); + } + else + { + return(Orientation::None); + } + } + + openNodes.erase(currentNode); + closedNodes.insert(currentNode); + + for(pro_maat::GridPos neighbour : pro_maat::getNeighbours(currentNode,size)) + { + // Checks if node has been closed or is an obstacle + if(std::find(occupiedSquares.begin(),occupiedSquares.end(),neighbour) != occupiedSquares.end() || + closedNodes.find(neighbour) != closedNodes.end()) + { + continue; + } + + // As the neighbours are adjacent squares, distance from them is always +-1 + float newPathCost = pathCosts[currentNode] + sign; + + if(openNodes.find(neighbour) == openNodes.end()) + { + openNodes.insert(neighbour); + } + else if(newPathCost >= pathCosts[neighbour]) // If the node is open but this path is longer, ignore it + { + continue; + } + + pathCosts.insert_or_assign(neighbour,newPathCost); + estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); + auto returnPathIt = paths.insert_or_assign(neighbour,currentNode); + } + } + + // If we did not find a path, do not move + return Orientation::None; } diff --git a/src/Level.h b/src/Level.h index a975c84..7f4f8c8 100644 --- a/src/Level.h +++ b/src/Level.h @@ -25,7 +25,7 @@ public: void runStep(); private: - const sf::Vector2i size; + const pro_maat::GridPos size; std::vector entities; @@ -37,7 +37,15 @@ private: std::vector occupiedSquares; - Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos end, int sign); + /// If sign is +1, finds a path between start and goal positions. + /// If sign is -1, finds a path away from the goal position, from the starting position. + /// THIS DOES NOT HANDLE ENTITIES BIGGER THAN ONE SQUARE + /// + /// \param start Starting position + /// \param goal Goal position + /// \param sign +1 or -1, defines if we go towards or away from the goal + /// \return Orientation of the next move if successful, Orientation::None otherwise. + Orientation findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int sign); }; diff --git a/src/Utils.cpp b/src/Utils.cpp index 153f214..4e820ca 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -37,10 +37,33 @@ namespace pro_maat } } - float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide) + float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) { // The *0.01 helps with breaking ties and minimizing exploration // As per http://theory.stanford.edu/~amitp/GameProgramming/Heuristics.html#breaking-ties - return (std::abs(rightHandSide.first-leftHandSide.first)+std::abs(rightHandSide.second-leftHandSide.second))*1.01; + return (std::abs(rightHandSide.first-leftHandSide.first)+ + std::abs(rightHandSide.second-leftHandSide.second))*1.01; + } + + const std::vector getNeighbours(const pro_maat::GridPos& origin, const GridPos& gridSize) + { + std::vector neighbours{}; + neighbours.reserve(4); + + for(GridUnit i = std::max(origin.first-1,0);i<=std::min(static_cast(origin.first+1),gridSize.first);i++) + { + // Do not add the original position + if(i == origin.first) continue; + + neighbours.emplace_back(i,origin.second); + } + for(GridUnit i = std::max(origin.second-1,0);i<=std::min(static_cast(origin.second+1),gridSize.second);i++) + { + if(i == origin.second) continue; + + neighbours.emplace_back(origin.first,i); + } + + return std::move(neighbours); } } \ No newline at end of file diff --git a/src/Utils.h b/src/Utils.h index f6331c6..4491e10 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,10 +12,12 @@ namespace pro_maat { -// Used with positions on the map grid -using GridPos = std::pair; +// Used as the base of all grid based computations +using GridUnit = int16_t; +// Used when dealing with the grid representation of the map +using GridPos = std::pair; -static constexpr uint8_t pixelsPerUnit = 50; +static constexpr uint8_t pixelsPerUnit = 30; static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; @@ -23,8 +25,9 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); // Good heuristic on 4-way grids -float manhattanDistance(pro_maat::GridPos leftHandSide, pro_maat::GridPos rightHandSide); - +float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide); +/// Gets the 4 cardinal neighbours on the grid with edge checking +const std::vector getNeighbours(const GridPos& origin, const GridPos& gridSize); } #endif //PROJECT_MAAT_UTILS_H From 58757fb6d8222a3d01bda90e23db72a575655cd7 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 05:37:08 +0200 Subject: [PATCH 25/54] A* working : previousNode was initialized with one step instead of none. --- src/Entity.cpp | 10 ++++++---- src/Level.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 163bcd9..9bbb7c2 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -19,10 +19,9 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); shape.setTexture(texture); - // FIXME : Testing purposes - currentState = State::Moving; + currentState = State::Idle; nextState = State::Idle; - target = pro_maat::GridPos(x+10,y); + target = pro_maat::GridPos(x,y); nextTarget = target; } @@ -62,7 +61,10 @@ void Entity::move(Orientation orientation) } void Entity::update() -{} +{ + currentState = nextState; + target = nextTarget; +} const sf::RectangleShape& Entity::getShape() const { diff --git a/src/Level.cpp b/src/Level.cpp index 5a446b0..fdf3713 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -120,8 +120,13 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) { + if(currentNode == start) + { + return(Orientation::None); + } + // Trace back to the start - pro_maat::GridPos& previousNode = paths[currentNode]; + pro_maat::GridPos& previousNode = currentNode; for(;paths[previousNode]!=start;previousNode = paths[previousNode]) {} From ebc8d961f4506a63cf582c6d2813476752283525 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 05:37:08 +0200 Subject: [PATCH 26/54] A* working : previousNode was initialized with one step instead of none. --- src/Entity.cpp | 10 ++++++---- src/Level.cpp | 7 ++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 163bcd9..9bbb7c2 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -19,10 +19,9 @@ Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, i shape.setPosition((x+0.5*width)*pro_maat::pixelsPerUnit,(y+0.5*width)*pro_maat::pixelsPerUnit); shape.setTexture(texture); - // FIXME : Testing purposes - currentState = State::Moving; + currentState = State::Idle; nextState = State::Idle; - target = pro_maat::GridPos(x+10,y); + target = pro_maat::GridPos(x,y); nextTarget = target; } @@ -62,7 +61,10 @@ void Entity::move(Orientation orientation) } void Entity::update() -{} +{ + currentState = nextState; + target = nextTarget; +} const sf::RectangleShape& Entity::getShape() const { diff --git a/src/Level.cpp b/src/Level.cpp index 5a446b0..fdf3713 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -120,8 +120,13 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) { + if(currentNode == start) + { + return(Orientation::None); + } + // Trace back to the start - pro_maat::GridPos& previousNode = paths[currentNode]; + pro_maat::GridPos& previousNode = currentNode; for(;paths[previousNode]!=start;previousNode = paths[previousNode]) {} From 612fe9586080f2396127cfc33b0146a96c9fd84d Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 05:39:16 +0200 Subject: [PATCH 27/54] Keeping track of progression --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ded453..5056f8f 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ This game is aimed to be a puzzle game in which the player sets different laws f ## TODO - - [ ] Level + - [x] Level - [x] Structure - [x] Parsing from XML - - [ ] A* + - [x] A* - [ ] Entities - [x] Structure - [x] Parsing from XML From 9f28383d7e90dd5f0af848692384806f5b84685d Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 05:39:16 +0200 Subject: [PATCH 28/54] Keeping track of progression --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4ded453..5056f8f 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ This game is aimed to be a puzzle game in which the player sets different laws f ## TODO - - [ ] Level + - [x] Level - [x] Structure - [x] Parsing from XML - - [ ] A* + - [x] A* - [ ] Entities - [x] Structure - [x] Parsing from XML From d8e650dea1764fa11dd549f3ee6993a8e3ccef81 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 14:59:17 +0200 Subject: [PATCH 29/54] Cleaning some warnings --- src/CMakeLists.txt | 8 +++++++- src/Entity.cpp | 2 +- src/Entity.h | 2 +- src/Level.cpp | 7 ++++--- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f9b184..32421ba 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,4 +10,10 @@ target_link_libraries(engine sfml-window sfml-graphics sfml-system - pugixml) \ No newline at end of file + pugixml) + +if (CMAKE_COMPILER_IS_GNUCXX) + target_compile_options(engine PRIVATE -Wall -Wpedantic -Wextra) +elseif(MSVC) + target_compile_options(engine PRIVATE /W4) +endif() \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index 9bbb7c2..85e7bf5 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -71,7 +71,7 @@ const sf::RectangleShape& Entity::getShape() const return(shape); } -const State Entity::getState() const +State Entity::getState() const { return currentState; } diff --git a/src/Entity.h b/src/Entity.h index d737d86..1e49601 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -48,7 +48,7 @@ public: void move(Orientation orientation); void update(); - const State getState() const; + State getState() const; const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity diff --git a/src/Level.cpp b/src/Level.cpp index fdf3713..66d2cb5 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -6,8 +6,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) - : textures(textureStore), - size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()) + : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), + textures(textureStore) { pugi::xml_node levelNode = xmlDoc.child("Level"); for(const pugi::xml_node& child : levelNode.children()) @@ -45,6 +45,7 @@ void Level::runStep() case State::Moving: { heuristicSign = 1; + [[fallthrough]]; } case State::Fleeing: { @@ -181,7 +182,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int pathCosts.insert_or_assign(neighbour,newPathCost); estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); - auto returnPathIt = paths.insert_or_assign(neighbour,currentNode); + paths.insert_or_assign(neighbour,currentNode); } } From 4ed9180694cce6964f1a25b63792999a6a3fafed Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 14:59:17 +0200 Subject: [PATCH 30/54] Cleaning some warnings --- src/CMakeLists.txt | 8 +++++++- src/Entity.cpp | 2 +- src/Entity.h | 2 +- src/Level.cpp | 7 ++++--- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 3f9b184..32421ba 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,4 +10,10 @@ target_link_libraries(engine sfml-window sfml-graphics sfml-system - pugixml) \ No newline at end of file + pugixml) + +if (CMAKE_COMPILER_IS_GNUCXX) + target_compile_options(engine PRIVATE -Wall -Wpedantic -Wextra) +elseif(MSVC) + target_compile_options(engine PRIVATE /W4) +endif() \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index 9bbb7c2..85e7bf5 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -71,7 +71,7 @@ const sf::RectangleShape& Entity::getShape() const return(shape); } -const State Entity::getState() const +State Entity::getState() const { return currentState; } diff --git a/src/Entity.h b/src/Entity.h index d737d86..1e49601 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -48,7 +48,7 @@ public: void move(Orientation orientation); void update(); - const State getState() const; + State getState() const; const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity diff --git a/src/Level.cpp b/src/Level.cpp index fdf3713..66d2cb5 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -6,8 +6,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) - : textures(textureStore), - size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()) + : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), + textures(textureStore) { pugi::xml_node levelNode = xmlDoc.child("Level"); for(const pugi::xml_node& child : levelNode.children()) @@ -45,6 +45,7 @@ void Level::runStep() case State::Moving: { heuristicSign = 1; + [[fallthrough]]; } case State::Fleeing: { @@ -181,7 +182,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int pathCosts.insert_or_assign(neighbour,newPathCost); estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); - auto returnPathIt = paths.insert_or_assign(neighbour,currentNode); + paths.insert_or_assign(neighbour,currentNode); } } From 3459157921bfdfbb84b6ed80bace6e2c0e759cf4 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 15:56:54 +0200 Subject: [PATCH 31/54] Fixed x,y in Entity constructor not being pro_maat::GridUnit --- src/Entity.cpp | 2 +- src/Entity.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 85e7bf5..ee3d9f2 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -10,7 +10,7 @@ const std::map Entity::entityTypeLookup = { {"House",EntityType::House}, {"Car",EntityType::Car}}; -Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, int height) : type(type) +Entity::Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); // Sets the origin at the center of the entity diff --git a/src/Entity.h b/src/Entity.h index 1e49601..275ad11 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -42,7 +42,8 @@ class Entity { public: /// x,y, width and height are in grid coordinates - Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); + Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width = 1, + int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); void move(Orientation orientation); From febe0827adb3ba9617f00c0d0da9ddc80958d7ce Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 15:56:54 +0200 Subject: [PATCH 32/54] Fixed x,y in Entity constructor not being pro_maat::GridUnit --- src/Entity.cpp | 2 +- src/Entity.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 85e7bf5..ee3d9f2 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -10,7 +10,7 @@ const std::map Entity::entityTypeLookup = { {"House",EntityType::House}, {"Car",EntityType::Car}}; -Entity::Entity(int x, int y, EntityType type, sf::Texture* texture, int width, int height) : type(type) +Entity::Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); // Sets the origin at the center of the entity diff --git a/src/Entity.h b/src/Entity.h index 1e49601..275ad11 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -42,7 +42,8 @@ class Entity { public: /// x,y, width and height are in grid coordinates - Entity(int x, int y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); + Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width = 1, + int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); void move(Orientation orientation); From 74947ed59c0610071ff03968624fc5caca2a3b0c Mon Sep 17 00:00:00 2001 From: trotFunky Date: Sun, 9 Jun 2019 23:26:46 +0200 Subject: [PATCH 33/54] First implementation of rules TODO : - Fix target as getter (currently broken because of inheritance by rules) - Smart pointers for entity store ? --- README.md | 6 +- resources/test_level.xml | 2 +- src/CMakeLists.txt | 2 +- src/Entity.cpp | 3 + src/Entity.h | 23 +++-- src/Game.h | 4 +- src/Level.cpp | 8 +- src/Level.h | 6 +- src/Rule.cpp | 5 + src/Rule.h | 204 +++++++++++++++++++++++++++++++++++++++ src/Utils.cpp | 6 ++ src/Utils.h | 8 +- 12 files changed, 257 insertions(+), 20 deletions(-) create mode 100644 src/Rule.cpp create mode 100644 src/Rule.h diff --git a/README.md b/README.md index 5056f8f..43eb5f3 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,10 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Moving - [ ] Decorators (Rules) - [ ] Rules - - [ ] Creation - - [ ] Interaction with entities + - [x] Creation + - [x] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - - [ ] Raytrace in order to find best goal for pathfinding ? + - [x] Find optimal target for pathfinding - [ ] Graphics - [x] Scene rendering - [ ] UI diff --git a/resources/test_level.xml b/resources/test_level.xml index 0c7812f..2a7f192 100644 --- a/resources/test_level.xml +++ b/resources/test_level.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 32421ba..322c065 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h Utils.cpp) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h Utils.cpp Rule.cpp Rule.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.cpp b/src/Entity.cpp index ee3d9f2..81026a4 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -33,6 +33,9 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) entityNode.attribute("w").as_int(1), entityNode.attribute("h").as_int(1)) {} +Entity::Entity() : Entity(0,0,EntityType::Citizen,nullptr,0,0) +{} + void Entity::move(Orientation orientation) { // TODO : Add speed ? diff --git a/src/Entity.h b/src/Entity.h index 275ad11..a0cf0ac 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -45,21 +45,29 @@ public: Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); + virtual ~Entity() = default; - void move(Orientation orientation); - void update(); + virtual void move(Orientation orientation); + virtual void update(); - State getState() const; + virtual State getState() const; - const sf::RectangleShape& getShape() const; + virtual const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity - const pro_maat::GridPos getPosition() const; + virtual const pro_maat::GridPos getPosition() const; // Don't like it : iterates over every square every tick - const std::vector getOccupiedSquares() const; + virtual const std::vector getOccupiedSquares() const; + // FIXME : Replace with getter /// Position of the target of the current action on the map pro_maat::GridPos target; + +protected: + + /// Empty constructor for derived class instanciation + Entity(); + private: static const std::map entityTypeLookup; @@ -75,6 +83,9 @@ private: /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; + + template + friend class Rule; }; diff --git a/src/Game.h b/src/Game.h index aa149d7..f2ec76a 100644 --- a/src/Game.h +++ b/src/Game.h @@ -13,8 +13,6 @@ #include "Entity.h" #include "Utils.h" -// Used for convenience -using TextureStore = std::vector>; class Game { public: @@ -37,7 +35,7 @@ private: /// Store the paths to texture files const std::vector textureFiles; /// Stores pointers to textures for future use - TextureStore textures; + pro_maat::TextureStore textures; void loadTextures(); }; diff --git a/src/Level.cpp b/src/Level.cpp index 66d2cb5..2653ad5 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -5,7 +5,7 @@ #include "Level.h" -Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) +Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore) : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), textures(textureStore) { @@ -18,6 +18,10 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) // Initialize the occupied squares vector with the new entity's squares std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); + + // FIXME : For testing purposes + Rule newRule(*entities.rbegin(),entities,occupiedSquares,size); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } @@ -89,6 +93,8 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int std::map paths{}; + // TODO : Should be OK with raycasting to find goal + // FIXME : Just get to goal (Might break) const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); // Save the iterators : vector is const and .begin() and .end() might get called a lot auto goalNeighboursBeginIterator = goalNeighbours.begin(); diff --git a/src/Level.h b/src/Level.h index 7f4f8c8..f6219c6 100644 --- a/src/Level.h +++ b/src/Level.h @@ -14,12 +14,12 @@ #include "Utils.h" #include "Entity.h" +#include "Rule.h" -using TextureStore = std::vector>; class Level { public: - Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; void runStep(); @@ -29,7 +29,7 @@ private: std::vector entities; - const TextureStore& textures; + const pro_maat::TextureStore& textures; // // Pathfinding diff --git a/src/Rule.cpp b/src/Rule.cpp new file mode 100644 index 0000000..3556db6 --- /dev/null +++ b/src/Rule.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 09/06/19. +// + +#include "Rule.h" diff --git a/src/Rule.h b/src/Rule.h new file mode 100644 index 0000000..3cb0e4e --- /dev/null +++ b/src/Rule.h @@ -0,0 +1,204 @@ +// +// Created by trotfunky on 09/06/19. +// + +#ifndef PROJECT_MAAT_RULES_H +#define PROJECT_MAAT_RULES_H + +#include +#include + +#include "Entity.h" + + +/// Decorates entities with rules which will modify its behaviour +template +class Rule : public Entity +{ +public: + Rule(Entity& entity, const std::vector& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + + void update() override; + + void move(Orientation orientation) override; + State getState() const override; + const sf::RectangleShape& getShape() const override; + const pro_maat::GridPos getPosition() const override; + const std::vector getOccupiedSquares() const override; + +private: + /// Finds the closest free square adjacent to the closest target entity type. + /// \return Suitable target square or current position if none was found. + pro_maat::GridPos findTarget(); + + Entity& entity; + const std::vector& entities; + const std::vector& occupiedSquares; + + const pro_maat::GridPos& mapSize; +}; + + +template +Rule::Rule(Entity& entity, + const std::vector& entities, + const std::vector& occupiedSquares, + const pro_maat::GridPos& mapSize) + : entity(entity), + entities(entities), + occupiedSquares(occupiedSquares), + mapSize(mapSize) +{} + +template +void Rule::update() +{ + if constexpr (targetState == State::Moving || targetState == State::Fleeing) + { + entity.nextTarget = findTarget(); + if(entity.nextTarget == entity.getPosition()) + { + entity.nextState = State::Idle; + } + else + { + entity.nextState = targetState; + } + entity.update(); + } + else if constexpr (targetState == State::Waiting) + { + entity.nextTarget = entity.getPosition(); + entity.nextState = State::Waiting; + entity.update(); + } + else + { + entity.nextTarget = entity.getPosition(); + entity.nextState = State::Idle; + entity.update(); + } +} + +template +pro_maat::GridPos Rule::findTarget() +{ + std::vector sortedEntities{}; + sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + + // Compares entities via their distance to the current entity + auto distanceSortEntities = [this](const Entity& leftHandSide, const Entity& rightHandSide){ + return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide.getPosition()) < + pro_maat::manhattanDistance(entity.getPosition(),rightHandSide.getPosition())); + }; + + // Same but with grid coordinates + auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity.getPosition(),rightHandSide)); + }; + + // Get the smallest, non-occupied, inside the map square + auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + // If the left hand side operand is not in the map or occupied, it is not valid + if(!pro_maat::isInMap(leftHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + { + return(true); + } + else + { + return(leftHandSide < rightHandSide); + }}; + + + // Sort in order to minimize entities to process + std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); + + for(const Entity& processingEntity : sortedEntities) + { + std::vector potentialTargets{}; + + pro_maat::GridUnit entityWidth = processingEntity.shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit entityHeight = processingEntity.shape.getSize().y/pro_maat::pixelsPerUnit; + + potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); + + // Computes the top left corner of the entity + pro_maat::GridPos topLeftCorner = processingEntity.getPosition(); + topLeftCorner.first -= entityWidth*0.5 - 1; + topLeftCorner.second -= entityHeight*0.5 - 1; + + + // Get all the top and bottom adjacent squares + for(int i = 0;i +void Rule::move(Orientation orientation) +{ + entity.move(orientation); +} + +template +State Rule::getState() const +{ + return entity.getState(); +} + +template +const sf::RectangleShape& Rule::getShape() const +{ + return entity.getShape(); +} + +template +const pro_maat::GridPos Rule::getPosition() const +{ + return entity.getPosition(); +} + +template +const std::vector Rule::getOccupiedSquares() const +{ + return entity.getOccupiedSquares(); +} + + +#endif //PROJECT_MAAT_RULES_H diff --git a/src/Utils.cpp b/src/Utils.cpp index 4e820ca..23d78d4 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -37,6 +37,12 @@ namespace pro_maat } } + bool isInMap(const GridPos& square, const GridPos& gridSize) + { + return (square.first < 0 || square.second < 0 || + square.first >= gridSize.first || square.second >= gridSize.second); + } + float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) { // The *0.01 helps with breaking ties and minimizing exploration diff --git a/src/Utils.h b/src/Utils.h index 4491e10..af3dfe3 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,9 +12,11 @@ namespace pro_maat { -// Used as the base of all grid based computations +/// Used for convenience +using TextureStore = std::vector>; +/// Used as the base of all grid based computations using GridUnit = int16_t; -// Used when dealing with the grid representation of the map +/// Used when dealing with the grid representation of the map using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 30; @@ -24,6 +26,8 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); +/// Test if the coordinate is inside the map or not +bool isInMap(const GridPos& square, const GridPos& gridSize); // Good heuristic on 4-way grids float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide); /// Gets the 4 cardinal neighbours on the grid with edge checking From 08e922b0d4b9bcf2fa54c96fcdd1abb46deef967 Mon Sep 17 00:00:00 2001 From: Teo-CD Date: Sun, 9 Jun 2019 23:26:46 +0200 Subject: [PATCH 34/54] First implementation of rules TODO : - Fix target as getter (currently broken because of inheritance by rules) - Smart pointers for entity store ? --- README.md | 6 +- resources/test_level.xml | 2 +- src/CMakeLists.txt | 2 +- src/Entity.cpp | 3 + src/Entity.h | 23 +++-- src/Game.h | 4 +- src/Level.cpp | 8 +- src/Level.h | 6 +- src/Rule.cpp | 5 + src/Rule.h | 204 +++++++++++++++++++++++++++++++++++++++ src/Utils.cpp | 6 ++ src/Utils.h | 8 +- 12 files changed, 257 insertions(+), 20 deletions(-) create mode 100644 src/Rule.cpp create mode 100644 src/Rule.h diff --git a/README.md b/README.md index 5056f8f..43eb5f3 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,10 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Moving - [ ] Decorators (Rules) - [ ] Rules - - [ ] Creation - - [ ] Interaction with entities + - [x] Creation + - [x] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - - [ ] Raytrace in order to find best goal for pathfinding ? + - [x] Find optimal target for pathfinding - [ ] Graphics - [x] Scene rendering - [ ] UI diff --git a/resources/test_level.xml b/resources/test_level.xml index 0c7812f..2a7f192 100644 --- a/resources/test_level.xml +++ b/resources/test_level.xml @@ -3,5 +3,5 @@ - + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 32421ba..322c065 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -4,7 +4,7 @@ project(project_maat) set(CMAKE_CXX_STANDARD 17) set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) -add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h Utils.cpp) +add_library(engine Level.cpp Level.h Entity.cpp Entity.h Game.cpp Game.h Utils.h Utils.h Utils.cpp Rule.cpp Rule.h) target_link_libraries(engine sfml-window diff --git a/src/Entity.cpp b/src/Entity.cpp index ee3d9f2..81026a4 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -33,6 +33,9 @@ Entity::Entity(const pugi::xml_node& entityNode, sf::Texture* texture) entityNode.attribute("w").as_int(1), entityNode.attribute("h").as_int(1)) {} +Entity::Entity() : Entity(0,0,EntityType::Citizen,nullptr,0,0) +{} + void Entity::move(Orientation orientation) { // TODO : Add speed ? diff --git a/src/Entity.h b/src/Entity.h index 275ad11..a0cf0ac 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -45,21 +45,29 @@ public: Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width = 1, int height = 1); explicit Entity(const pugi::xml_node& entityNode, sf::Texture* texture); + virtual ~Entity() = default; - void move(Orientation orientation); - void update(); + virtual void move(Orientation orientation); + virtual void update(); - State getState() const; + virtual State getState() const; - const sf::RectangleShape& getShape() const; + virtual const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity - const pro_maat::GridPos getPosition() const; + virtual const pro_maat::GridPos getPosition() const; // Don't like it : iterates over every square every tick - const std::vector getOccupiedSquares() const; + virtual const std::vector getOccupiedSquares() const; + // FIXME : Replace with getter /// Position of the target of the current action on the map pro_maat::GridPos target; + +protected: + + /// Empty constructor for derived class instanciation + Entity(); + private: static const std::map entityTypeLookup; @@ -75,6 +83,9 @@ private: /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; + + template + friend class Rule; }; diff --git a/src/Game.h b/src/Game.h index aa149d7..f2ec76a 100644 --- a/src/Game.h +++ b/src/Game.h @@ -13,8 +13,6 @@ #include "Entity.h" #include "Utils.h" -// Used for convenience -using TextureStore = std::vector>; class Game { public: @@ -37,7 +35,7 @@ private: /// Store the paths to texture files const std::vector textureFiles; /// Stores pointers to textures for future use - TextureStore textures; + pro_maat::TextureStore textures; void loadTextures(); }; diff --git a/src/Level.cpp b/src/Level.cpp index 66d2cb5..2653ad5 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -5,7 +5,7 @@ #include "Level.h" -Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) +Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore) : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), textures(textureStore) { @@ -18,6 +18,10 @@ Level::Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore) // Initialize the occupied squares vector with the new entity's squares std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); + + // FIXME : For testing purposes + Rule newRule(*entities.rbegin(),entities,occupiedSquares,size); + std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } @@ -89,6 +93,8 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int std::map paths{}; + // TODO : Should be OK with raycasting to find goal + // FIXME : Just get to goal (Might break) const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); // Save the iterators : vector is const and .begin() and .end() might get called a lot auto goalNeighboursBeginIterator = goalNeighbours.begin(); diff --git a/src/Level.h b/src/Level.h index 7f4f8c8..f6219c6 100644 --- a/src/Level.h +++ b/src/Level.h @@ -14,12 +14,12 @@ #include "Utils.h" #include "Entity.h" +#include "Rule.h" -using TextureStore = std::vector>; class Level { public: - Level(const pugi::xml_document& xmlDoc, const TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); void render(sf::RenderWindow& renderWindow) const; void runStep(); @@ -29,7 +29,7 @@ private: std::vector entities; - const TextureStore& textures; + const pro_maat::TextureStore& textures; // // Pathfinding diff --git a/src/Rule.cpp b/src/Rule.cpp new file mode 100644 index 0000000..3556db6 --- /dev/null +++ b/src/Rule.cpp @@ -0,0 +1,5 @@ +// +// Created by trotfunky on 09/06/19. +// + +#include "Rule.h" diff --git a/src/Rule.h b/src/Rule.h new file mode 100644 index 0000000..3cb0e4e --- /dev/null +++ b/src/Rule.h @@ -0,0 +1,204 @@ +// +// Created by trotfunky on 09/06/19. +// + +#ifndef PROJECT_MAAT_RULES_H +#define PROJECT_MAAT_RULES_H + +#include +#include + +#include "Entity.h" + + +/// Decorates entities with rules which will modify its behaviour +template +class Rule : public Entity +{ +public: + Rule(Entity& entity, const std::vector& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + + void update() override; + + void move(Orientation orientation) override; + State getState() const override; + const sf::RectangleShape& getShape() const override; + const pro_maat::GridPos getPosition() const override; + const std::vector getOccupiedSquares() const override; + +private: + /// Finds the closest free square adjacent to the closest target entity type. + /// \return Suitable target square or current position if none was found. + pro_maat::GridPos findTarget(); + + Entity& entity; + const std::vector& entities; + const std::vector& occupiedSquares; + + const pro_maat::GridPos& mapSize; +}; + + +template +Rule::Rule(Entity& entity, + const std::vector& entities, + const std::vector& occupiedSquares, + const pro_maat::GridPos& mapSize) + : entity(entity), + entities(entities), + occupiedSquares(occupiedSquares), + mapSize(mapSize) +{} + +template +void Rule::update() +{ + if constexpr (targetState == State::Moving || targetState == State::Fleeing) + { + entity.nextTarget = findTarget(); + if(entity.nextTarget == entity.getPosition()) + { + entity.nextState = State::Idle; + } + else + { + entity.nextState = targetState; + } + entity.update(); + } + else if constexpr (targetState == State::Waiting) + { + entity.nextTarget = entity.getPosition(); + entity.nextState = State::Waiting; + entity.update(); + } + else + { + entity.nextTarget = entity.getPosition(); + entity.nextState = State::Idle; + entity.update(); + } +} + +template +pro_maat::GridPos Rule::findTarget() +{ + std::vector sortedEntities{}; + sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + + // Compares entities via their distance to the current entity + auto distanceSortEntities = [this](const Entity& leftHandSide, const Entity& rightHandSide){ + return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide.getPosition()) < + pro_maat::manhattanDistance(entity.getPosition(),rightHandSide.getPosition())); + }; + + // Same but with grid coordinates + auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity.getPosition(),rightHandSide)); + }; + + // Get the smallest, non-occupied, inside the map square + auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + // If the left hand side operand is not in the map or occupied, it is not valid + if(!pro_maat::isInMap(leftHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + { + return(true); + } + else + { + return(leftHandSide < rightHandSide); + }}; + + + // Sort in order to minimize entities to process + std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); + + for(const Entity& processingEntity : sortedEntities) + { + std::vector potentialTargets{}; + + pro_maat::GridUnit entityWidth = processingEntity.shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit entityHeight = processingEntity.shape.getSize().y/pro_maat::pixelsPerUnit; + + potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); + + // Computes the top left corner of the entity + pro_maat::GridPos topLeftCorner = processingEntity.getPosition(); + topLeftCorner.first -= entityWidth*0.5 - 1; + topLeftCorner.second -= entityHeight*0.5 - 1; + + + // Get all the top and bottom adjacent squares + for(int i = 0;i +void Rule::move(Orientation orientation) +{ + entity.move(orientation); +} + +template +State Rule::getState() const +{ + return entity.getState(); +} + +template +const sf::RectangleShape& Rule::getShape() const +{ + return entity.getShape(); +} + +template +const pro_maat::GridPos Rule::getPosition() const +{ + return entity.getPosition(); +} + +template +const std::vector Rule::getOccupiedSquares() const +{ + return entity.getOccupiedSquares(); +} + + +#endif //PROJECT_MAAT_RULES_H diff --git a/src/Utils.cpp b/src/Utils.cpp index 4e820ca..23d78d4 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -37,6 +37,12 @@ namespace pro_maat } } + bool isInMap(const GridPos& square, const GridPos& gridSize) + { + return (square.first < 0 || square.second < 0 || + square.first >= gridSize.first || square.second >= gridSize.second); + } + float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) { // The *0.01 helps with breaking ties and minimizing exploration diff --git a/src/Utils.h b/src/Utils.h index 4491e10..af3dfe3 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -12,9 +12,11 @@ namespace pro_maat { -// Used as the base of all grid based computations +/// Used for convenience +using TextureStore = std::vector>; +/// Used as the base of all grid based computations using GridUnit = int16_t; -// Used when dealing with the grid representation of the map +/// Used when dealing with the grid representation of the map using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 30; @@ -24,6 +26,8 @@ static constexpr char fontFolder[] = "resources/"; void errorWindow(const std::string& error); +/// Test if the coordinate is inside the map or not +bool isInMap(const GridPos& square, const GridPos& gridSize); // Good heuristic on 4-way grids float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide); /// Gets the 4 cardinal neighbours on the grid with edge checking From 3e48c50002962b45cfdfc855cac0e4225f20a51f Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 01:58:14 +0200 Subject: [PATCH 35/54] Fixed pathfinding for usage with Rule::findTarget() Fixed Entity::target being public --- src/Entity.cpp | 5 +++++ src/Entity.h | 8 ++++---- src/Level.cpp | 14 +++----------- src/Rule.h | 12 +++++++++++- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 81026a4..987eaa3 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -79,6 +79,11 @@ State Entity::getState() const return currentState; } +pro_maat::GridPos Entity::getTarget() const +{ + return target; +} + const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit diff --git a/src/Entity.h b/src/Entity.h index a0cf0ac..081f956 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -51,6 +51,7 @@ public: virtual void update(); virtual State getState() const; + virtual pro_maat::GridPos getTarget() const; virtual const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity @@ -59,15 +60,12 @@ public: // Don't like it : iterates over every square every tick virtual const std::vector getOccupiedSquares() const; - // FIXME : Replace with getter - /// Position of the target of the current action on the map - pro_maat::GridPos target; protected: - /// Empty constructor for derived class instanciation Entity(); + private: static const std::map entityTypeLookup; @@ -81,6 +79,8 @@ private: /// Used with rules : last to update has priority State nextState; + /// Target position on the map of the current action + pro_maat::GridPos target; /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; diff --git a/src/Level.cpp b/src/Level.cpp index 2653ad5..2e4a2cb 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -57,9 +57,9 @@ void Level::runStep() { heuristicSign = -1; } - if(entity.target != entity.getPosition()) + if(entity.getTarget() != entity.getPosition()) { - entity.move(findPath(entity.getPosition(),entity.target,heuristicSign)); + entity.move(findPath(entity.getPosition(),entity.getTarget(),heuristicSign)); } break; } @@ -93,14 +93,6 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int std::map paths{}; - // TODO : Should be OK with raycasting to find goal - // FIXME : Just get to goal (Might break) - const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); - // Save the iterators : vector is const and .begin() and .end() might get called a lot - auto goalNeighboursBeginIterator = goalNeighbours.begin(); - auto goalNeighboursEndIterator = goalNeighbours.end(); - - // FIXME : Find an efficient way to get rid of openNodes.find calls // Lambda checking if the current element is also in the open nodes set auto compWithOpen = [&openNodes](const std::pair& leftHandSide, @@ -125,7 +117,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // Expand from the open node with the smallest estimated cost pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; - if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) + if(currentNode == goal) { if(currentNode == start) { diff --git a/src/Rule.h b/src/Rule.h index 3cb0e4e..fae04f9 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -13,17 +13,21 @@ /// Decorates entities with rules which will modify its behaviour template -class Rule : public Entity +class Rule : private Entity { public: Rule(Entity& entity, const std::vector& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + /// Update according to the targetState and targetType void update() override; + // Simply delegate the following function calls to the original entity + void move(Orientation orientation) override; State getState() const override; const sf::RectangleShape& getShape() const override; + pro_maat::GridPos getTarget() const override; const pro_maat::GridPos getPosition() const override; const std::vector getOccupiedSquares() const override; @@ -188,6 +192,12 @@ const sf::RectangleShape& Rule::getShape() const return entity.getShape(); } +template +pro_maat::GridPos Rule::getTarget() const +{ + return entity.getTarget(); +} + template const pro_maat::GridPos Rule::getPosition() const { From 4ab83f11245141883edddd12a8e775f785421c84 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 01:58:14 +0200 Subject: [PATCH 36/54] Fixed pathfinding for usage with Rule::findTarget() Fixed Entity::target being public --- src/Entity.cpp | 5 +++++ src/Entity.h | 8 ++++---- src/Level.cpp | 14 +++----------- src/Rule.h | 12 +++++++++++- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/Entity.cpp b/src/Entity.cpp index 81026a4..987eaa3 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -79,6 +79,11 @@ State Entity::getState() const return currentState; } +pro_maat::GridPos Entity::getTarget() const +{ + return target; +} + const pro_maat::GridPos Entity::getPosition() const { // Safe : size is a multiple of pro_maat::pixelsPerUnit diff --git a/src/Entity.h b/src/Entity.h index a0cf0ac..081f956 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -51,6 +51,7 @@ public: virtual void update(); virtual State getState() const; + virtual pro_maat::GridPos getTarget() const; virtual const sf::RectangleShape& getShape() const; /// Returns the grid coordinates at the center of the entity @@ -59,15 +60,12 @@ public: // Don't like it : iterates over every square every tick virtual const std::vector getOccupiedSquares() const; - // FIXME : Replace with getter - /// Position of the target of the current action on the map - pro_maat::GridPos target; protected: - /// Empty constructor for derived class instanciation Entity(); + private: static const std::map entityTypeLookup; @@ -81,6 +79,8 @@ private: /// Used with rules : last to update has priority State nextState; + /// Target position on the map of the current action + pro_maat::GridPos target; /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; diff --git a/src/Level.cpp b/src/Level.cpp index 2653ad5..2e4a2cb 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -57,9 +57,9 @@ void Level::runStep() { heuristicSign = -1; } - if(entity.target != entity.getPosition()) + if(entity.getTarget() != entity.getPosition()) { - entity.move(findPath(entity.getPosition(),entity.target,heuristicSign)); + entity.move(findPath(entity.getPosition(),entity.getTarget(),heuristicSign)); } break; } @@ -93,14 +93,6 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int std::map paths{}; - // TODO : Should be OK with raycasting to find goal - // FIXME : Just get to goal (Might break) - const std::vector goalNeighbours = pro_maat::getNeighbours(goal,size); - // Save the iterators : vector is const and .begin() and .end() might get called a lot - auto goalNeighboursBeginIterator = goalNeighbours.begin(); - auto goalNeighboursEndIterator = goalNeighbours.end(); - - // FIXME : Find an efficient way to get rid of openNodes.find calls // Lambda checking if the current element is also in the open nodes set auto compWithOpen = [&openNodes](const std::pair& leftHandSide, @@ -125,7 +117,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // Expand from the open node with the smallest estimated cost pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; - if(std::find(goalNeighboursBeginIterator,goalNeighboursEndIterator,currentNode) != goalNeighboursEndIterator) + if(currentNode == goal) { if(currentNode == start) { diff --git a/src/Rule.h b/src/Rule.h index 3cb0e4e..fae04f9 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -13,17 +13,21 @@ /// Decorates entities with rules which will modify its behaviour template -class Rule : public Entity +class Rule : private Entity { public: Rule(Entity& entity, const std::vector& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + /// Update according to the targetState and targetType void update() override; + // Simply delegate the following function calls to the original entity + void move(Orientation orientation) override; State getState() const override; const sf::RectangleShape& getShape() const override; + pro_maat::GridPos getTarget() const override; const pro_maat::GridPos getPosition() const override; const std::vector getOccupiedSquares() const override; @@ -188,6 +192,12 @@ const sf::RectangleShape& Rule::getShape() const return entity.getShape(); } +template +pro_maat::GridPos Rule::getTarget() const +{ + return entity.getTarget(); +} + template const pro_maat::GridPos Rule::getPosition() const { From 4d5be1744f0c7995ce365c2370e2dbc92446307c Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 04:04:03 +0200 Subject: [PATCH 37/54] Rules are not template anymore (it was dumb) Entities are now managed with unique_ptr to allow polymorphism (and good memory management) Rules can be added via the Level object Fixed Rule::findTarget not caring about targetType TODO : Find why pathfinding (unlikely) or findTarget (most likely) is broken --- README.md | 6 +- src/Entity.cpp | 5 ++ src/Entity.h | 2 +- src/Level.cpp | 38 ++++++---- src/Level.h | 9 ++- src/Rule.cpp | 167 +++++++++++++++++++++++++++++++++++++++++++ src/Rule.h | 187 ++++--------------------------------------------- 7 files changed, 221 insertions(+), 193 deletions(-) diff --git a/README.md b/README.md index 43eb5f3..cbc732f 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Structure - [x] Parsing from XML - [x] A* - - [ ] Entities + - [x] Entities - [x] Structure - [x] Parsing from XML - [x] Moving - - [ ] Decorators (Rules) + - [x] Decorators (Rules) - [ ] Rules - [x] Creation - [x] Interaction with entities @@ -32,7 +32,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Gameloop - [ ] Transition from starting to running state and vice-versa - [ ] Entity behaviour evolution - - [ ] Rule application + - [x] Rule application - [ ] Saving state through serialization ? - [ ] UML - [ ] Unit tests \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index 987eaa3..11cc6c6 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -79,6 +79,11 @@ State Entity::getState() const return currentState; } +EntityType Entity::getType() const +{ + return type; +} + pro_maat::GridPos Entity::getTarget() const { return target; diff --git a/src/Entity.h b/src/Entity.h index 081f956..3765a09 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -51,6 +51,7 @@ public: virtual void update(); virtual State getState() const; + virtual EntityType getType() const; virtual pro_maat::GridPos getTarget() const; virtual const sf::RectangleShape& getShape() const; @@ -84,7 +85,6 @@ private: /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; - template friend class Rule; }; diff --git a/src/Level.cpp b/src/Level.cpp index 2e4a2cb..65633b4 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,24 +14,34 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); + entities.emplace_back(std::make_unique(child,textures.at(child.attribute("textureId").as_int(0)).get())); // Initialize the occupied squares vector with the new entity's squares - std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); - - // FIXME : For testing purposes - Rule newRule(*entities.rbegin(),entities,occupiedSquares,size); - + std::vector entitySquares = entities.rbegin()->get()->getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } + + // FIXME : For testing purposes + addRule(EntityType::Significant,State::Moving,EntityType::Citizen); +} + +void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) +{ + for(auto& entity : entities) + { + if(entity->getType() == affectedEntities) + { + entity = std::make_unique(entity.release(),targetState,targetEntities,entities,occupiedSquares,size); + } + } } void Level::render(sf::RenderWindow& renderWindow) const { - for(const Entity& entity : entities) + for(const auto& entity : entities) { - renderWindow.draw(entity.getShape()); + renderWindow.draw(entity->getShape()); } } @@ -40,11 +50,11 @@ void Level::runStep() std::vector newOccupiedSquares{}; newOccupiedSquares.reserve(occupiedSquares.size()); - for(Entity& entity: entities) + for(auto& entity: entities) { - entity.update(); + entity->update(); int heuristicSign = 0; - switch (entity.getState()) + switch (entity->getState()) { case State::Moving: { @@ -57,9 +67,9 @@ void Level::runStep() { heuristicSign = -1; } - if(entity.getTarget() != entity.getPosition()) + if(entity->getTarget() != entity->getPosition()) { - entity.move(findPath(entity.getPosition(),entity.getTarget(),heuristicSign)); + entity->move(findPath(entity->getPosition(),entity->getTarget(),heuristicSign)); } break; } @@ -67,7 +77,7 @@ void Level::runStep() case State::Idle:break; } - std::vector entitySquares = entity.getOccupiedSquares(); + std::vector entitySquares = entity->getOccupiedSquares(); // FIXME : Very heavy memory usage and a lot of duplicates, slows down occupiedSquares.find() calls too. // Copy the squares to the currently occupied squares : prevents moving into an entity that just moved diff --git a/src/Level.h b/src/Level.h index f6219c6..0171da9 100644 --- a/src/Level.h +++ b/src/Level.h @@ -21,13 +21,20 @@ class Level { public: Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); + /// Add a new rule on top of existing ones, thus with a lower priority + /// + /// \param affectedEntities Entities to which the rule will be applied + /// \param targetState What action will the rule perform + /// \param targetEntities Which entities will be targeted + void addRule(EntityType affectedEntities, State targetState, EntityType targetEntities); + void render(sf::RenderWindow& renderWindow) const; void runStep(); private: const pro_maat::GridPos size; - std::vector entities; + std::vector> entities; const pro_maat::TextureStore& textures; diff --git a/src/Rule.cpp b/src/Rule.cpp index 3556db6..50b5c1b 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -3,3 +3,170 @@ // #include "Rule.h" + + +Rule::Rule(Entity* entity, State targetState, EntityType targetType, + std::vector>& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize) + : entity(entity), + targetState(targetState), + targetType(targetType), + entities(entities), + occupiedSquares(occupiedSquares), + mapSize(mapSize) +{} + +void Rule::update() +{ + if (targetState == State::Moving || targetState == State::Fleeing) + { + entity->nextTarget = findTarget(); + if(entity->nextTarget == entity->getPosition()) + { + entity->nextState = State::Idle; + } + else + { + entity->nextState = targetState; + } + entity->update(); + } + else if (targetState == State::Waiting) + { + entity->nextTarget = entity->getPosition(); + entity->nextState = State::Waiting; + entity->update(); + } + else + { + entity->nextTarget = entity->getPosition(); + entity->nextState = State::Idle; + entity->update(); + } +} + +pro_maat::GridPos Rule::findTarget() +{ + // TODO : Sorting in place, consider using shared_ptr ? +// std::vector sortedEntities{}; +// sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + + // Compares entities via their distance to the current entity + auto distanceSortEntities = [this](const std::unique_ptr& leftHandSide, const std::unique_ptr& rightHandSide){ + return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide->getPosition()) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide->getPosition())); + }; + + // Same but with grid coordinates + auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide)); + }; + + // Get the smallest, non-occupied, inside the map square + auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + // If the left hand side operand is not in the map or occupied, it is not valid + if(!pro_maat::isInMap(leftHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + { + return(true); + } + else + { + return(leftHandSide < rightHandSide); + }}; + + + // Sort in order to minimize entities to process + std::sort(entities.begin(),entities.end(),distanceSortEntities); + + for(const auto& processingEntity : entities) + { + if(processingEntity->getType() != targetType) continue; + + std::vector potentialTargets{}; + + pro_maat::GridUnit entityWidth = processingEntity->shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit entityHeight = processingEntity->shape.getSize().y/pro_maat::pixelsPerUnit; + + potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); + + // Computes the top left corner of the entity + pro_maat::GridPos topLeftCorner = processingEntity->getPosition(); + topLeftCorner.first -= entityWidth*0.5 - 1; + topLeftCorner.second -= entityHeight*0.5 - 1; + + + // Get all the top and bottom adjacent squares + for(int i = 0;igetPosition()); +} + + +//////////////////////// +// // +// Delegate overrides // +// // +//////////////////////// + + +void Rule::move(Orientation orientation) +{ + entity->move(orientation); +} + +State Rule::getState() const +{ + return entity->getState(); +} + +EntityType Rule::getType() const +{ + return entity->getType(); +} + +const sf::RectangleShape& Rule::getShape() const +{ + return entity->getShape(); +} + +pro_maat::GridPos Rule::getTarget() const +{ + return entity->getTarget(); +} + +const pro_maat::GridPos Rule::getPosition() const +{ + return entity->getPosition(); +} + +const std::vector Rule::getOccupiedSquares() const +{ + return entity->getOccupiedSquares(); +} diff --git a/src/Rule.h b/src/Rule.h index fae04f9..4215a51 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -12,12 +12,12 @@ /// Decorates entities with rules which will modify its behaviour -template -class Rule : private Entity +class Rule : public Entity { public: - Rule(Entity& entity, const std::vector& entities, - const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + // The Rule object takes ownership of the Entity* + Rule(Entity* entity, State targetState, EntityType targetType, std::vector>& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); /// Update according to the targetState and targetType void update() override; @@ -26,6 +26,7 @@ public: void move(Orientation orientation) override; State getState() const override; + EntityType getType() const override; const sf::RectangleShape& getShape() const override; pro_maat::GridPos getTarget() const override; const pro_maat::GridPos getPosition() const override; @@ -33,182 +34,20 @@ public: private: /// Finds the closest free square adjacent to the closest target entity type. + /// Currently not thread-safe ! /// \return Suitable target square or current position if none was found. pro_maat::GridPos findTarget(); - Entity& entity; - const std::vector& entities; + std::unique_ptr entity; + + State targetState; + EntityType targetType; + + // TOOD : dropped const-qualifier. Consider using shared_ptr ? + std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; }; - -template -Rule::Rule(Entity& entity, - const std::vector& entities, - const std::vector& occupiedSquares, - const pro_maat::GridPos& mapSize) - : entity(entity), - entities(entities), - occupiedSquares(occupiedSquares), - mapSize(mapSize) -{} - -template -void Rule::update() -{ - if constexpr (targetState == State::Moving || targetState == State::Fleeing) - { - entity.nextTarget = findTarget(); - if(entity.nextTarget == entity.getPosition()) - { - entity.nextState = State::Idle; - } - else - { - entity.nextState = targetState; - } - entity.update(); - } - else if constexpr (targetState == State::Waiting) - { - entity.nextTarget = entity.getPosition(); - entity.nextState = State::Waiting; - entity.update(); - } - else - { - entity.nextTarget = entity.getPosition(); - entity.nextState = State::Idle; - entity.update(); - } -} - -template -pro_maat::GridPos Rule::findTarget() -{ - std::vector sortedEntities{}; - sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); - - // Compares entities via their distance to the current entity - auto distanceSortEntities = [this](const Entity& leftHandSide, const Entity& rightHandSide){ - return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide.getPosition()) < - pro_maat::manhattanDistance(entity.getPosition(),rightHandSide.getPosition())); - }; - - // Same but with grid coordinates - auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ - return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide) < - pro_maat::manhattanDistance(entity.getPosition(),rightHandSide)); - }; - - // Get the smallest, non-occupied, inside the map square - auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ - // If the left hand side operand is not in the map or occupied, it is not valid - if(!pro_maat::isInMap(leftHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) - { - return(false); - } - else if(!pro_maat::isInMap(rightHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) - { - return(true); - } - else - { - return(leftHandSide < rightHandSide); - }}; - - - // Sort in order to minimize entities to process - std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); - - for(const Entity& processingEntity : sortedEntities) - { - std::vector potentialTargets{}; - - pro_maat::GridUnit entityWidth = processingEntity.shape.getSize().x/pro_maat::pixelsPerUnit; - pro_maat::GridUnit entityHeight = processingEntity.shape.getSize().y/pro_maat::pixelsPerUnit; - - potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); - - // Computes the top left corner of the entity - pro_maat::GridPos topLeftCorner = processingEntity.getPosition(); - topLeftCorner.first -= entityWidth*0.5 - 1; - topLeftCorner.second -= entityHeight*0.5 - 1; - - - // Get all the top and bottom adjacent squares - for(int i = 0;i -void Rule::move(Orientation orientation) -{ - entity.move(orientation); -} - -template -State Rule::getState() const -{ - return entity.getState(); -} - -template -const sf::RectangleShape& Rule::getShape() const -{ - return entity.getShape(); -} - -template -pro_maat::GridPos Rule::getTarget() const -{ - return entity.getTarget(); -} - -template -const pro_maat::GridPos Rule::getPosition() const -{ - return entity.getPosition(); -} - -template -const std::vector Rule::getOccupiedSquares() const -{ - return entity.getOccupiedSquares(); -} - - #endif //PROJECT_MAAT_RULES_H From c94fc5a0be26d4d5b79a390cd43b223a8fb96115 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 04:04:03 +0200 Subject: [PATCH 38/54] Rules are not template anymore (it was dumb) Entities are now managed with unique_ptr to allow polymorphism (and good memory management) Rules can be added via the Level object Fixed Rule::findTarget not caring about targetType TODO : Find why pathfinding (unlikely) or findTarget (most likely) is broken --- README.md | 6 +- src/Entity.cpp | 5 ++ src/Entity.h | 2 +- src/Level.cpp | 38 ++++++---- src/Level.h | 9 ++- src/Rule.cpp | 167 +++++++++++++++++++++++++++++++++++++++++++ src/Rule.h | 187 ++++--------------------------------------------- 7 files changed, 221 insertions(+), 193 deletions(-) diff --git a/README.md b/README.md index 43eb5f3..cbc732f 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,11 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Structure - [x] Parsing from XML - [x] A* - - [ ] Entities + - [x] Entities - [x] Structure - [x] Parsing from XML - [x] Moving - - [ ] Decorators (Rules) + - [x] Decorators (Rules) - [ ] Rules - [x] Creation - [x] Interaction with entities @@ -32,7 +32,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Gameloop - [ ] Transition from starting to running state and vice-versa - [ ] Entity behaviour evolution - - [ ] Rule application + - [x] Rule application - [ ] Saving state through serialization ? - [ ] UML - [ ] Unit tests \ No newline at end of file diff --git a/src/Entity.cpp b/src/Entity.cpp index 987eaa3..11cc6c6 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -79,6 +79,11 @@ State Entity::getState() const return currentState; } +EntityType Entity::getType() const +{ + return type; +} + pro_maat::GridPos Entity::getTarget() const { return target; diff --git a/src/Entity.h b/src/Entity.h index 081f956..3765a09 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -51,6 +51,7 @@ public: virtual void update(); virtual State getState() const; + virtual EntityType getType() const; virtual pro_maat::GridPos getTarget() const; virtual const sf::RectangleShape& getShape() const; @@ -84,7 +85,6 @@ private: /// Used with rules : last to update has priority pro_maat::GridPos nextTarget; - template friend class Rule; }; diff --git a/src/Level.cpp b/src/Level.cpp index 2e4a2cb..65633b4 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,24 +14,34 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(child,textures.at(child.attribute("textureId").as_int(0)).get()); + entities.emplace_back(std::make_unique(child,textures.at(child.attribute("textureId").as_int(0)).get())); // Initialize the occupied squares vector with the new entity's squares - std::vector entitySquares = entities.rbegin()->getOccupiedSquares(); - - // FIXME : For testing purposes - Rule newRule(*entities.rbegin(),entities,occupiedSquares,size); - + std::vector entitySquares = entities.rbegin()->get()->getOccupiedSquares(); std::move(entitySquares.begin(),entitySquares.end(),std::back_inserter(occupiedSquares)); } } + + // FIXME : For testing purposes + addRule(EntityType::Significant,State::Moving,EntityType::Citizen); +} + +void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) +{ + for(auto& entity : entities) + { + if(entity->getType() == affectedEntities) + { + entity = std::make_unique(entity.release(),targetState,targetEntities,entities,occupiedSquares,size); + } + } } void Level::render(sf::RenderWindow& renderWindow) const { - for(const Entity& entity : entities) + for(const auto& entity : entities) { - renderWindow.draw(entity.getShape()); + renderWindow.draw(entity->getShape()); } } @@ -40,11 +50,11 @@ void Level::runStep() std::vector newOccupiedSquares{}; newOccupiedSquares.reserve(occupiedSquares.size()); - for(Entity& entity: entities) + for(auto& entity: entities) { - entity.update(); + entity->update(); int heuristicSign = 0; - switch (entity.getState()) + switch (entity->getState()) { case State::Moving: { @@ -57,9 +67,9 @@ void Level::runStep() { heuristicSign = -1; } - if(entity.getTarget() != entity.getPosition()) + if(entity->getTarget() != entity->getPosition()) { - entity.move(findPath(entity.getPosition(),entity.getTarget(),heuristicSign)); + entity->move(findPath(entity->getPosition(),entity->getTarget(),heuristicSign)); } break; } @@ -67,7 +77,7 @@ void Level::runStep() case State::Idle:break; } - std::vector entitySquares = entity.getOccupiedSquares(); + std::vector entitySquares = entity->getOccupiedSquares(); // FIXME : Very heavy memory usage and a lot of duplicates, slows down occupiedSquares.find() calls too. // Copy the squares to the currently occupied squares : prevents moving into an entity that just moved diff --git a/src/Level.h b/src/Level.h index f6219c6..0171da9 100644 --- a/src/Level.h +++ b/src/Level.h @@ -21,13 +21,20 @@ class Level { public: Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); + /// Add a new rule on top of existing ones, thus with a lower priority + /// + /// \param affectedEntities Entities to which the rule will be applied + /// \param targetState What action will the rule perform + /// \param targetEntities Which entities will be targeted + void addRule(EntityType affectedEntities, State targetState, EntityType targetEntities); + void render(sf::RenderWindow& renderWindow) const; void runStep(); private: const pro_maat::GridPos size; - std::vector entities; + std::vector> entities; const pro_maat::TextureStore& textures; diff --git a/src/Rule.cpp b/src/Rule.cpp index 3556db6..50b5c1b 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -3,3 +3,170 @@ // #include "Rule.h" + + +Rule::Rule(Entity* entity, State targetState, EntityType targetType, + std::vector>& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize) + : entity(entity), + targetState(targetState), + targetType(targetType), + entities(entities), + occupiedSquares(occupiedSquares), + mapSize(mapSize) +{} + +void Rule::update() +{ + if (targetState == State::Moving || targetState == State::Fleeing) + { + entity->nextTarget = findTarget(); + if(entity->nextTarget == entity->getPosition()) + { + entity->nextState = State::Idle; + } + else + { + entity->nextState = targetState; + } + entity->update(); + } + else if (targetState == State::Waiting) + { + entity->nextTarget = entity->getPosition(); + entity->nextState = State::Waiting; + entity->update(); + } + else + { + entity->nextTarget = entity->getPosition(); + entity->nextState = State::Idle; + entity->update(); + } +} + +pro_maat::GridPos Rule::findTarget() +{ + // TODO : Sorting in place, consider using shared_ptr ? +// std::vector sortedEntities{}; +// sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + + // Compares entities via their distance to the current entity + auto distanceSortEntities = [this](const std::unique_ptr& leftHandSide, const std::unique_ptr& rightHandSide){ + return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide->getPosition()) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide->getPosition())); + }; + + // Same but with grid coordinates + auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide)); + }; + + // Get the smallest, non-occupied, inside the map square + auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ + // If the left hand side operand is not in the map or occupied, it is not valid + if(!pro_maat::isInMap(leftHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize) || + std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + { + return(true); + } + else + { + return(leftHandSide < rightHandSide); + }}; + + + // Sort in order to minimize entities to process + std::sort(entities.begin(),entities.end(),distanceSortEntities); + + for(const auto& processingEntity : entities) + { + if(processingEntity->getType() != targetType) continue; + + std::vector potentialTargets{}; + + pro_maat::GridUnit entityWidth = processingEntity->shape.getSize().x/pro_maat::pixelsPerUnit; + pro_maat::GridUnit entityHeight = processingEntity->shape.getSize().y/pro_maat::pixelsPerUnit; + + potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); + + // Computes the top left corner of the entity + pro_maat::GridPos topLeftCorner = processingEntity->getPosition(); + topLeftCorner.first -= entityWidth*0.5 - 1; + topLeftCorner.second -= entityHeight*0.5 - 1; + + + // Get all the top and bottom adjacent squares + for(int i = 0;igetPosition()); +} + + +//////////////////////// +// // +// Delegate overrides // +// // +//////////////////////// + + +void Rule::move(Orientation orientation) +{ + entity->move(orientation); +} + +State Rule::getState() const +{ + return entity->getState(); +} + +EntityType Rule::getType() const +{ + return entity->getType(); +} + +const sf::RectangleShape& Rule::getShape() const +{ + return entity->getShape(); +} + +pro_maat::GridPos Rule::getTarget() const +{ + return entity->getTarget(); +} + +const pro_maat::GridPos Rule::getPosition() const +{ + return entity->getPosition(); +} + +const std::vector Rule::getOccupiedSquares() const +{ + return entity->getOccupiedSquares(); +} diff --git a/src/Rule.h b/src/Rule.h index fae04f9..4215a51 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -12,12 +12,12 @@ /// Decorates entities with rules which will modify its behaviour -template -class Rule : private Entity +class Rule : public Entity { public: - Rule(Entity& entity, const std::vector& entities, - const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); + // The Rule object takes ownership of the Entity* + Rule(Entity* entity, State targetState, EntityType targetType, std::vector>& entities, + const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); /// Update according to the targetState and targetType void update() override; @@ -26,6 +26,7 @@ public: void move(Orientation orientation) override; State getState() const override; + EntityType getType() const override; const sf::RectangleShape& getShape() const override; pro_maat::GridPos getTarget() const override; const pro_maat::GridPos getPosition() const override; @@ -33,182 +34,20 @@ public: private: /// Finds the closest free square adjacent to the closest target entity type. + /// Currently not thread-safe ! /// \return Suitable target square or current position if none was found. pro_maat::GridPos findTarget(); - Entity& entity; - const std::vector& entities; + std::unique_ptr entity; + + State targetState; + EntityType targetType; + + // TOOD : dropped const-qualifier. Consider using shared_ptr ? + std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; }; - -template -Rule::Rule(Entity& entity, - const std::vector& entities, - const std::vector& occupiedSquares, - const pro_maat::GridPos& mapSize) - : entity(entity), - entities(entities), - occupiedSquares(occupiedSquares), - mapSize(mapSize) -{} - -template -void Rule::update() -{ - if constexpr (targetState == State::Moving || targetState == State::Fleeing) - { - entity.nextTarget = findTarget(); - if(entity.nextTarget == entity.getPosition()) - { - entity.nextState = State::Idle; - } - else - { - entity.nextState = targetState; - } - entity.update(); - } - else if constexpr (targetState == State::Waiting) - { - entity.nextTarget = entity.getPosition(); - entity.nextState = State::Waiting; - entity.update(); - } - else - { - entity.nextTarget = entity.getPosition(); - entity.nextState = State::Idle; - entity.update(); - } -} - -template -pro_maat::GridPos Rule::findTarget() -{ - std::vector sortedEntities{}; - sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); - - // Compares entities via their distance to the current entity - auto distanceSortEntities = [this](const Entity& leftHandSide, const Entity& rightHandSide){ - return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide.getPosition()) < - pro_maat::manhattanDistance(entity.getPosition(),rightHandSide.getPosition())); - }; - - // Same but with grid coordinates - auto distanceSortSquares = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ - return (pro_maat::manhattanDistance(entity.getPosition(),leftHandSide) < - pro_maat::manhattanDistance(entity.getPosition(),rightHandSide)); - }; - - // Get the smallest, non-occupied, inside the map square - auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ - // If the left hand side operand is not in the map or occupied, it is not valid - if(!pro_maat::isInMap(leftHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) - { - return(false); - } - else if(!pro_maat::isInMap(rightHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) - { - return(true); - } - else - { - return(leftHandSide < rightHandSide); - }}; - - - // Sort in order to minimize entities to process - std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); - - for(const Entity& processingEntity : sortedEntities) - { - std::vector potentialTargets{}; - - pro_maat::GridUnit entityWidth = processingEntity.shape.getSize().x/pro_maat::pixelsPerUnit; - pro_maat::GridUnit entityHeight = processingEntity.shape.getSize().y/pro_maat::pixelsPerUnit; - - potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); - - // Computes the top left corner of the entity - pro_maat::GridPos topLeftCorner = processingEntity.getPosition(); - topLeftCorner.first -= entityWidth*0.5 - 1; - topLeftCorner.second -= entityHeight*0.5 - 1; - - - // Get all the top and bottom adjacent squares - for(int i = 0;i -void Rule::move(Orientation orientation) -{ - entity.move(orientation); -} - -template -State Rule::getState() const -{ - return entity.getState(); -} - -template -const sf::RectangleShape& Rule::getShape() const -{ - return entity.getShape(); -} - -template -pro_maat::GridPos Rule::getTarget() const -{ - return entity.getTarget(); -} - -template -const pro_maat::GridPos Rule::getPosition() const -{ - return entity.getPosition(); -} - -template -const std::vector Rule::getOccupiedSquares() const -{ - return entity.getOccupiedSquares(); -} - - #endif //PROJECT_MAAT_RULES_H From 5169948b6fb84dd8964d656f2df3f5da8cbcd6c6 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 16:04:12 +0200 Subject: [PATCH 39/54] Fixed Rule::findTarget() not finding good or even valid targets --- src/Rule.cpp | 28 ++++++++++++++++++---------- src/Rule.h | 2 ++ src/Utils.cpp | 4 ++-- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 50b5c1b..b875d8f 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -66,19 +66,26 @@ pro_maat::GridPos Rule::findTarget() // Get the smallest, non-occupied, inside the map square auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ // If the left hand side operand is not in the map or occupied, it is not valid - if(!pro_maat::isInMap(leftHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + if(!pro_maat::isInMap(leftHandSide,mapSize)) { return(false); } - else if(!pro_maat::isInMap(rightHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + else if(std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize)) + { + return(true); + } + else if(std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) { return(true); } else { - return(leftHandSide < rightHandSide); + return(pro_maat::manhattanDistance(entity->getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide)); }}; @@ -96,23 +103,23 @@ pro_maat::GridPos Rule::findTarget() potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); - // Computes the top left corner of the entity + // Computes the top left corner just outside of the entity pro_maat::GridPos topLeftCorner = processingEntity->getPosition(); - topLeftCorner.first -= entityWidth*0.5 - 1; - topLeftCorner.second -= entityHeight*0.5 - 1; + topLeftCorner.first -= std::floor(entityWidth*0.5) + 1; + topLeftCorner.second -= std::floor(entityHeight*0.5) + 1; // Get all the top and bottom adjacent squares for(int i = 0;i #include +#include +#include #include "Entity.h" diff --git a/src/Utils.cpp b/src/Utils.cpp index 23d78d4..320d753 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -39,8 +39,8 @@ namespace pro_maat bool isInMap(const GridPos& square, const GridPos& gridSize) { - return (square.first < 0 || square.second < 0 || - square.first >= gridSize.first || square.second >= gridSize.second); + return !(square.first < 0 || square.second < 0 || + square.first > gridSize.first || square.second > gridSize.second); } float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) From 293a564a2984f68e5c0a2f026d318f858e825efd Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 16:04:12 +0200 Subject: [PATCH 40/54] Fixed Rule::findTarget() not finding good or even valid targets --- src/Rule.cpp | 28 ++++++++++++++++++---------- src/Rule.h | 2 ++ src/Utils.cpp | 4 ++-- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 50b5c1b..b875d8f 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -66,19 +66,26 @@ pro_maat::GridPos Rule::findTarget() // Get the smallest, non-occupied, inside the map square auto bestTarget = [this](const pro_maat::GridPos& leftHandSide, const pro_maat::GridPos& rightHandSide){ // If the left hand side operand is not in the map or occupied, it is not valid - if(!pro_maat::isInMap(leftHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + if(!pro_maat::isInMap(leftHandSide,mapSize)) { return(false); } - else if(!pro_maat::isInMap(rightHandSide,mapSize) || - std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) + else if(std::find(occupiedSquares.begin(),occupiedSquares.end(),leftHandSide) != occupiedSquares.end()) + { + return(false); + } + else if(!pro_maat::isInMap(rightHandSide,mapSize)) + { + return(true); + } + else if(std::find(occupiedSquares.begin(),occupiedSquares.end(),rightHandSide) != occupiedSquares.end()) { return(true); } else { - return(leftHandSide < rightHandSide); + return(pro_maat::manhattanDistance(entity->getPosition(),leftHandSide) < + pro_maat::manhattanDistance(entity->getPosition(),rightHandSide)); }}; @@ -96,23 +103,23 @@ pro_maat::GridPos Rule::findTarget() potentialTargets.reserve((entityWidth+2)*2+entityHeight*2); - // Computes the top left corner of the entity + // Computes the top left corner just outside of the entity pro_maat::GridPos topLeftCorner = processingEntity->getPosition(); - topLeftCorner.first -= entityWidth*0.5 - 1; - topLeftCorner.second -= entityHeight*0.5 - 1; + topLeftCorner.first -= std::floor(entityWidth*0.5) + 1; + topLeftCorner.second -= std::floor(entityHeight*0.5) + 1; // Get all the top and bottom adjacent squares for(int i = 0;i #include +#include +#include #include "Entity.h" diff --git a/src/Utils.cpp b/src/Utils.cpp index 23d78d4..320d753 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp @@ -39,8 +39,8 @@ namespace pro_maat bool isInMap(const GridPos& square, const GridPos& gridSize) { - return (square.first < 0 || square.second < 0 || - square.first >= gridSize.first || square.second >= gridSize.second); + return !(square.first < 0 || square.second < 0 || + square.first > gridSize.first || square.second > gridSize.second); } float manhattanDistance(const GridPos& leftHandSide, const GridPos& rightHandSide) From bf27bbeeb9a41f2c0cf50f37500e21e8d55e874d Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 18:46:37 +0200 Subject: [PATCH 41/54] Fixed movement of multiple entities. Changed std::unique_ptr to std::shared_ptr. Fixed pathfinding away from targets TODO : - Fix oscillation around destination - Fix fleeing from adjacent target - Win conditions - GUI --- README.md | 14 +++++++++++++- UML_Class_Diagram.png | Bin 44467 -> 84999 bytes src/Level.cpp | 9 +++++---- src/Level.h | 3 ++- src/Rule.cpp | 18 ++++++++---------- src/Rule.h | 10 +++++----- 6 files changed, 33 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index cbc732f..ede598f 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,20 @@ Project Maat is the codename of my C++ course "mini-project" based on the quote This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). +## Dependencies + +The following libraries must be installed on your system or findable by CMake to be able to build: + - SFML + - TGui + - PugiXML + - GTest + ## Structure ![UML Diagram](UML_Class_Diagram.png) +The class diagram omits most constructors and getters. + ## TODO - [x] Level @@ -25,6 +35,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - [x] Find optimal target for pathfinding + - [ ] Other rules (Waiting...) - [ ] Graphics - [x] Scene rendering - [ ] UI @@ -33,6 +44,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Transition from starting to running state and vice-versa - [ ] Entity behaviour evolution - [x] Rule application - - [ ] Saving state through serialization ? + - [ ] Win condition + - [ ] ~~Saving state through serialization ?~~ - [ ] UML - [ ] Unit tests \ No newline at end of file diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index e5faeff5084f75aae708da41dfc1f428274d1b0d..640b843411fe1faa609c1390280f0d3e555b426e 100644 GIT binary patch literal 84999 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

!+*MAtk|AEEfecx2wz^~v>*>5PThwBal7 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%0DI3qdNm9NPAlb2k6dU*II zFdMdMXplt(;R*w+%)T_JI38FG!|{d=DcTUcHy+^%k%4#Mc?!0B`JDc8J3F@!`fF=T z%StQ+ICxWsmpZU=^15I_k^(h#UlQsj#s?(_Ng>$cGRg2`lYRPlKu{j}wj7l<(bT*w zzeLFeM z$PZZx&Ng0swiykCr_`Q*I;35#3=CM9e|iHP(u;Mv<)U7b>YfE$={h)?I4VI<`pP!zVwv|92 z;JantKkq1I9A3EUh`a`1q2Y~7hut;@L&ZmG9 z1c&vfMo7B8t=Mh}--06p*gF@_pRYhxDFdz~4&z(l;W+}9-E}EkvuEp=n%=o$K7p{m^s{l6#K6u_oqGB8z;|cKnCB2VQ=tJ_SkQO}+uq8*|jC zLOUEbBnxIsOKPFIIkp^7#QZJGDbrABj^Psjmk-RUPHZ?HNJozpbTU$1gr{u0sR|qc pKay*aLgD9#2ksVsX8-icoqN@kPoWnTXt-Y+hls`e*i@`QC0u| literal 44467 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 z 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 F{{g<{_#OZN diff --git a/src/Level.cpp b/src/Level.cpp index 65633b4..046ac13 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,7 +14,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(std::make_unique(child,textures.at(child.attribute("textureId").as_int(0)).get())); + entities.emplace_back(std::make_shared(child,textures.at(child.attribute("textureId").as_int(0)).get())); // Initialize the occupied squares vector with the new entity's squares std::vector entitySquares = entities.rbegin()->get()->getOccupiedSquares(); @@ -23,7 +23,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex } // FIXME : For testing purposes - addRule(EntityType::Significant,State::Moving,EntityType::Citizen); + addRule(EntityType::Significant,State::Fleeing,EntityType::Citizen); + addRule(EntityType::Citizen,State::Moving,EntityType::Significant); } void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) @@ -32,7 +33,7 @@ void Level::addRule(EntityType affectedEntities, const State targetState, Entity { if(entity->getType() == affectedEntities) { - entity = std::make_unique(entity.release(),targetState,targetEntities,entities,occupiedSquares,size); + entity = std::make_shared(entity,targetState,targetEntities,entities,occupiedSquares,size); } } } @@ -189,7 +190,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int } pathCosts.insert_or_assign(neighbour,newPathCost); - estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); + estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)*sign); paths.insert_or_assign(neighbour,currentNode); } } diff --git a/src/Level.h b/src/Level.h index 0171da9..a19aede 100644 --- a/src/Level.h +++ b/src/Level.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "Utils.h" #include "Entity.h" @@ -34,7 +35,7 @@ public: private: const pro_maat::GridPos size; - std::vector> entities; + std::vector> entities; const pro_maat::TextureStore& textures; diff --git a/src/Rule.cpp b/src/Rule.cpp index b875d8f..87f97c7 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -5,10 +5,10 @@ #include "Rule.h" -Rule::Rule(Entity* entity, State targetState, EntityType targetType, - std::vector>& entities, +Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetType, + const std::vector>& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize) - : entity(entity), + : entity(std::move(entity)), targetState(targetState), targetType(targetType), entities(entities), @@ -47,12 +47,11 @@ void Rule::update() pro_maat::GridPos Rule::findTarget() { - // TODO : Sorting in place, consider using shared_ptr ? -// std::vector sortedEntities{}; -// sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + std::vector> sortedEntities{}; + sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); // Compares entities via their distance to the current entity - auto distanceSortEntities = [this](const std::unique_ptr& leftHandSide, const std::unique_ptr& rightHandSide){ + auto distanceSortEntities = [this](const std::shared_ptr& leftHandSide, const std::shared_ptr& rightHandSide){ return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide->getPosition()) < pro_maat::manhattanDistance(entity->getPosition(),rightHandSide->getPosition())); }; @@ -90,9 +89,9 @@ pro_maat::GridPos Rule::findTarget() // Sort in order to minimize entities to process - std::sort(entities.begin(),entities.end(),distanceSortEntities); + std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); - for(const auto& processingEntity : entities) + for(const auto& processingEntity : sortedEntities) { if(processingEntity->getType() != targetType) continue; @@ -128,7 +127,6 @@ pro_maat::GridPos Rule::findTarget() if(target != potentialTargets.end()) { - std::cout << "Target : (" << (*target).first << ","<< (*target).second << ")" << std::endl; return (*target); } } diff --git a/src/Rule.h b/src/Rule.h index 55edf72..97e0228 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include "Entity.h" @@ -18,7 +18,8 @@ class Rule : public Entity { public: // The Rule object takes ownership of the Entity* - Rule(Entity* entity, State targetState, EntityType targetType, std::vector>& entities, + Rule(std::shared_ptr entity, State targetState, EntityType targetType, + const std::vector>& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); /// Update according to the targetState and targetType @@ -40,13 +41,12 @@ private: /// \return Suitable target square or current position if none was found. pro_maat::GridPos findTarget(); - std::unique_ptr entity; + std::shared_ptr entity; State targetState; EntityType targetType; - // TOOD : dropped const-qualifier. Consider using shared_ptr ? - std::vector>& entities; + const std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; From 5ccd7d0c13e0db99548c7262d2c2aeede6b9a8de Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 18:44:45 +0200 Subject: [PATCH 42/54] Fixed movement of multiple entities. Changed std::unique_ptr to std::shared_ptr. Fixed pathfinding away from targets TODO : - Fix oscillation around destination - Fix fleeing from adjacent target - Win conditions - GUI --- README.md | 14 +++++++++++++- UML_Class_Diagram.png | Bin 44467 -> 84999 bytes src/Level.cpp | 9 +++++---- src/Level.h | 3 ++- src/Rule.cpp | 18 ++++++++---------- src/Rule.h | 10 +++++----- 6 files changed, 33 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index cbc732f..ede598f 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,20 @@ Project Maat is the codename of my C++ course "mini-project" based on the quote This game is aimed to be a puzzle game in which the player sets different laws for the world and the people within it as to control what happens after hitting "play" and achieve the level's goal. I was inspired both by [The Incredible Machine](https://en.wikipedia.org/wiki/The_Incredible_Machine_(video_game)) and its successors and by a much more recent game : [Baba is you](https://en.wikipedia.org/wiki/Baba_Is_You). +## Dependencies + +The following libraries must be installed on your system or findable by CMake to be able to build: + - SFML + - TGui + - PugiXML + - GTest + ## Structure ![UML Diagram](UML_Class_Diagram.png) +The class diagram omits most constructors and getters. + ## TODO - [x] Level @@ -25,6 +35,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [x] Interaction with entities - [ ] Parsing of rules and creation of subsequent decorators - [x] Find optimal target for pathfinding + - [ ] Other rules (Waiting...) - [ ] Graphics - [x] Scene rendering - [ ] UI @@ -33,6 +44,7 @@ This game is aimed to be a puzzle game in which the player sets different laws f - [ ] Transition from starting to running state and vice-versa - [ ] Entity behaviour evolution - [x] Rule application - - [ ] Saving state through serialization ? + - [ ] Win condition + - [ ] ~~Saving state through serialization ?~~ - [ ] UML - [ ] Unit tests \ No newline at end of file diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index e5faeff5084f75aae708da41dfc1f428274d1b0d..640b843411fe1faa609c1390280f0d3e555b426e 100644 GIT binary patch literal 84999 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

!+*MAtk|AEEfecx2wz^~v>*>5PThwBal7 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%0DI3qdNm9NPAlb2k6dU*II zFdMdMXplt(;R*w+%)T_JI38FG!|{d=DcTUcHy+^%k%4#Mc?!0B`JDc8J3F@!`fF=T z%StQ+ICxWsmpZU=^15I_k^(h#UlQsj#s?(_Ng>$cGRg2`lYRPlKu{j}wj7l<(bT*w zzeLFeM z$PZZx&Ng0swiykCr_`Q*I;35#3=CM9e|iHP(u;Mv<)U7b>YfE$={h)?I4VI<`pP!zVwv|92 z;JantKkq1I9A3EUh`a`1q2Y~7hut;@L&ZmG9 z1c&vfMo7B8t=Mh}--06p*gF@_pRYhxDFdz~4&z(l;W+}9-E}EkvuEp=n%=o$K7p{m^s{l6#K6u_oqGB8z;|cKnCB2VQ=tJ_SkQO}+uq8*|jC zLOUEbBnxIsOKPFIIkp^7#QZJGDbrABj^Psjmk-RUPHZ?HNJozpbTU$1gr{u0sR|qc pKay*aLgD9#2ksVsX8-icoqN@kPoWnTXt-Y+hls`e*i@`QC0u| literal 44467 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 z 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 F{{g<{_#OZN diff --git a/src/Level.cpp b/src/Level.cpp index 65633b4..046ac13 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -14,7 +14,7 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex { if(!strncmp(child.name(),"Entity",6)) { - entities.emplace_back(std::make_unique(child,textures.at(child.attribute("textureId").as_int(0)).get())); + entities.emplace_back(std::make_shared(child,textures.at(child.attribute("textureId").as_int(0)).get())); // Initialize the occupied squares vector with the new entity's squares std::vector entitySquares = entities.rbegin()->get()->getOccupiedSquares(); @@ -23,7 +23,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex } // FIXME : For testing purposes - addRule(EntityType::Significant,State::Moving,EntityType::Citizen); + addRule(EntityType::Significant,State::Fleeing,EntityType::Citizen); + addRule(EntityType::Citizen,State::Moving,EntityType::Significant); } void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) @@ -32,7 +33,7 @@ void Level::addRule(EntityType affectedEntities, const State targetState, Entity { if(entity->getType() == affectedEntities) { - entity = std::make_unique(entity.release(),targetState,targetEntities,entities,occupiedSquares,size); + entity = std::make_shared(entity,targetState,targetEntities,entities,occupiedSquares,size); } } } @@ -189,7 +190,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int } pathCosts.insert_or_assign(neighbour,newPathCost); - estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)); + estimatedCosts.insert_or_assign(neighbour,newPathCost + pro_maat::manhattanDistance(neighbour,goal)*sign); paths.insert_or_assign(neighbour,currentNode); } } diff --git a/src/Level.h b/src/Level.h index 0171da9..a19aede 100644 --- a/src/Level.h +++ b/src/Level.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "Utils.h" #include "Entity.h" @@ -34,7 +35,7 @@ public: private: const pro_maat::GridPos size; - std::vector> entities; + std::vector> entities; const pro_maat::TextureStore& textures; diff --git a/src/Rule.cpp b/src/Rule.cpp index b875d8f..87f97c7 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -5,10 +5,10 @@ #include "Rule.h" -Rule::Rule(Entity* entity, State targetState, EntityType targetType, - std::vector>& entities, +Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetType, + const std::vector>& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize) - : entity(entity), + : entity(std::move(entity)), targetState(targetState), targetType(targetType), entities(entities), @@ -47,12 +47,11 @@ void Rule::update() pro_maat::GridPos Rule::findTarget() { - // TODO : Sorting in place, consider using shared_ptr ? -// std::vector sortedEntities{}; -// sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); + std::vector> sortedEntities{}; + sortedEntities.insert(sortedEntities.end(),entities.begin(),entities.end()); // Compares entities via their distance to the current entity - auto distanceSortEntities = [this](const std::unique_ptr& leftHandSide, const std::unique_ptr& rightHandSide){ + auto distanceSortEntities = [this](const std::shared_ptr& leftHandSide, const std::shared_ptr& rightHandSide){ return (pro_maat::manhattanDistance(entity->getPosition(),leftHandSide->getPosition()) < pro_maat::manhattanDistance(entity->getPosition(),rightHandSide->getPosition())); }; @@ -90,9 +89,9 @@ pro_maat::GridPos Rule::findTarget() // Sort in order to minimize entities to process - std::sort(entities.begin(),entities.end(),distanceSortEntities); + std::sort(sortedEntities.begin(),sortedEntities.end(),distanceSortEntities); - for(const auto& processingEntity : entities) + for(const auto& processingEntity : sortedEntities) { if(processingEntity->getType() != targetType) continue; @@ -128,7 +127,6 @@ pro_maat::GridPos Rule::findTarget() if(target != potentialTargets.end()) { - std::cout << "Target : (" << (*target).first << ","<< (*target).second << ")" << std::endl; return (*target); } } diff --git a/src/Rule.h b/src/Rule.h index 55edf72..97e0228 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include "Entity.h" @@ -18,7 +18,8 @@ class Rule : public Entity { public: // The Rule object takes ownership of the Entity* - Rule(Entity* entity, State targetState, EntityType targetType, std::vector>& entities, + Rule(std::shared_ptr entity, State targetState, EntityType targetType, + const std::vector>& entities, const std::vector& occupiedSquares, const pro_maat::GridPos& mapSize); /// Update according to the targetState and targetType @@ -40,13 +41,12 @@ private: /// \return Suitable target square or current position if none was found. pro_maat::GridPos findTarget(); - std::unique_ptr entity; + std::shared_ptr entity; State targetState; EntityType targetType; - // TOOD : dropped const-qualifier. Consider using shared_ptr ? - std::vector>& entities; + const std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; From 67e4b3700bad444c3dcbaa5364a522e268343b36 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 19:14:43 +0200 Subject: [PATCH 43/54] Fixed oscillating around end position --- src/Rule.cpp | 17 ++++++++++++----- src/Rule.h | 7 +++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 87f97c7..f29612b 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -13,22 +13,26 @@ Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetT targetType(targetType), entities(entities), occupiedSquares(occupiedSquares), - mapSize(mapSize) + mapSize(mapSize), + previousPosition(this->entity->getPosition()), + previousTarget(this->entity->target) {} void Rule::update() { if (targetState == State::Moving || targetState == State::Fleeing) { - entity->nextTarget = findTarget(); - if(entity->nextTarget == entity->getPosition()) + pro_maat::GridPos target = findTarget(); + if(target != previousPosition || entity->getPosition() != previousTarget) { - entity->nextState = State::Idle; + entity->nextTarget = target; + entity->nextState = targetState; } else { - entity->nextState = targetState; + entity->nextState = State::Idle; } + entity->update(); } else if (targetState == State::Waiting) @@ -43,6 +47,9 @@ void Rule::update() entity->nextState = State::Idle; entity->update(); } + + previousPosition = entity->getPosition(); + previousTarget = entity->getTarget(); } pro_maat::GridPos Rule::findTarget() diff --git a/src/Rule.h b/src/Rule.h index 97e0228..ae52f63 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -43,13 +43,16 @@ private: std::shared_ptr entity; - State targetState; - EntityType targetType; + const State targetState; + const EntityType targetType; const std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; + + pro_maat::GridPos previousPosition; + pro_maat::GridPos previousTarget; }; #endif //PROJECT_MAAT_RULES_H From e1f23f67a2f8b5001cc984bfdbe6f83d1fa5177c Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 19:14:43 +0200 Subject: [PATCH 44/54] Fixed oscillating around end position --- src/Rule.cpp | 17 ++++++++++++----- src/Rule.h | 7 +++++-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 87f97c7..f29612b 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -13,22 +13,26 @@ Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetT targetType(targetType), entities(entities), occupiedSquares(occupiedSquares), - mapSize(mapSize) + mapSize(mapSize), + previousPosition(this->entity->getPosition()), + previousTarget(this->entity->target) {} void Rule::update() { if (targetState == State::Moving || targetState == State::Fleeing) { - entity->nextTarget = findTarget(); - if(entity->nextTarget == entity->getPosition()) + pro_maat::GridPos target = findTarget(); + if(target != previousPosition || entity->getPosition() != previousTarget) { - entity->nextState = State::Idle; + entity->nextTarget = target; + entity->nextState = targetState; } else { - entity->nextState = targetState; + entity->nextState = State::Idle; } + entity->update(); } else if (targetState == State::Waiting) @@ -43,6 +47,9 @@ void Rule::update() entity->nextState = State::Idle; entity->update(); } + + previousPosition = entity->getPosition(); + previousTarget = entity->getTarget(); } pro_maat::GridPos Rule::findTarget() diff --git a/src/Rule.h b/src/Rule.h index 97e0228..ae52f63 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -43,13 +43,16 @@ private: std::shared_ptr entity; - State targetState; - EntityType targetType; + const State targetState; + const EntityType targetType; const std::vector>& entities; const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; + + pro_maat::GridPos previousPosition; + pro_maat::GridPos previousTarget; }; #endif //PROJECT_MAAT_RULES_H From c52288b38985514a1aa3b1fbca3a59c712b0482f Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 20:05:46 +0200 Subject: [PATCH 45/54] Fixed oscillations for real Entities do not move after completing their moves... --- src/Rule.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index f29612b..15ce9e9 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -23,10 +23,13 @@ void Rule::update() if (targetState == State::Moving || targetState == State::Fleeing) { pro_maat::GridPos target = findTarget(); - if(target != previousPosition || entity->getPosition() != previousTarget) + if(target != previousPosition && (entity->getPosition() != previousTarget || entity->getPosition() == previousPosition)) { entity->nextTarget = target; entity->nextState = targetState; + + previousPosition = entity->getPosition(); + previousTarget = entity->getTarget(); } else { @@ -47,9 +50,6 @@ void Rule::update() entity->nextState = State::Idle; entity->update(); } - - previousPosition = entity->getPosition(); - previousTarget = entity->getTarget(); } pro_maat::GridPos Rule::findTarget() From b85d46e4507d46c935f66810ee63120c0088d005 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 20:05:46 +0200 Subject: [PATCH 46/54] Fixed oscillations for real Entities do not move after completing their moves... --- src/Rule.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index f29612b..15ce9e9 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -23,10 +23,13 @@ void Rule::update() if (targetState == State::Moving || targetState == State::Fleeing) { pro_maat::GridPos target = findTarget(); - if(target != previousPosition || entity->getPosition() != previousTarget) + if(target != previousPosition && (entity->getPosition() != previousTarget || entity->getPosition() == previousPosition)) { entity->nextTarget = target; entity->nextState = targetState; + + previousPosition = entity->getPosition(); + previousTarget = entity->getTarget(); } else { @@ -47,9 +50,6 @@ void Rule::update() entity->nextState = State::Idle; entity->update(); } - - previousPosition = entity->getPosition(); - previousTarget = entity->getTarget(); } pro_maat::GridPos Rule::findTarget() From 058940260a875c578922ea357647f1d5fcb133a5 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 21:53:39 +0200 Subject: [PATCH 47/54] Final fix for end of movement I was being dumb again : if we are adjacent to a target entity, stop moving --- src/Rule.cpp | 16 +++++++++------- src/Rule.h | 3 --- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 15ce9e9..adc9737 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -13,9 +13,7 @@ Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetT targetType(targetType), entities(entities), occupiedSquares(occupiedSquares), - mapSize(mapSize), - previousPosition(this->entity->getPosition()), - previousTarget(this->entity->target) + mapSize(mapSize) {} void Rule::update() @@ -23,13 +21,10 @@ void Rule::update() if (targetState == State::Moving || targetState == State::Fleeing) { pro_maat::GridPos target = findTarget(); - if(target != previousPosition && (entity->getPosition() != previousTarget || entity->getPosition() == previousPosition)) + if(target != entity->getPosition()) { entity->nextTarget = target; entity->nextState = targetState; - - previousPosition = entity->getPosition(); - previousTarget = entity->getTarget(); } else { @@ -130,6 +125,13 @@ pro_maat::GridPos Rule::findTarget() std::sort(potentialTargets.begin(),potentialTargets.end(),distanceSortSquares); + + // If we are adjacent to a target, we do not need to move + if(std::find(potentialTargets.begin(),potentialTargets.end(),entity->getPosition()) != potentialTargets.end()) + { + break; + } + auto target = std::min_element(potentialTargets.begin(),potentialTargets.end(),bestTarget); if(target != potentialTargets.end()) diff --git a/src/Rule.h b/src/Rule.h index ae52f63..bb36c50 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -50,9 +50,6 @@ private: const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; - - pro_maat::GridPos previousPosition; - pro_maat::GridPos previousTarget; }; #endif //PROJECT_MAAT_RULES_H From 2d8b1e53ce4983fd13d4f27f4a10d6348dbb8d14 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 21:53:39 +0200 Subject: [PATCH 48/54] Final fix for end of movement I was being dumb again : if we are adjacent to a target entity, stop moving --- src/Rule.cpp | 16 +++++++++------- src/Rule.h | 3 --- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index 15ce9e9..adc9737 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -13,9 +13,7 @@ Rule::Rule(std::shared_ptr entity, State targetState, EntityType targetT targetType(targetType), entities(entities), occupiedSquares(occupiedSquares), - mapSize(mapSize), - previousPosition(this->entity->getPosition()), - previousTarget(this->entity->target) + mapSize(mapSize) {} void Rule::update() @@ -23,13 +21,10 @@ void Rule::update() if (targetState == State::Moving || targetState == State::Fleeing) { pro_maat::GridPos target = findTarget(); - if(target != previousPosition && (entity->getPosition() != previousTarget || entity->getPosition() == previousPosition)) + if(target != entity->getPosition()) { entity->nextTarget = target; entity->nextState = targetState; - - previousPosition = entity->getPosition(); - previousTarget = entity->getTarget(); } else { @@ -130,6 +125,13 @@ pro_maat::GridPos Rule::findTarget() std::sort(potentialTargets.begin(),potentialTargets.end(),distanceSortSquares); + + // If we are adjacent to a target, we do not need to move + if(std::find(potentialTargets.begin(),potentialTargets.end(),entity->getPosition()) != potentialTargets.end()) + { + break; + } + auto target = std::min_element(potentialTargets.begin(),potentialTargets.end(),bestTarget); if(target != potentialTargets.end()) diff --git a/src/Rule.h b/src/Rule.h index ae52f63..bb36c50 100644 --- a/src/Rule.h +++ b/src/Rule.h @@ -50,9 +50,6 @@ private: const std::vector& occupiedSquares; const pro_maat::GridPos& mapSize; - - pro_maat::GridPos previousPosition; - pro_maat::GridPos previousTarget; }; #endif //PROJECT_MAAT_RULES_H From a1bc8058c260099eb0f652dc0f90da403ca06d4a Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 23:22:43 +0200 Subject: [PATCH 49/54] Fixed finding entities finding themselves when targeting their type --- src/Rule.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index adc9737..22682fc 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -95,7 +95,7 @@ pro_maat::GridPos Rule::findTarget() for(const auto& processingEntity : sortedEntities) { - if(processingEntity->getType() != targetType) continue; + if(processingEntity->getType() != targetType || processingEntity->getPosition() == entity->getPosition()) continue; std::vector potentialTargets{}; From 8199b7d036e391784593fc24e7d4910261d1aad6 Mon Sep 17 00:00:00 2001 From: trotFunky Date: Mon, 10 Jun 2019 23:22:43 +0200 Subject: [PATCH 50/54] Fixed finding entities finding themselves when targeting their type --- src/Rule.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Rule.cpp b/src/Rule.cpp index adc9737..22682fc 100644 --- a/src/Rule.cpp +++ b/src/Rule.cpp @@ -95,7 +95,7 @@ pro_maat::GridPos Rule::findTarget() for(const auto& processingEntity : sortedEntities) { - if(processingEntity->getType() != targetType) continue; + if(processingEntity->getType() != targetType || processingEntity->getPosition() == entity->getPosition()) continue; std::vector potentialTargets{}; From 6b5a28e6824cde7ef241e0728406c2969ce38aed Mon Sep 17 00:00:00 2001 From: trotFunky Date: Tue, 11 Jun 2019 00:33:44 +0200 Subject: [PATCH 51/54] Added first UI elements Rules can be created from the UI Game can be stopped/started from the UI Current level can be reset (Load from file again) Added "Game" target and main file TODO (A lot): - Unit tests - Fully functionnal UI - Win conditions - Level background - Level switching/progression - Interesting and varied rules - Multi-scale pathfinding - etc --- CMakeLists.txt | 7 ++ README.md | 9 +-- game/CMakeLists.txt | 12 ++++ game/main.cpp | 15 +++++ resources/level1.xml | 5 ++ resources/level2.xml | 33 +++++++++ resources/test_level.xml | 6 +- src/CMakeLists.txt | 3 +- src/Entity.cpp | 6 +- src/Entity.h | 7 +- src/Game.cpp | 142 +++++++++++++++++++++++++++++++++++++-- src/Game.h | 16 ++++- src/Level.cpp | 14 ++-- src/Level.h | 6 +- src/Utils.h | 2 + tests/CMakeLists.txt | 6 +- 16 files changed, 260 insertions(+), 29 deletions(-) create mode 100644 game/CMakeLists.txt create mode 100644 game/main.cpp create mode 100644 resources/level1.xml create mode 100644 resources/level2.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index ad8b0b6..7afa9e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) add_subdirectory(src) add_subdirectory(tests) +add_subdirectory(game) # Detect and add SFML find_package(SFML COMPONENTS system window graphics network audio REQUIRED) @@ -13,6 +14,12 @@ if(NOT SFML_FOUND) message(FATAL_ERROR "SFML could not be found") endif() +# Detect and add TGUI +find_package(TGUI REQUIRED) +if(NOT TGUI_FOUND) + message(FATAL_ERROR "SFML could not be found") +endif() + # Detect and add GTest find_package(GTest REQUIRED) if(GTest_FOUND) diff --git a/README.md b/README.md index ede598f..43d10dd 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,19 @@ The class diagram omits most constructors and getters. - [ ] Rules - [x] Creation - [x] Interaction with entities - - [ ] Parsing of rules and creation of subsequent decorators + - [x] Parsing of rules and creation of subsequent decorators - [x] Find optimal target for pathfinding - [ ] Other rules (Waiting...) - [ ] Graphics - [x] Scene rendering + - [x] Some kind of UI - [ ] UI - [ ] Menu ? - [ ] Gameloop - - [ ] Transition from starting to running state and vice-versa - - [ ] Entity behaviour evolution + - [x] Transition from starting to running state and vice-versa + - [x] Entity behaviour evolution - [x] Rule application - [ ] Win condition - [ ] ~~Saving state through serialization ?~~ - - [ ] UML + - [x] UML - [ ] Unit tests \ No newline at end of file diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt new file mode 100644 index 0000000..722fbf3 --- /dev/null +++ b/game/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(project_maat) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_executable(game main.cpp) + +target_include_directories(game PRIVATE ${PROJECT_SOURCE_DIR}/../src) + +target_link_libraries(game + engine) \ No newline at end of file diff --git a/game/main.cpp b/game/main.cpp new file mode 100644 index 0000000..0a613e4 --- /dev/null +++ b/game/main.cpp @@ -0,0 +1,15 @@ +// +// Created by trotfunky on 11/06/19. +// + +#include "Game.h" + +int main() +{ + std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; + std::vector levels = {"test_level.xml"}; + + Game game(levels,textures); + game.loadLevel(0); + game.runGame(); +} \ No newline at end of file diff --git a/resources/level1.xml b/resources/level1.xml new file mode 100644 index 0000000..8612c46 --- /dev/null +++ b/resources/level1.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/resources/level2.xml b/resources/level2.xml new file mode 100644 index 0000000..c5da26b --- /dev/null +++ b/resources/level2.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/test_level.xml b/resources/test_level.xml index 2a7f192..5e8b0e8 100644 --- a/resources/test_level.xml +++ b/resources/test_level.xml @@ -1,7 +1,7 @@ - - - + + + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 322c065..f82b03c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,7 +10,8 @@ target_link_libraries(engine sfml-window sfml-graphics sfml-system - pugixml) + pugixml + tgui) if (CMAKE_COMPILER_IS_GNUCXX) target_compile_options(engine PRIVATE -Wall -Wpedantic -Wextra) diff --git a/src/Entity.cpp b/src/Entity.cpp index 11cc6c6..b7a35f3 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -6,10 +6,14 @@ const std::map Entity::entityTypeLookup = { {"Citizen",EntityType::Citizen}, - {"Significant",EntityType::Significant}, + {"Noble",EntityType::Noble}, {"House",EntityType::House}, {"Car",EntityType::Car}}; +const std::map Entity::stateLookup = { + {"Seek",State::Moving}, + {"Flee",State::Fleeing}}; + Entity::Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); diff --git a/src/Entity.h b/src/Entity.h index 3765a09..d709673 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -15,7 +15,7 @@ enum class EntityType { Citizen, - Significant, + Noble, House, Car, }; @@ -62,14 +62,15 @@ public: virtual const std::vector getOccupiedSquares() const; + static const std::map entityTypeLookup; + static const std::map stateLookup; + protected: /// Empty constructor for derived class instanciation Entity(); private: - static const std::map entityTypeLookup; - EntityType type; // As it contains position, size and orientation, we do not need anything more diff --git a/src/Game.cpp b/src/Game.cpp index b1c7df0..0d39902 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -8,22 +8,25 @@ Game::Game(std::vector& levels, std::vector& textures) : levelFiles(std::move(levels)), - textureFiles(std::move(textures)) + textureFiles(std::move(textures)), running(false), ruleCount(0) { loadTextures(); } -void Game::loadLevel(int levelId) +void Game::loadLevel(int levelID) { + // TODO : Reset rules when reseting level + running = false; + pugi::xml_document document; - pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelId)).c_str()); + pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelID)).c_str()); if(!result) { pro_maat::errorWindow(result.description()); } - currentLevel = std::make_unique(document,textures); + currentLevel = std::make_unique(document,textures,levelID); } void Game::loadTextures() @@ -42,6 +45,9 @@ void Game::runGame() sf::Clock clock; + tgui::Gui gui(window); + addWidgets(gui); + while (window.isOpen()) { sf::Event event; @@ -51,8 +57,10 @@ void Game::runGame() { window.close(); } + + gui.handleEvent(event); } - if (clock.getElapsedTime().asMilliseconds() >= 200) + if (running && clock.getElapsedTime().asMilliseconds() >= 200) { currentLevel->runStep(); clock.restart(); @@ -60,11 +68,135 @@ void Game::runGame() window.clear(sf::Color::White); // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? currentLevel->render(window); + gui.draw(); window.display(); } } +void Game::addWidgets(tgui::Gui& gui) +{ + tgui::Button::Ptr button = tgui::Button::create("Start"); + button->setSize("10%","5%"); + button->setPosition("89%","94%"); + button->connect("pressed",&Game::setRunning,this,true,std::ref(gui)); + gui.add(button,"start"); + + // TODO : Use clone/copy ? + button = tgui::Button::create("Stop"); + button->setSize("10%","5%"); + button->setPosition("79%","94%"); + button->connect("pressed",&Game::setRunning,this,false,std::ref(gui)); + gui.add(button,"stop"); + + button = tgui::Button::create("Reset"); + button->setSize("10%","5%"); + button->setPosition("69%","94%"); + button->connect("pressed",&Game::loadLevel,this,currentLevel->getLevelID()); + gui.add(button,"reset"); + + button = tgui::Button::create("Add a new rule"); + button->setSize("10%","5%"); + button->setPosition("89%","6%"); + button->connect("pressed",&Game::addRule,this,std::ref(gui)); + gui.add(button,"add"); +} + Game::operator bool() const { return (currentLevel ? true : false); } + +// +// Widget callbacks +// + +void Game::setRunning(bool newState, tgui::Gui& gui) +{ + running = newState; + + // TODO : Iterate over all rules + + auto affectedTypeCombo = gui.get("AffectedType0"); + if(!affectedTypeCombo) return; + auto targetTypeCombo = gui.get("TargetType0"); + if(!targetTypeCombo) return; + auto actionCombo = gui.get("Action0"); + if(!actionCombo) return; + + // If the rule is complete only + if(!affectedTypeCombo->getSelectedItem().isEmpty() && + !targetTypeCombo->getSelectedItem().isEmpty() && + !actionCombo->getSelectedItem().isEmpty()) + { + currentLevel->addRule(Entity::entityTypeLookup.at(affectedTypeCombo->getSelectedItem()), + Entity::stateLookup.at(actionCombo->getSelectedItem()), + Entity::entityTypeLookup.at(targetTypeCombo->getSelectedItem())); + } + +} + +void Game::addRule(tgui::Gui& gui) +{ + if(ruleCount >= pro_maat::maxRules) return; + + // To update names with indexes + std::stringstream string; + + + tgui::ComboBox::Ptr combo = tgui::ComboBox::create(); + combo->addItem("Citizen"); + combo->addItem("Noble"); + combo->setPosition("85%","5%"); + + // TODO : Move height according to number of rules + // Keep the proportions while moving +// sf::Vector2f tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + combo->setSize("5%","2%"); + + string << "AffectedType" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + // TODO : Use clone/copy ? + combo = tgui::ComboBox::create(); + combo->addItem("Citizen"); + combo->addItem("Noble"); + combo->addItem("House"); + combo->setSize("5%","2%"); + combo->setPosition("95%","5%"); + + // Keep the proportions while moving +// tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + + string << "TargetType" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + combo = tgui::ComboBox::create(); + combo->addItem("Seek"); + combo->addItem("Flee"); + combo->setSize("4%","2%"); + combo->setPosition("90.5%","5%"); + + // Keep the proportions while moving +// tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + + string << "Action" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + // TODO : Move the button down with each rule then hide it + // TODO : Hide button when max rules hit + // FIXME : Cannot hide ? + gui.get("add")->setSize("0%","0%"); + gui.get("add")->setTextSize(0); + gui.get("add")->setPosition("-10%","-10%"); + + ruleCount++; +} diff --git a/src/Game.h b/src/Game.h index f2ec76a..20b1732 100644 --- a/src/Game.h +++ b/src/Game.h @@ -6,21 +6,22 @@ #define SRC_GAME_H #include +#include #include #include +#include #include "Level.h" #include "Entity.h" #include "Utils.h" - class Game { public: Game(std::vector& levels, std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles /// Closes the program if there is a fatal error (Missing file, bad file...) - void loadLevel(int levelId); + void loadLevel(int levelID); std::unique_ptr currentLevel; @@ -37,7 +38,18 @@ private: /// Stores pointers to textures for future use pro_maat::TextureStore textures; + bool running; + unsigned int ruleCount; + void loadTextures(); + void addWidgets(tgui::Gui& gui); + + // + // Widget callbacks + // + + void setRunning(bool newState,tgui::Gui& gui); + void addRule(tgui::Gui& gui); }; diff --git a/src/Level.cpp b/src/Level.cpp index 046ac13..0d7aec7 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -5,8 +5,8 @@ #include "Level.h" -Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore) - : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), +Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore, int id) + : levelID(id), size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), textures(textureStore) { pugi::xml_node levelNode = xmlDoc.child("Level"); @@ -23,8 +23,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex } // FIXME : For testing purposes - addRule(EntityType::Significant,State::Fleeing,EntityType::Citizen); - addRule(EntityType::Citizen,State::Moving,EntityType::Significant); +// addRule(EntityType::Noble,State::Moving,EntityType::House); +// addRule(EntityType::Citizen,State::Moving,EntityType::Citizen); } void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) @@ -128,6 +128,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // Expand from the open node with the smallest estimated cost pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; + // FIXME : Lots of bad cases when fleeing if(currentNode == goal) { if(currentNode == start) @@ -198,3 +199,8 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // If we did not find a path, do not move return Orientation::None; } + +int Level::getLevelID() +{ + return levelID; +} \ No newline at end of file diff --git a/src/Level.h b/src/Level.h index a19aede..b0c8d0f 100644 --- a/src/Level.h +++ b/src/Level.h @@ -20,7 +20,7 @@ class Level { public: - Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore, int id = 0); /// Add a new rule on top of existing ones, thus with a lower priority /// @@ -32,7 +32,11 @@ public: void render(sf::RenderWindow& renderWindow) const; void runStep(); + int getLevelID(); + private: + int levelID; + const pro_maat::GridPos size; std::vector> entities; diff --git a/src/Utils.h b/src/Utils.h index af3dfe3..7ecbfcb 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -20,6 +20,8 @@ using GridUnit = int16_t; using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 30; +static constexpr unsigned int maxRules = 5; + static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bdde3da..75179ba 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,8 +11,4 @@ target_include_directories(gTests PRIVATE ${PROJECT_SOURCE_DIR}/../src) target_link_libraries(gTests engine gtest - pthread - sfml-window - sfml-graphics - sfml-system - pugixml) \ No newline at end of file + pthread) \ No newline at end of file From 60770b5395243f83a6142379866d42096b55589a Mon Sep 17 00:00:00 2001 From: trotFunky Date: Tue, 11 Jun 2019 00:33:44 +0200 Subject: [PATCH 52/54] Added first UI elements Rules can be created from the UI Game can be stopped/started from the UI Current level can be reset (Load from file again) Added "Game" target and main file TODO (A lot): - Unit tests - Fully functionnal UI - Win conditions - Level background - Level switching/progression - Interesting and varied rules - Multi-scale pathfinding - etc --- CMakeLists.txt | 7 ++ README.md | 9 +-- game/CMakeLists.txt | 12 ++++ game/main.cpp | 15 +++++ resources/level1.xml | 5 ++ resources/level2.xml | 33 +++++++++ resources/test_level.xml | 6 +- src/CMakeLists.txt | 3 +- src/Entity.cpp | 6 +- src/Entity.h | 7 +- src/Game.cpp | 142 +++++++++++++++++++++++++++++++++++++-- src/Game.h | 16 ++++- src/Level.cpp | 14 ++-- src/Level.h | 6 +- src/Utils.h | 2 + tests/CMakeLists.txt | 6 +- 16 files changed, 260 insertions(+), 29 deletions(-) create mode 100644 game/CMakeLists.txt create mode 100644 game/main.cpp create mode 100644 resources/level1.xml create mode 100644 resources/level2.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index ad8b0b6..7afa9e2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) add_subdirectory(src) add_subdirectory(tests) +add_subdirectory(game) # Detect and add SFML find_package(SFML COMPONENTS system window graphics network audio REQUIRED) @@ -13,6 +14,12 @@ if(NOT SFML_FOUND) message(FATAL_ERROR "SFML could not be found") endif() +# Detect and add TGUI +find_package(TGUI REQUIRED) +if(NOT TGUI_FOUND) + message(FATAL_ERROR "SFML could not be found") +endif() + # Detect and add GTest find_package(GTest REQUIRED) if(GTest_FOUND) diff --git a/README.md b/README.md index ede598f..43d10dd 100644 --- a/README.md +++ b/README.md @@ -33,18 +33,19 @@ The class diagram omits most constructors and getters. - [ ] Rules - [x] Creation - [x] Interaction with entities - - [ ] Parsing of rules and creation of subsequent decorators + - [x] Parsing of rules and creation of subsequent decorators - [x] Find optimal target for pathfinding - [ ] Other rules (Waiting...) - [ ] Graphics - [x] Scene rendering + - [x] Some kind of UI - [ ] UI - [ ] Menu ? - [ ] Gameloop - - [ ] Transition from starting to running state and vice-versa - - [ ] Entity behaviour evolution + - [x] Transition from starting to running state and vice-versa + - [x] Entity behaviour evolution - [x] Rule application - [ ] Win condition - [ ] ~~Saving state through serialization ?~~ - - [ ] UML + - [x] UML - [ ] Unit tests \ No newline at end of file diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt new file mode 100644 index 0000000..722fbf3 --- /dev/null +++ b/game/CMakeLists.txt @@ -0,0 +1,12 @@ +cmake_minimum_required(VERSION 3.14) +project(project_maat) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ${CMAKE_MODULE_PATH}) + +add_executable(game main.cpp) + +target_include_directories(game PRIVATE ${PROJECT_SOURCE_DIR}/../src) + +target_link_libraries(game + engine) \ No newline at end of file diff --git a/game/main.cpp b/game/main.cpp new file mode 100644 index 0000000..0a613e4 --- /dev/null +++ b/game/main.cpp @@ -0,0 +1,15 @@ +// +// Created by trotfunky on 11/06/19. +// + +#include "Game.h" + +int main() +{ + std::vector textures = {"Head_Boy.png","Head_Significant_Boy.png","Building.png"}; + std::vector levels = {"test_level.xml"}; + + Game game(levels,textures); + game.loadLevel(0); + game.runGame(); +} \ No newline at end of file diff --git a/resources/level1.xml b/resources/level1.xml new file mode 100644 index 0000000..8612c46 --- /dev/null +++ b/resources/level1.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/resources/level2.xml b/resources/level2.xml new file mode 100644 index 0000000..c5da26b --- /dev/null +++ b/resources/level2.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/test_level.xml b/resources/test_level.xml index 2a7f192..5e8b0e8 100644 --- a/resources/test_level.xml +++ b/resources/test_level.xml @@ -1,7 +1,7 @@ - - - + + + \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 322c065..f82b03c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,7 +10,8 @@ target_link_libraries(engine sfml-window sfml-graphics sfml-system - pugixml) + pugixml + tgui) if (CMAKE_COMPILER_IS_GNUCXX) target_compile_options(engine PRIVATE -Wall -Wpedantic -Wextra) diff --git a/src/Entity.cpp b/src/Entity.cpp index 11cc6c6..b7a35f3 100644 --- a/src/Entity.cpp +++ b/src/Entity.cpp @@ -6,10 +6,14 @@ const std::map Entity::entityTypeLookup = { {"Citizen",EntityType::Citizen}, - {"Significant",EntityType::Significant}, + {"Noble",EntityType::Noble}, {"House",EntityType::House}, {"Car",EntityType::Car}}; +const std::map Entity::stateLookup = { + {"Seek",State::Moving}, + {"Flee",State::Fleeing}}; + Entity::Entity(pro_maat::GridUnit x, pro_maat::GridUnit y, EntityType type, sf::Texture* texture, int width, int height) : type(type) { shape = sf::RectangleShape(sf::Vector2f(width*pro_maat::pixelsPerUnit,height*pro_maat::pixelsPerUnit)); diff --git a/src/Entity.h b/src/Entity.h index 3765a09..d709673 100644 --- a/src/Entity.h +++ b/src/Entity.h @@ -15,7 +15,7 @@ enum class EntityType { Citizen, - Significant, + Noble, House, Car, }; @@ -62,14 +62,15 @@ public: virtual const std::vector getOccupiedSquares() const; + static const std::map entityTypeLookup; + static const std::map stateLookup; + protected: /// Empty constructor for derived class instanciation Entity(); private: - static const std::map entityTypeLookup; - EntityType type; // As it contains position, size and orientation, we do not need anything more diff --git a/src/Game.cpp b/src/Game.cpp index b1c7df0..0d39902 100644 --- a/src/Game.cpp +++ b/src/Game.cpp @@ -8,22 +8,25 @@ Game::Game(std::vector& levels, std::vector& textures) : levelFiles(std::move(levels)), - textureFiles(std::move(textures)) + textureFiles(std::move(textures)), running(false), ruleCount(0) { loadTextures(); } -void Game::loadLevel(int levelId) +void Game::loadLevel(int levelID) { + // TODO : Reset rules when reseting level + running = false; + pugi::xml_document document; - pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelId)).c_str()); + pugi::xml_parse_result result = document.load_file((pro_maat::levelFolder+levelFiles.at(levelID)).c_str()); if(!result) { pro_maat::errorWindow(result.description()); } - currentLevel = std::make_unique(document,textures); + currentLevel = std::make_unique(document,textures,levelID); } void Game::loadTextures() @@ -42,6 +45,9 @@ void Game::runGame() sf::Clock clock; + tgui::Gui gui(window); + addWidgets(gui); + while (window.isOpen()) { sf::Event event; @@ -51,8 +57,10 @@ void Game::runGame() { window.close(); } + + gui.handleEvent(event); } - if (clock.getElapsedTime().asMilliseconds() >= 200) + if (running && clock.getElapsedTime().asMilliseconds() >= 200) { currentLevel->runStep(); clock.restart(); @@ -60,11 +68,135 @@ void Game::runGame() window.clear(sf::Color::White); // TODO : Consider drawing in a sf::RenderTexture to allow positioning the level at a fixed position ? currentLevel->render(window); + gui.draw(); window.display(); } } +void Game::addWidgets(tgui::Gui& gui) +{ + tgui::Button::Ptr button = tgui::Button::create("Start"); + button->setSize("10%","5%"); + button->setPosition("89%","94%"); + button->connect("pressed",&Game::setRunning,this,true,std::ref(gui)); + gui.add(button,"start"); + + // TODO : Use clone/copy ? + button = tgui::Button::create("Stop"); + button->setSize("10%","5%"); + button->setPosition("79%","94%"); + button->connect("pressed",&Game::setRunning,this,false,std::ref(gui)); + gui.add(button,"stop"); + + button = tgui::Button::create("Reset"); + button->setSize("10%","5%"); + button->setPosition("69%","94%"); + button->connect("pressed",&Game::loadLevel,this,currentLevel->getLevelID()); + gui.add(button,"reset"); + + button = tgui::Button::create("Add a new rule"); + button->setSize("10%","5%"); + button->setPosition("89%","6%"); + button->connect("pressed",&Game::addRule,this,std::ref(gui)); + gui.add(button,"add"); +} + Game::operator bool() const { return (currentLevel ? true : false); } + +// +// Widget callbacks +// + +void Game::setRunning(bool newState, tgui::Gui& gui) +{ + running = newState; + + // TODO : Iterate over all rules + + auto affectedTypeCombo = gui.get("AffectedType0"); + if(!affectedTypeCombo) return; + auto targetTypeCombo = gui.get("TargetType0"); + if(!targetTypeCombo) return; + auto actionCombo = gui.get("Action0"); + if(!actionCombo) return; + + // If the rule is complete only + if(!affectedTypeCombo->getSelectedItem().isEmpty() && + !targetTypeCombo->getSelectedItem().isEmpty() && + !actionCombo->getSelectedItem().isEmpty()) + { + currentLevel->addRule(Entity::entityTypeLookup.at(affectedTypeCombo->getSelectedItem()), + Entity::stateLookup.at(actionCombo->getSelectedItem()), + Entity::entityTypeLookup.at(targetTypeCombo->getSelectedItem())); + } + +} + +void Game::addRule(tgui::Gui& gui) +{ + if(ruleCount >= pro_maat::maxRules) return; + + // To update names with indexes + std::stringstream string; + + + tgui::ComboBox::Ptr combo = tgui::ComboBox::create(); + combo->addItem("Citizen"); + combo->addItem("Noble"); + combo->setPosition("85%","5%"); + + // TODO : Move height according to number of rules + // Keep the proportions while moving +// sf::Vector2f tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + combo->setSize("5%","2%"); + + string << "AffectedType" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + // TODO : Use clone/copy ? + combo = tgui::ComboBox::create(); + combo->addItem("Citizen"); + combo->addItem("Noble"); + combo->addItem("House"); + combo->setSize("5%","2%"); + combo->setPosition("95%","5%"); + + // Keep the proportions while moving +// tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + + string << "TargetType" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + combo = tgui::ComboBox::create(); + combo->addItem("Seek"); + combo->addItem("Flee"); + combo->setSize("4%","2%"); + combo->setPosition("90.5%","5%"); + + // Keep the proportions while moving +// tempPos = combo->getPosition(); +// tempPos.y += tempPos.y*2*ruleCount; +// combo->setPosition(tempPos); + + string << "Action" << ruleCount; + gui.add(combo,string.str()); + string.str(""); + + // TODO : Move the button down with each rule then hide it + // TODO : Hide button when max rules hit + // FIXME : Cannot hide ? + gui.get("add")->setSize("0%","0%"); + gui.get("add")->setTextSize(0); + gui.get("add")->setPosition("-10%","-10%"); + + ruleCount++; +} diff --git a/src/Game.h b/src/Game.h index f2ec76a..20b1732 100644 --- a/src/Game.h +++ b/src/Game.h @@ -6,21 +6,22 @@ #define SRC_GAME_H #include +#include #include #include +#include #include "Level.h" #include "Entity.h" #include "Utils.h" - class Game { public: Game(std::vector& levels, std::vector& textures); /// Loads the level of corresponding ID from Game::levelFiles /// Closes the program if there is a fatal error (Missing file, bad file...) - void loadLevel(int levelId); + void loadLevel(int levelID); std::unique_ptr currentLevel; @@ -37,7 +38,18 @@ private: /// Stores pointers to textures for future use pro_maat::TextureStore textures; + bool running; + unsigned int ruleCount; + void loadTextures(); + void addWidgets(tgui::Gui& gui); + + // + // Widget callbacks + // + + void setRunning(bool newState,tgui::Gui& gui); + void addRule(tgui::Gui& gui); }; diff --git a/src/Level.cpp b/src/Level.cpp index 046ac13..0d7aec7 100644 --- a/src/Level.cpp +++ b/src/Level.cpp @@ -5,8 +5,8 @@ #include "Level.h" -Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore) - : size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), +Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore, int id) + : levelID(id), size(xmlDoc.child("Level").attribute("w").as_int(),xmlDoc.child("Level").attribute("h").as_int()), textures(textureStore) { pugi::xml_node levelNode = xmlDoc.child("Level"); @@ -23,8 +23,8 @@ Level::Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& tex } // FIXME : For testing purposes - addRule(EntityType::Significant,State::Fleeing,EntityType::Citizen); - addRule(EntityType::Citizen,State::Moving,EntityType::Significant); +// addRule(EntityType::Noble,State::Moving,EntityType::House); +// addRule(EntityType::Citizen,State::Moving,EntityType::Citizen); } void Level::addRule(EntityType affectedEntities, const State targetState, EntityType targetEntities) @@ -128,6 +128,7 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // Expand from the open node with the smallest estimated cost pro_maat::GridPos currentNode = std::min_element(estimatedCosts.begin(),estimatedCosts.end(),compWithOpen)->first; + // FIXME : Lots of bad cases when fleeing if(currentNode == goal) { if(currentNode == start) @@ -198,3 +199,8 @@ Orientation Level::findPath(pro_maat::GridPos start, pro_maat::GridPos goal, int // If we did not find a path, do not move return Orientation::None; } + +int Level::getLevelID() +{ + return levelID; +} \ No newline at end of file diff --git a/src/Level.h b/src/Level.h index a19aede..b0c8d0f 100644 --- a/src/Level.h +++ b/src/Level.h @@ -20,7 +20,7 @@ class Level { public: - Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore); + Level(const pugi::xml_document& xmlDoc, const pro_maat::TextureStore& textureStore, int id = 0); /// Add a new rule on top of existing ones, thus with a lower priority /// @@ -32,7 +32,11 @@ public: void render(sf::RenderWindow& renderWindow) const; void runStep(); + int getLevelID(); + private: + int levelID; + const pro_maat::GridPos size; std::vector> entities; diff --git a/src/Utils.h b/src/Utils.h index af3dfe3..7ecbfcb 100644 --- a/src/Utils.h +++ b/src/Utils.h @@ -20,6 +20,8 @@ using GridUnit = int16_t; using GridPos = std::pair; static constexpr uint8_t pixelsPerUnit = 30; +static constexpr unsigned int maxRules = 5; + static constexpr char levelFolder[] = "resources/"; static constexpr char textureFolder[] = "resources/"; static constexpr char fontFolder[] = "resources/"; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index bdde3da..75179ba 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,8 +11,4 @@ target_include_directories(gTests PRIVATE ${PROJECT_SOURCE_DIR}/../src) target_link_libraries(gTests engine gtest - pthread - sfml-window - sfml-graphics - sfml-system - pugixml) \ No newline at end of file + pthread) \ No newline at end of file From 3a168a4d5544860af9a339ad4aeeaad67297549b Mon Sep 17 00:00:00 2001 From: trotFunky Date: Tue, 11 Jun 2019 00:37:54 +0200 Subject: [PATCH 53/54] Fixed a typo in UML diagram --- UML_Class_Diagram.png | Bin 84999 -> 83432 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 640b843411fe1faa609c1390280f0d3e555b426e..06722248c33adac13c20a00ac5fd0705ad5e716d 100644 GIT binary patch literal 83432 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

!+*MAtk|AEEfecx2wz^~v>*>5PThwBal7 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%0DI3qdNm9NPAlb2k6dU*II zFdMdMXplt(;R*w+%)T_JI38FG!|{d=DcTUcHy+^%k%4#Mc?!0B`JDc8J3F@!`fF=T z%StQ+ICxWsmpZU=^15I_k^(h#UlQsj#s?(_Ng>$cGRg2`lYRPlKu{j}wj7l<(bT*w zzeLFeM z$PZZx&Ng0swiykCr_`Q*I;35#3=CM9e|iHP(u;Mv<)U7b>YfE$={h)?I4VI<`pP!zVwv|92 z;JantKkq1I9A3EUh`a`1q2Y~7hut;@L&ZmG9 z1c&vfMo7B8t=Mh}--06p*gF@_pRYhxDFdz~4&z(l;W+}9-E}EkvuEp=n%=o$K7p{m^s{l6#K6u_oqGB8z;|cKnCB2VQ=tJ_SkQO}+uq8*|jC zLOUEbBnxIsOKPFIIkp^7#QZJGDbrABj^Psjmk-RUPHZ?HNJozpbTU$1gr{u0sR|qc pKay*aLgD9#2ksVsX8-icoqN@kPoWnTXt-Y+hls`e*i@`QC0u| From 012183fbcb3d3d883b8f2aff19355b7c5812693f Mon Sep 17 00:00:00 2001 From: trotFunky Date: Tue, 11 Jun 2019 00:37:54 +0200 Subject: [PATCH 54/54] Fixed a typo in UML diagram --- UML_Class_Diagram.png | Bin 84999 -> 83432 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/UML_Class_Diagram.png b/UML_Class_Diagram.png index 640b843411fe1faa609c1390280f0d3e555b426e..06722248c33adac13c20a00ac5fd0705ad5e716d 100644 GIT binary patch literal 83432 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

!+*MAtk|AEEfecx2wz^~v>*>5PThwBal7 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%0DI3qdNm9NPAlb2k6dU*II zFdMdMXplt(;R*w+%)T_JI38FG!|{d=DcTUcHy+^%k%4#Mc?!0B`JDc8J3F@!`fF=T z%StQ+ICxWsmpZU=^15I_k^(h#UlQsj#s?(_Ng>$cGRg2`lYRPlKu{j}wj7l<(bT*w zzeLFeM z$PZZx&Ng0swiykCr_`Q*I;35#3=CM9e|iHP(u;Mv<)U7b>YfE$={h)?I4VI<`pP!zVwv|92 z;JantKkq1I9A3EUh`a`1q2Y~7hut;@L&ZmG9 z1c&vfMo7B8t=Mh}--06p*gF@_pRYhxDFdz~4&z(l;W+}9-E}EkvuEp=n%=o$K7p{m^s{l6#K6u_oqGB8z;|cKnCB2VQ=tJ_SkQO}+uq8*|jC zLOUEbBnxIsOKPFIIkp^7#QZJGDbrABj^Psjmk-RUPHZ?HNJozpbTU$1gr{u0sR|qc pKay*aLgD9#2ksVsX8-icoqN@kPoWnTXt-Y+hls`e*i@`QC0u|