From c518cba3ece912fcb88215f19151ed9f7fefcddf Mon Sep 17 00:00:00 2001 From: garakmon Date: Tue, 5 Apr 2022 14:34:14 -0400 Subject: [PATCH] use json for region map sections - also update wild encounters inja template to consider whitespace trimming --- graphics/region_map/region_map.png | Bin 3315 -> 3407 bytes json_data_rules.mk | 12 + src/data/region_map/region_map_layout_kanto.h | 38 + .../region_map/region_map_layout_sevii_123.h | 38 + .../region_map/region_map_layout_sevii_45.h | 38 + .../region_map/region_map_layout_sevii_67.h | 38 + .../region_map_sections.entries.json.txt | 27 + src/data/region_map/region_map_sections.json | 880 ++++++++++++++++++ .../region_map_sections.strings.json.txt | 18 + src/data/text/map_section_names.h | 109 --- src/data/wild_encounters.json.txt | 22 +- src/region_map.c | 498 +--------- tools/jsonproc/jsonproc.cpp | 14 + 13 files changed, 1145 insertions(+), 587 deletions(-) create mode 100644 src/data/region_map/region_map_layout_kanto.h create mode 100644 src/data/region_map/region_map_layout_sevii_123.h create mode 100644 src/data/region_map/region_map_layout_sevii_45.h create mode 100644 src/data/region_map/region_map_layout_sevii_67.h create mode 100644 src/data/region_map/region_map_sections.entries.json.txt create mode 100644 src/data/region_map/region_map_sections.json create mode 100644 src/data/region_map/region_map_sections.strings.json.txt delete mode 100644 src/data/text/map_section_names.h diff --git a/graphics/region_map/region_map.png b/graphics/region_map/region_map.png index 9413e86b1e6ac6e288c1864559d6d68ef60e683f..0fc27d0b9e4ddb7a07f4161f450f746cb5d9c2ec 100644 GIT binary patch literal 3407 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 bVZ3Muw~P~OWoc*Ez8v7X)7`P&o|W`}5Qx!* literal 3315 zcmVstSineu;Ypi9Y8Ez zKoiotEOC&1tC zs;^|=0M+8_7>rv5_(upod=-O{>EQd>?8mQU@KVSG!^#)e}BHwq-KE|W% ziqFksU4x~vjn4pR&H$P|z`=He_W%Ga59$Z8AOSAiIl$Hc9vvVWgP1WmlEKXhK%)R{ z2hb28o->GKaQjm1W1^k_8U@g6Q6=d>b^?Q_44y9m)E&Ss0e}V04SNhv0D#)>Pli8Z5TDy--{t^`!D49un~ftF0RMmusRLn<0Gh;LAaVLo z)Vn7qpx#S>Z33VPZa_kGWdNpw;c_09Cje^u9AIohT?>6E$)j^JnTAti7KmZ^mfDZsjHZWpht~X^_QSR=((GpV%+!#!}bK=tpl*g{X&4F0~8ypdkMh2lK{UYfQ6hu0RDiR zOIiT{a4FoG1Gsmu9iZ$0zF{c60YK>hMIRtJcCG>d1UbPSYr7ye`vVKb289QE5da>S z)~_=H&2T*CeSo&^^&MdUuHNXIW2T8-8!e#wiB*y|C zwzd6mRKOX=V@3b~HCmOX0~jfTO=mHj3;?yIpCW5%z?1+_IRF`SN`qz+fLu<^P>Jhx zy#j#6nVi5GbO2>(0Gd1Kibm@*%|c4?Fm464j_VT&y1wEo&!88z#BK& zWdLQ6QonE*Um`cOZpx1iTGJT6Vs2M7VRsh9|WX8@=ipQwd>0L_MIo4rqv^?@xc7+7;r z8vr}eu4nUVU;tL=(S&ylHpy%RAOi(Ri*3G6vBnT(FVGSpj^kA%GxESBnR`#2<48via0H)%aBJ z_C-DvDL`xklZADZ`!fc?y7g8Jwl6ZK2Lp&J2e6Kms~>o7FbLMI1E9$Ow1w#bn1Zn0 z&Mpk*D`hZjF+4Z`kA>n%rHTDhOKSk8`6vx~r3?n-S7eQMiJXVOBu6ZD{gVT{2ZLcO zhhm{h?;e7n>A=+L@h-beq7S4BK-lvbGW@`&fcaT_XO5KR$9 z2LLbN^BT&^vUA1&QFsRcWsqXSMomN`n+fJXq`75jI$%~Fz>Mzzz(dB)6V#Cj;0y+c z*u{e~&?jHT5RN2NcY7W(CRfnsTLgGd2C9TJ2H1%J4fPz&6%IaK0^lbyP&=G4002Cu zrVsIyk7M+a@op@HX{>$a4oWh^=<2 zm|bEt06F>~re`G%AjNo01_zD6=}H*@fQBm#04gZc!ycGcOS5eK9PH^Ga)8#w*eJkJ z8Q^U6#BP0aX8>~emtapYQI#Ji!ax-F9Y!7~0Xl$ofi|>6ypw+%K=vLX9~_yr!x9gm zk&w9t)B8XGzyQ7fpzXR-Nd(G31o^-$fC4oU6+8*|lHNNs2K0co>u&EVXD}iI)(yBJ z7zlt&uWvXzJA+6SJe>lBK7(q(7>G>`09vlpwC;IserIxTU5Xd3W!4*t5o+k91_M|D zSxfWWBshR~DP5LcEDIAc0_Q1X!16t^2n!j34&cbj9b8vpgt}A)C2J9qUeRYj1*GPK zQCJ158wY2wLn;T}dwW(cD#!sADLpa@(VY(2sSjaB5qK}p#O$h>c9pG9o%z8mfEa*c z;Rp0y#)5U9${ER+{(?qr3V=nCOJX1@wI=IWW|A1F1Qgf&_l^N8atQhE zJq9Y?Gh0lk9}KZ6o=%D*hFJFHgu&b=7u5rz(fk`32|FB$R~bxm1`$b7ftr2y?x_2m zFSY(*-Al85~;0vrs)q_-_1D-Je01O1+?Vq3zx!~?4-7!(Cm64b1yUyP)>OfIq+A#&-hIgi)O^;()AW0O3c$mp7mbiP?42Wmn|BX?{ zg5o)0(pe-iu#sW_Z?t^yZM$Btf8Br5_yT~wV0^YIp=0p*f{?+-y8aam&?Lc^u-h#& zM3*6P?IHjed<B0KZs*pxzSXRL^QfwC28FX@>|0@G@B$ZVrWS_8pFbM|d)ICs%0L=u1-QDu2U#lQ7h@3cpbFLax(+NK-~t>kzX6`P;*+je zUIfVVfnDeU&empty(); }); + env.add_callback("isEmptyString", 1, [](Arguments& args) { + return args.at(0)->get().empty(); + }); + + env.add_callback("cleanString", 1, [](Arguments& args) { + string badChars = ".'{} \n\t-_\u00e9"; + string str = args.at(0)->get(); + str.erase(remove_if(str.begin(), str.end(), [&badChars](const char &c) { + return badChars.find(c) != std::string::npos; + }), str.end()); + return str; + }); + try { env.write_with_json_file(templateFilepath, jsonfilepath, outputFilepath);