diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c6a0c2e9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.md5 +*.hak +*.tlk +*.mod diff --git a/_content/nwn_erf.exe b/_content/nwn_erf.exe index 1dba285f..d071908d 100644 Binary files a/_content/nwn_erf.exe and b/_content/nwn_erf.exe differ diff --git a/_module/gamma_age_v2.mod b/_module/gamma_age_v2.mod index 1c3a09fb..208dd7cb 100644 Binary files a/_module/gamma_age_v2.mod and b/_module/gamma_age_v2.mod differ diff --git a/_module/git/adventurers_inn.git.json b/_module/git/adventurers_inn.git.json index ddf1e2e9..7667e82c 100644 --- a/_module/git/adventurers_inn.git.json +++ b/_module/git/adventurers_inn.git.json @@ -248,9 +248,10 @@ "value": 7 }, "LocalizedName": { - "id": 12839, "type": "cexolocstring", - "value": {} + "value": { + "id": 12839 + } }, "Metal1Color": { "type": "byte", @@ -1048,15 +1049,15 @@ }, "YOrientation": { "type": "float", - "value": 0.0245428029447794 + "value": 0.024542802944779396 }, "YPosition": { "type": "float", - "value": 11.43988609313965 + "value": 11.439886093139648 }, "ZPosition": { "type": "float", - "value": -0.0002800226211547852 + "value": -0.00028002262115478516 } } ] @@ -1080,7 +1081,7 @@ }, "Bearing": { "type": "float", - "value": -3.141560792922974 + "value": -3.1415607929229736 }, "CloseLockDC": { "type": "byte", @@ -1157,10 +1158,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", "value": { - "0": "Main Exit" + "0": "Main Exit", + "id": 5349 } }, "OnClick": { @@ -1300,7 +1301,7 @@ }, "Bearing": { "type": "float", - "value": 1.748436773141293e-007 + "value": 0.0000001748436773141293 }, "CloseLockDC": { "type": "byte", @@ -1377,10 +1378,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", "value": { - "0": "Back Door" + "0": "Back Door", + "id": 5349 } }, "OnClick": { @@ -1497,7 +1498,7 @@ }, "Y": { "type": "float", - "value": 24.23999977111816 + "value": 24.239999771118164 }, "Z": { "type": "float", @@ -1595,10 +1596,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", "value": { - "0": "Door Up" + "0": "Door Up", + "id": 5349 } }, "OnClick": { @@ -1715,7 +1716,7 @@ }, "Y": { "type": "float", - "value": 24.98999977111816 + "value": 24.989999771118164 }, "Z": { "type": "float", @@ -1770,10 +1771,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -1821,10 +1822,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -1953,7 +1954,7 @@ }, "X": { "type": "float", - "value": 33.61202239990234 + "value": 33.612022399902344 }, "Y": { "type": "float", @@ -1999,10 +2000,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -2050,10 +2051,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -2190,7 +2191,7 @@ }, "Z": { "type": "float", - "value": 0.01512813568115234 + "value": 0.015128135681152344 } }, { @@ -2209,7 +2210,7 @@ }, "Bearing": { "type": "float", - "value": 0.2454366981983185 + "value": 0.24543669819831848 }, "BodyBag": { "type": "byte", @@ -2228,10 +2229,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -2279,10 +2280,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -2419,7 +2420,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -2457,10 +2458,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -2508,10 +2509,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -2648,7 +2649,7 @@ }, "Z": { "type": "float", - "value": 0.01652622222900391 + "value": 0.016526222229003906 } }, { @@ -2686,9 +2687,10 @@ "value": 15 }, "Description": { - "id": 84163, "type": "cexolocstring", - "value": {} + "value": { + "id": 84163 + } }, "DisarmDC": { "type": "byte", @@ -2735,9 +2737,10 @@ "value": 0 }, "LocName": { - "id": 83416, "type": "cexolocstring", - "value": {} + "value": { + "id": 83416 + } }, "OnClick": { "type": "resref", @@ -2873,7 +2876,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-007 + "value": 0.00000095367431640625 } }, { @@ -2911,10 +2914,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -2962,10 +2965,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -3094,7 +3097,7 @@ }, "X": { "type": "float", - "value": 26.05856513977051 + "value": 26.058565139770508 }, "Y": { "type": "float", @@ -3102,7 +3105,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3121,7 +3124,7 @@ }, "Bearing": { "type": "float", - "value": -1.86531388759613 + "value": -1.8653138875961304 }, "BodyBag": { "type": "byte", @@ -3140,10 +3143,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -3191,10 +3194,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -3323,7 +3326,7 @@ }, "X": { "type": "float", - "value": 27.93687438964844 + "value": 27.936874389648438 }, "Y": { "type": "float", @@ -3331,7 +3334,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3369,10 +3372,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -3420,10 +3423,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -3552,15 +3555,15 @@ }, "X": { "type": "float", - "value": 25.5960578918457 + "value": 25.596057891845703 }, "Y": { "type": "float", - "value": 4.161631584167481 + "value": 4.1616315841674805 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3598,10 +3601,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -3649,10 +3652,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { @@ -3781,7 +3784,7 @@ }, "X": { "type": "float", - "value": 24.20881843566895 + "value": 24.208818435668945 }, "Y": { "type": "float", @@ -3789,7 +3792,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -4008,11 +4011,11 @@ }, "X": { "type": "float", - "value": 29.35725784301758 + "value": 29.357257843017578 }, "Y": { "type": "float", - "value": 11.43533039093018 + "value": 11.435330390930176 }, "Z": { "type": "float", @@ -4035,7 +4038,7 @@ }, "Bearing": { "type": "float", - "value": 1.59533965587616 + "value": 1.5953396558761597 }, "BodyBag": { "type": "byte", @@ -4054,9 +4057,10 @@ "value": 15 }, "Description": { - "id": 14739, "type": "cexolocstring", - "value": {} + "value": { + "id": 14739 + } }, "DisarmDC": { "type": "byte", @@ -4103,9 +4107,10 @@ "value": 0 }, "LocName": { - "id": 111255, "type": "cexolocstring", - "value": {} + "value": { + "id": 111255 + } }, "OnClick": { "type": "resref", @@ -4237,11 +4242,11 @@ }, "Y": { "type": "float", - "value": 10.92751884460449 + "value": 10.927518844604492 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4279,10 +4284,10 @@ "value": 15 }, "Description": { - "id": 14663, "type": "cexolocstring", "value": { - "0": "You can almost taste the hearty ale within the cask." + "0": "You can almost taste the hearty ale within the cask.", + "id": 14663 } }, "DisarmDC": { @@ -4330,9 +4335,10 @@ "value": 0 }, "LocName": { - "id": 5714, "type": "cexolocstring", - "value": {} + "value": { + "id": 5714 + } }, "OnClick": { "type": "resref", @@ -4460,7 +4466,7 @@ }, "X": { "type": "float", - "value": 3.053919315338135 + "value": 3.0539193153381348 }, "Y": { "type": "float", @@ -4507,9 +4513,10 @@ "value": 5000 }, "LocName": { - "id": 67793, "type": "cexolocstring", - "value": {} + "value": { + "id": 67793 + } }, "Looping": { "type": "byte", @@ -4596,11 +4603,11 @@ }, "YPosition": { "type": "float", - "value": 6.426829338073731 + "value": 6.4268293380737305 }, "ZPosition": { "type": "float", - "value": 2.250001192092896 + "value": 2.2500011920928955 } }, { @@ -4634,9 +4641,10 @@ "value": 5000 }, "LocName": { - "id": 67826, "type": "cexolocstring", - "value": {} + "value": { + "id": 67826 + } }, "Looping": { "type": "byte", @@ -4652,7 +4660,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -4758,11 +4766,11 @@ }, "YPosition": { "type": "float", - "value": 2.416299104690552 + "value": 2.4162991046905518 }, "ZPosition": { "type": "float", - "value": 1.500000953674316 + "value": 1.5000009536743164 } }, { @@ -4796,9 +4804,10 @@ "value": 0 }, "LocName": { - "id": 67855, "type": "cexolocstring", - "value": {} + "value": { + "id": 67855 + } }, "Looping": { "type": "byte", @@ -4878,7 +4887,7 @@ }, "YPosition": { "type": "float", - "value": 27.01031112670898 + "value": 27.010311126708984 }, "ZPosition": { "type": "float", @@ -4993,9 +5002,10 @@ "value": 1 }, "LocalizedName": { - "id": 180, "type": "cexolocstring", - "value": {} + "value": { + "id": 180 + } }, "ModelPart1": { "type": "byte", @@ -5109,7 +5119,7 @@ }, "XPosition": { "type": "float", - "value": 2.874224424362183 + "value": 2.8742244243621826 }, "YOrientation": { "type": "float", @@ -5117,11 +5127,11 @@ }, "YPosition": { "type": "float", - "value": 15.90747928619385 + "value": 15.907479286193848 }, "ZPosition": { "type": "float", - "value": -0.0002800226211547852 + "value": -0.00028002262115478516 } } ] @@ -5152,10 +5162,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Respawn Location" + "0": "Respawn Location", + "id": 14817 } }, "MapNote": { @@ -5176,11 +5186,11 @@ }, "XOrientation": { "type": "float", - "value": -5.157785835763207e-006 + "value": -0.000005157785835763207 }, "XPosition": { "type": "float", - "value": 16.56000137329102 + "value": 16.560001373291016 }, "YOrientation": { "type": "float", @@ -5188,11 +5198,11 @@ }, "YPosition": { "type": "float", - "value": 15.8717794418335 + "value": 15.871779441833496 }, "ZPosition": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -5214,9 +5224,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", - "value": {} + "value": { + "id": 14817 + } }, "MapNote": { "type": "cexolocstring", @@ -5248,11 +5259,11 @@ }, "YPosition": { "type": "float", - "value": 15.8717794418335 + "value": 15.871779441833496 }, "ZPosition": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } } ] diff --git a/_module/git/desolateanddespa.git.json b/_module/git/desolateanddespa.git.json index e676950e..465d3d87 100644 --- a/_module/git/desolateanddespa.git.json +++ b/_module/git/desolateanddespa.git.json @@ -105,9 +105,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -155,9 +156,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -259,9 +261,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -906,7 +909,7 @@ }, "XPosition": { "type": "float", - "value": 20.76999473571777 + "value": 20.769994735717773 }, "YOrientation": { "type": "float", @@ -914,7 +917,7 @@ }, "YPosition": { "type": "float", - "value": 19.48442077636719 + "value": 19.484420776367188 }, "ZPosition": { "type": "float", @@ -980,9 +983,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -1030,9 +1034,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -1134,9 +1139,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -1781,7 +1787,7 @@ }, "XPosition": { "type": "float", - "value": 29.05035018920898 + "value": 29.050350189208984 }, "YOrientation": { "type": "float", @@ -1855,9 +1861,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -1905,9 +1912,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -2009,9 +2017,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -2730,9 +2739,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -2780,9 +2790,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -2884,9 +2895,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -3531,7 +3543,7 @@ }, "XPosition": { "type": "float", - "value": 36.24361419677734 + "value": 36.243614196777344 }, "YOrientation": { "type": "float", @@ -3539,7 +3551,7 @@ }, "YPosition": { "type": "float", - "value": 6.99939775466919 + "value": 6.9993977546691895 }, "ZPosition": { "type": "float", @@ -3605,9 +3617,10 @@ "value": "" }, "Description": { - "id": 12429, "type": "cexolocstring", - "value": {} + "value": { + "id": 12429 + } }, "Dex": { "type": "byte", @@ -3655,9 +3668,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -3775,9 +3789,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -3895,9 +3910,10 @@ "value": 0 }, "LocalizedName": { - "id": 13253, "type": "cexolocstring", - "value": {} + "value": { + "id": 13253 + } }, "ModelPart1": { "type": "byte", @@ -4015,9 +4031,10 @@ "value": 0 }, "LocalizedName": { - "id": 13101, "type": "cexolocstring", - "value": {} + "value": { + "id": 13101 + } }, "ModelPart1": { "type": "byte", @@ -4126,9 +4143,10 @@ ] }, "FirstName": { - "id": 57919, "type": "cexolocstring", - "value": {} + "value": { + "id": 57919 + } }, "fortbonus": { "type": "short", @@ -4773,7 +4791,7 @@ }, "XPosition": { "type": "float", - "value": 37.59464263916016 + "value": 37.594642639160156 }, "YOrientation": { "type": "float", @@ -4781,11 +4799,11 @@ }, "YPosition": { "type": "float", - "value": 47.08803558349609 + "value": 47.088035583496094 }, "ZPosition": { "type": "float", - "value": 10.02328968048096 + "value": 10.023289680480957 } }, { @@ -4847,9 +4865,10 @@ "value": "" }, "Description": { - "id": 12429, "type": "cexolocstring", - "value": {} + "value": { + "id": 12429 + } }, "Dex": { "type": "byte", @@ -4897,9 +4916,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -5017,9 +5037,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -5137,9 +5158,10 @@ "value": 0 }, "LocalizedName": { - "id": 13253, "type": "cexolocstring", - "value": {} + "value": { + "id": 13253 + } }, "ModelPart1": { "type": "byte", @@ -5257,9 +5279,10 @@ "value": 0 }, "LocalizedName": { - "id": 13101, "type": "cexolocstring", - "value": {} + "value": { + "id": 13101 + } }, "ModelPart1": { "type": "byte", @@ -5368,9 +5391,10 @@ ] }, "FirstName": { - "id": 57919, "type": "cexolocstring", - "value": {} + "value": { + "id": 57919 + } }, "fortbonus": { "type": "short", @@ -6023,7 +6047,7 @@ }, "YPosition": { "type": "float", - "value": 70.35720825195313 + "value": 70.35720825195312 }, "ZPosition": { "type": "float", @@ -6089,9 +6113,10 @@ "value": "" }, "Description": { - "id": 12817, "type": "cexolocstring", - "value": {} + "value": { + "id": 12817 + } }, "Dex": { "type": "byte", @@ -6139,9 +6164,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6259,9 +6285,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6379,9 +6406,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6499,9 +6527,10 @@ "value": 0 }, "LocalizedName": { - "id": 13074, "type": "cexolocstring", - "value": {} + "value": { + "id": 13074 + } }, "ModelPart1": { "type": "byte", @@ -6648,10 +6677,10 @@ ] }, "FirstName": { - "id": 12818, "type": "cexolocstring", "value": { - "0": "Winter Wolf" + "0": "Winter Wolf", + "id": 12818 } }, "fortbonus": { @@ -7343,7 +7372,7 @@ }, "XPosition": { "type": "float", - "value": 75.99844360351563 + "value": 75.99844360351562 }, "YOrientation": { "type": "float", @@ -7351,7 +7380,7 @@ }, "YPosition": { "type": "float", - "value": 50.68719863891602 + "value": 50.687198638916016 }, "ZPosition": { "type": "float", @@ -7417,10 +7446,10 @@ "value": "" }, "Description": { - "id": 12420, "type": "cexolocstring", "value": { - "0": "The inner core of your being, that which gives you your psionic powers." + "0": "The inner core of your being, that which gives you your psionic powers.", + "id": 12420 } }, "Dex": { @@ -7459,10 +7488,10 @@ ] }, "FirstName": { - "id": 12421, "type": "cexolocstring", "value": { - "0": "Inner Core" + "0": "Inner Core", + "id": 12421 } }, "fortbonus": { @@ -8325,7 +8354,7 @@ }, "Bearing": { "type": "float", - "value": -1.570794820785523 + "value": -1.5707948207855225 }, "CloseLockDC": { "type": "byte", @@ -8400,9 +8429,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -8518,7 +8548,7 @@ }, "Y": { "type": "float", - "value": 12.88000011444092 + "value": 12.880000114440918 }, "Z": { "type": "float", @@ -8573,10 +8603,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -8624,10 +8654,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClick": { @@ -8756,11 +8786,11 @@ }, "X": { "type": "float", - "value": 39.69971084594727 + "value": 39.699710845947266 }, "Y": { "type": "float", - "value": 49.18886566162109 + "value": 49.188865661621094 }, "Z": { "type": "float", @@ -8803,9 +8833,10 @@ "value": 5000 }, "LocName": { - "id": 68030, "type": "cexolocstring", - "value": {} + "value": { + "id": 68030 + } }, "Looping": { "type": "byte", @@ -8821,7 +8852,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -8881,15 +8912,15 @@ }, "XPosition": { "type": "float", - "value": 35.77315521240234 + "value": 35.773155212402344 }, "YPosition": { "type": "float", - "value": 28.92969131469727 + "value": 28.929691314697266 }, "ZPosition": { "type": "float", - "value": -1.899999856948853 + "value": -1.8999998569488525 } }, { @@ -8923,9 +8954,10 @@ "value": 5000 }, "LocName": { - "id": 68030, "type": "cexolocstring", - "value": {} + "value": { + "id": 68030 + } }, "Looping": { "type": "byte", @@ -8941,7 +8973,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -9001,7 +9033,7 @@ }, "XPosition": { "type": "float", - "value": 2.996747970581055 + "value": 2.9967479705810547 }, "YPosition": { "type": "float", @@ -9009,7 +9041,7 @@ }, "ZPosition": { "type": "float", - "value": 1.588324546813965 + "value": 1.5883245468139648 } }, { @@ -9043,9 +9075,10 @@ "value": 5000 }, "LocName": { - "id": 68034, "type": "cexolocstring", - "value": {} + "value": { + "id": 68034 + } }, "Looping": { "type": "byte", @@ -9061,7 +9094,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -9163,9 +9196,10 @@ "value": 5000 }, "LocName": { - "id": 91312, "type": "cexolocstring", - "value": {} + "value": { + "id": 91312 + } }, "Looping": { "type": "byte", @@ -9181,7 +9215,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -9304,7 +9338,7 @@ }, "XPosition": { "type": "float", - "value": 39.02038192749023 + "value": 39.020381927490234 }, "YPosition": { "type": "float", @@ -9346,9 +9380,10 @@ "value": 5000 }, "LocName": { - "id": 91312, "type": "cexolocstring", - "value": {} + "value": { + "id": 91312 + } }, "Looping": { "type": "byte", @@ -9364,7 +9399,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -9491,11 +9526,11 @@ }, "YPosition": { "type": "float", - "value": 55.63458633422852 + "value": 55.634586334228516 }, "ZPosition": { "type": "float", - "value": 11.29591751098633 + "value": 11.295917510986328 } }, { @@ -9529,9 +9564,10 @@ "value": 5000 }, "LocName": { - "id": 91311, "type": "cexolocstring", - "value": {} + "value": { + "id": 91311 + } }, "Looping": { "type": "byte", @@ -9547,7 +9583,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -9670,11 +9706,11 @@ }, "XPosition": { "type": "float", - "value": 7.411387443542481 + "value": 7.4113874435424805 }, "YPosition": { "type": "float", - "value": 46.72670745849609 + "value": 46.726707458496094 }, "ZPosition": { "type": "float", @@ -9712,9 +9748,10 @@ "value": 5000 }, "LocName": { - "id": 91311, "type": "cexolocstring", - "value": {} + "value": { + "id": 91311 + } }, "Looping": { "type": "byte", @@ -9730,7 +9767,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -9895,9 +9932,10 @@ "value": 0 }, "LocName": { - "id": 67845, "type": "cexolocstring", - "value": {} + "value": { + "id": 67845 + } }, "Looping": { "type": "byte", @@ -9977,7 +10015,7 @@ }, "YPosition": { "type": "float", - "value": 13.41970634460449 + "value": 13.419706344604492 }, "ZPosition": { "type": "float", @@ -10015,9 +10053,10 @@ "value": 0 }, "LocName": { - "id": 67903, "type": "cexolocstring", - "value": {} + "value": { + "id": 67903 + } }, "Looping": { "type": "byte", @@ -10101,7 +10140,7 @@ }, "ZPosition": { "type": "float", - "value": 2.099999904632568 + "value": 2.0999999046325684 } } ] diff --git a/_module/git/dmfi_custom_enc.git.json b/_module/git/dmfi_custom_enc.git.json index 86639523..363599d1 100644 --- a/_module/git/dmfi_custom_enc.git.json +++ b/_module/git/dmfi_custom_enc.git.json @@ -97,9 +97,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -146,9 +147,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -276,15 +278,15 @@ }, "X": { "type": "float", - "value": 85.21096801757813 + "value": 85.21096801757812 }, "Y": { "type": "float", - "value": 15.20523357391357 + "value": 15.205233573913574 }, "Z": { "type": "float", - "value": 9.5367431640625e-007 + "value": 0.00000095367431640625 } }, { @@ -322,9 +324,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -371,9 +374,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -509,7 +513,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-007 + "value": 0.00000095367431640625 } }, { @@ -547,9 +551,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -596,9 +601,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -730,11 +736,11 @@ }, "Y": { "type": "float", - "value": 25.3108081817627 + "value": 25.310808181762695 }, "Z": { "type": "float", - "value": 9.5367431640625e-007 + "value": 0.00000095367431640625 } }, { @@ -772,9 +778,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -821,9 +828,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -959,7 +967,7 @@ }, "Z": { "type": "float", - "value": 0.01000169478356838 + "value": 0.010001694783568382 } }, { @@ -997,9 +1005,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -1046,9 +1055,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -1176,7 +1186,7 @@ }, "X": { "type": "float", - "value": 45.06020355224609 + "value": 45.060203552246094 }, "Y": { "type": "float", @@ -1184,7 +1194,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -1222,9 +1232,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -1271,9 +1282,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -1401,15 +1413,15 @@ }, "X": { "type": "float", - "value": 24.48636627197266 + "value": 24.486366271972656 }, "Y": { "type": "float", - "value": 24.66991996765137 + "value": 24.669919967651367 }, "Z": { "type": "float", - "value": 9.5367431640625e-007 + "value": 0.00000095367431640625 } }, { @@ -1447,9 +1459,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -1496,9 +1509,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -1634,7 +1648,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -1672,9 +1686,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -1721,9 +1736,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -1859,7 +1875,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -1897,9 +1913,10 @@ "value": 15 }, "Description": { - "id": 68920, "type": "cexolocstring", - "value": {} + "value": { + "id": 68920 + } }, "DisarmDC": { "type": "byte", @@ -1946,9 +1963,10 @@ "value": 0 }, "LocName": { - "id": 9199, "type": "cexolocstring", - "value": {} + "value": { + "id": 9199 + } }, "OnClick": { "type": "resref", @@ -2080,11 +2098,11 @@ }, "Y": { "type": "float", - "value": 24.80458068847656 + "value": 24.804580688476562 }, "Z": { "type": "float", - "value": -4.76837158203125e-007 + "value": -0.000000476837158203125 } }, { @@ -2122,9 +2140,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -2171,10 +2190,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 4" + "0": "Encounter 4", + "id": 14561 } }, "OnClick": { @@ -2303,15 +2322,15 @@ }, "X": { "type": "float", - "value": 24.51339721679688 + "value": 24.513397216796875 }, "Y": { "type": "float", - "value": 27.55630493164063 + "value": 27.556304931640625 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -2349,9 +2368,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -2398,10 +2418,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 6" + "0": "Encounter 6", + "id": 14561 } }, "OnClick": { @@ -2530,15 +2550,15 @@ }, "X": { "type": "float", - "value": 45.13217163085938 + "value": 45.132171630859375 }, "Y": { "type": "float", - "value": 27.15978813171387 + "value": 27.159788131713867 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -2576,9 +2596,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -2625,10 +2646,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 8" + "0": "Encounter 8", + "id": 14561 } }, "OnClick": { @@ -2761,11 +2782,11 @@ }, "Y": { "type": "float", - "value": 27.81636810302734 + "value": 27.816368103027344 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -2803,9 +2824,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -2852,10 +2874,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 2" + "0": "Encounter 2", + "id": 14561 } }, "OnClick": { @@ -2988,11 +3010,11 @@ }, "Y": { "type": "float", - "value": 27.48703002929688 + "value": 27.487030029296875 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3030,9 +3052,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -3079,10 +3102,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 1" + "0": "Encounter 1", + "id": 14561 } }, "OnClick": { @@ -3219,7 +3242,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3257,9 +3280,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -3306,10 +3330,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 3" + "0": "Encounter 3", + "id": 14561 } }, "OnClick": { @@ -3438,7 +3462,7 @@ }, "X": { "type": "float", - "value": 25.08533668518066 + "value": 25.085336685180664 }, "Y": { "type": "float", @@ -3446,7 +3470,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3484,9 +3508,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -3533,10 +3558,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 5" + "0": "Encounter 5", + "id": 14561 } }, "OnClick": { @@ -3665,7 +3690,7 @@ }, "X": { "type": "float", - "value": 45.32294082641602 + "value": 45.322940826416016 }, "Y": { "type": "float", @@ -3673,7 +3698,7 @@ }, "Z": { "type": "float", - "value": 0.01000165939331055 + "value": 0.010001659393310547 } }, { @@ -3711,9 +3736,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -3760,10 +3786,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 7" + "0": "Encounter 7", + "id": 14561 } }, "OnClick": { @@ -3900,7 +3926,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3938,9 +3964,10 @@ "value": 15 }, "Description": { - "id": 14560, "type": "cexolocstring", - "value": {} + "value": { + "id": 14560 + } }, "DisarmDC": { "type": "byte", @@ -3987,10 +4014,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Encounter 9" + "0": "Encounter 9", + "id": 14561 } }, "OnClick": { @@ -4127,7 +4154,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -4165,10 +4192,10 @@ "value": 15 }, "Description": { - "id": 14716, "type": "cexolocstring", "value": { - "0": "This region is for the new custom encounter system that works with the DMFI Encounter wand and widget. It allows you to set up 9 encounters in this region and then they can be called using the DMFI Encounter wand. You can adjust them at any time during the game to find a good balance. The ditto widget will work with these encounters as well.\n\nTo set them up, place monsters in (or immediately around) each stone circle. That is it. ALL will spawn. There is NO scaling to the system. You can go into the toolset and change the name of the WAYPOINT to match the name of your encounter.\n\nDO NOT MIX FACTIONS HERE. That is the reason for the raised terrain. Hostiles on one side and Commoners on the other. You can mix factions IF you shut off the creature AI, but this takes good timing and planning." + "0": "This region is for the new custom encounter system that works with the DMFI Encounter wand and widget. It allows you to set up 9 encounters in this region and then they can be called using the DMFI Encounter wand. You can adjust them at any time during the game to find a good balance. The ditto widget will work with these encounters as well.\n\nTo set them up, place monsters in (or immediately around) each stone circle. That is it. ALL will spawn. There is NO scaling to the system. You can go into the toolset and change the name of the WAYPOINT to match the name of your encounter.\n\nDO NOT MIX FACTIONS HERE. That is the reason for the raised terrain. Hostiles on one side and Commoners on the other. You can mix factions IF you shut off the creature AI, but this takes good timing and planning.", + "id": 14716 } }, "DisarmDC": { @@ -4216,10 +4243,10 @@ "value": 0 }, "LocName": { - "id": 5732, "type": "cexolocstring", "value": { - "0": "In game directions (examine)" + "0": "In game directions (examine)", + "id": 5732 } }, "OnClick": { @@ -4356,7 +4383,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -4394,10 +4421,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "You look about you, suspicious, but see nothing." + "0": "You look about you, suspicious, but see nothing.", + "id": 14662 } }, "DisarmDC": { @@ -4445,10 +4472,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Color Tag Generator" + "0": "Color Tag Generator", + "id": 5800 } }, "OnClick": { @@ -4577,11 +4604,11 @@ }, "X": { "type": "float", - "value": 57.86160278320313 + "value": 57.861602783203125 }, "Y": { "type": "float", - "value": 16.64840126037598 + "value": 16.648401260375977 }, "Z": { "type": "float", @@ -4623,10 +4650,10 @@ "value": 15 }, "Description": { - "id": 14716, "type": "cexolocstring", "value": { - "0": "Do not pass Go. Do not collect 200 dollars." + "0": "Do not pass Go. Do not collect 200 dollars.", + "id": 14716 } }, "DisarmDC": { @@ -4674,10 +4701,10 @@ "value": 0 }, "LocName": { - "id": 5732, "type": "cexolocstring", "value": { - "0": "Welcome to Jail" + "0": "Welcome to Jail", + "id": 5732 } }, "OnClick": { @@ -4806,15 +4833,15 @@ }, "X": { "type": "float", - "value": 114.6023406982422 + "value": 114.60234069824219 }, "Y": { "type": "float", - "value": 12.31245994567871 + "value": 12.312459945678711 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5121,7 +5148,7 @@ }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5182,11 +5209,11 @@ }, "YPosition": { "type": "float", - "value": 24.65165519714356 + "value": 24.651655197143555 }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5239,7 +5266,7 @@ }, "XPosition": { "type": "float", - "value": 24.89200973510742 + "value": 24.892009735107422 }, "YOrientation": { "type": "float", @@ -5304,7 +5331,7 @@ }, "XPosition": { "type": "float", - "value": 24.76244163513184 + "value": 24.762441635131836 }, "YOrientation": { "type": "float", @@ -5312,11 +5339,11 @@ }, "YPosition": { "type": "float", - "value": 24.31024360656738 + "value": 24.310243606567383 }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5369,7 +5396,7 @@ }, "XPosition": { "type": "float", - "value": 45.62823104858398 + "value": 45.628231048583984 }, "YOrientation": { "type": "float", @@ -5381,7 +5408,7 @@ }, "ZPosition": { "type": "float", - "value": 0.01000364497303963 + "value": 0.010003644973039627 } }, { @@ -5434,7 +5461,7 @@ }, "XPosition": { "type": "float", - "value": 45.12247467041016 + "value": 45.122474670410156 }, "YOrientation": { "type": "float", @@ -5446,7 +5473,7 @@ }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5511,7 +5538,7 @@ }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5564,7 +5591,7 @@ }, "XPosition": { "type": "float", - "value": 75.13063812255859 + "value": 75.1306381225586 }, "YOrientation": { "type": "float", @@ -5572,11 +5599,11 @@ }, "YPosition": { "type": "float", - "value": 24.80731391906738 + "value": 24.807313919067383 }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5637,11 +5664,11 @@ }, "YPosition": { "type": "float", - "value": 14.54287528991699 + "value": 14.542875289916992 }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -5663,10 +5690,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Waypoint" + "0": "Waypoint", + "id": 14817 } }, "MapNote": { @@ -5691,7 +5718,7 @@ }, "XPosition": { "type": "float", - "value": 112.534538269043 + "value": 112.53453826904297 }, "YOrientation": { "type": "float", @@ -5699,11 +5726,11 @@ }, "YPosition": { "type": "float", - "value": 14.85193347930908 + "value": 14.851933479309082 }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } } ] diff --git a/_module/git/ey_dpcon_erewood.git.json b/_module/git/ey_dpcon_erewood.git.json index d3ed1c89..d2ddbb14 100644 --- a/_module/git/ey_dpcon_erewood.git.json +++ b/_module/git/ey_dpcon_erewood.git.json @@ -97,9 +97,10 @@ "value": 15 }, "Description": { - "id": 14557, "type": "cexolocstring", - "value": {} + "value": { + "id": 14557 + } }, "DisarmDC": { "type": "byte", @@ -146,9 +147,10 @@ "value": 0 }, "LocName": { - "id": 14558, "type": "cexolocstring", - "value": {} + "value": { + "id": 14558 + } }, "OnClosed": { "type": "resref", @@ -280,7 +282,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -318,9 +320,10 @@ "value": 15 }, "Description": { - "id": 14586, "type": "cexolocstring", - "value": {} + "value": { + "id": 14586 + } }, "DisarmDC": { "type": "byte", @@ -367,9 +370,10 @@ "value": 0 }, "LocName": { - "id": 5700, "type": "cexolocstring", - "value": {} + "value": { + "id": 5700 + } }, "OnClosed": { "type": "resref", @@ -493,7 +497,7 @@ }, "X": { "type": "float", - "value": 42.82106781005859 + "value": 42.821067810058594 }, "Y": { "type": "float", @@ -501,7 +505,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -539,9 +543,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -588,9 +593,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -722,7 +728,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -760,9 +766,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -809,9 +816,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -981,9 +989,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1030,9 +1039,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1156,15 +1166,15 @@ }, "X": { "type": "float", - "value": 37.77213287353516 + "value": 37.772132873535156 }, "Y": { "type": "float", - "value": 12.39786338806152 + "value": 12.397863388061523 }, "Z": { "type": "float", - "value": -1.937150955200195e-007 + "value": -0.00000019371509552001953 } }, { @@ -1202,9 +1212,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -1251,9 +1262,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1377,15 +1389,15 @@ }, "X": { "type": "float", - "value": 43.51470565795898 + "value": 43.514705657958984 }, "Y": { "type": "float", - "value": 14.01102447509766 + "value": 14.011024475097656 }, "Z": { "type": "float", - "value": 0.04150157049298286 + "value": 0.041501570492982864 } }, { @@ -1423,9 +1435,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1472,9 +1485,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1602,7 +1616,7 @@ }, "Y": { "type": "float", - "value": 13.1573600769043 + "value": 13.157360076904297 }, "Z": { "type": "float", @@ -1644,9 +1658,10 @@ "value": 15 }, "Description": { - "id": 66885, "type": "cexolocstring", - "value": {} + "value": { + "id": 66885 + } }, "DisarmDC": { "type": "byte", @@ -1693,9 +1708,10 @@ "value": 0 }, "LocName": { - "id": 52998, "type": "cexolocstring", - "value": {} + "value": { + "id": 52998 + } }, "OnClosed": { "type": "resref", @@ -1827,7 +1843,7 @@ }, "Z": { "type": "float", - "value": 2.384185791015625e-007 + "value": 0.0000002384185791015625 } }, { @@ -1865,9 +1881,10 @@ "value": 15 }, "Description": { - "id": 14736, "type": "cexolocstring", - "value": {} + "value": { + "id": 14736 + } }, "DisarmDC": { "type": "byte", @@ -1914,9 +1931,10 @@ "value": 0 }, "LocName": { - "id": 5738, "type": "cexolocstring", - "value": {} + "value": { + "id": 5738 + } }, "OnClosed": { "type": "resref", @@ -2040,11 +2058,11 @@ }, "X": { "type": "float", - "value": 39.49908065795898 + "value": 39.499080657958984 }, "Y": { "type": "float", - "value": 42.78000640869141 + "value": 42.780006408691406 }, "Z": { "type": "float", @@ -2086,9 +2104,10 @@ "value": 15 }, "Description": { - "id": 14750, "type": "cexolocstring", - "value": {} + "value": { + "id": 14750 + } }, "DisarmDC": { "type": "byte", @@ -2135,9 +2154,10 @@ "value": 0 }, "LocName": { - "id": 5819, "type": "cexolocstring", - "value": {} + "value": { + "id": 5819 + } }, "OnClosed": { "type": "resref", @@ -2261,7 +2281,7 @@ }, "X": { "type": "float", - "value": 44.82220077514648 + "value": 44.822200775146484 }, "Y": { "type": "float", @@ -2269,7 +2289,7 @@ }, "Z": { "type": "float", - "value": -4.76837158203125e-007 + "value": -0.000000476837158203125 } }, { @@ -2307,9 +2327,10 @@ "value": 15 }, "Description": { - "id": 14609, "type": "cexolocstring", - "value": {} + "value": { + "id": 14609 + } }, "DisarmDC": { "type": "byte", @@ -2356,9 +2377,10 @@ "value": 0 }, "LocName": { - "id": 5791, "type": "cexolocstring", - "value": {} + "value": { + "id": 5791 + } }, "OnClosed": { "type": "resref", @@ -2490,7 +2512,7 @@ }, "Z": { "type": "float", - "value": 0.0429927408695221 + "value": 0.042992740869522095 } }, { @@ -2528,9 +2550,10 @@ "value": 15 }, "Description": { - "id": 14540, "type": "cexolocstring", - "value": {} + "value": { + "id": 14540 + } }, "DisarmDC": { "type": "byte", @@ -2577,10 +2600,10 @@ "value": 0 }, "LocName": { - "id": 14541, "type": "cexolocstring", "value": { - "0": "Focus" + "0": "Focus", + "id": 14541 } }, "OnClosed": { @@ -2705,7 +2728,7 @@ }, "X": { "type": "float", - "value": 41.14682006835938 + "value": 41.146820068359375 }, "Y": { "type": "float", @@ -2751,9 +2774,10 @@ "value": 15 }, "Description": { - "id": 14677, "type": "cexolocstring", - "value": {} + "value": { + "id": 14677 + } }, "DisarmDC": { "type": "byte", @@ -2800,9 +2824,10 @@ "value": 0 }, "LocName": { - "id": 14673, "type": "cexolocstring", - "value": {} + "value": { + "id": 14673 + } }, "OnClosed": { "type": "resref", @@ -2934,7 +2959,7 @@ }, "Z": { "type": "float", - "value": 1.001358032226563e-005 + "value": 0.000010013580322265625 } }, { @@ -2972,9 +2997,10 @@ "value": 15 }, "Description": { - "id": 14584, "type": "cexolocstring", - "value": {} + "value": { + "id": 14584 + } }, "DisarmDC": { "type": "byte", @@ -3021,9 +3047,10 @@ "value": 0 }, "LocName": { - "id": 5790, "type": "cexolocstring", - "value": {} + "value": { + "id": 5790 + } }, "OnClosed": { "type": "resref", @@ -3147,15 +3174,15 @@ }, "X": { "type": "float", - "value": 15.25651454925537 + "value": 15.256514549255371 }, "Y": { "type": "float", - "value": 13.30093288421631 + "value": 13.300932884216309 }, "Z": { "type": "float", - "value": 0.4138407707214356 + "value": 0.41384077072143555 } }, { @@ -3193,9 +3220,10 @@ "value": 15 }, "Description": { - "id": 14649, "type": "cexolocstring", - "value": {} + "value": { + "id": 14649 + } }, "DisarmDC": { "type": "byte", @@ -3242,9 +3270,10 @@ "value": 0 }, "LocName": { - "id": 14650, "type": "cexolocstring", - "value": {} + "value": { + "id": 14650 + } }, "OnClosed": { "type": "resref", @@ -3376,7 +3405,7 @@ }, "Z": { "type": "float", - "value": 2.384185791015625e-007 + "value": 0.0000002384185791015625 } }, { @@ -3414,9 +3443,10 @@ "value": 15 }, "Description": { - "id": 68872, "type": "cexolocstring", - "value": {} + "value": { + "id": 68872 + } }, "DisarmDC": { "type": "byte", @@ -3463,9 +3493,10 @@ "value": 0 }, "LocName": { - "id": 9188, "type": "cexolocstring", - "value": {} + "value": { + "id": 9188 + } }, "OnClosed": { "type": "resref", @@ -3589,15 +3620,15 @@ }, "X": { "type": "float", - "value": 27.46503829956055 + "value": 27.465038299560547 }, "Y": { "type": "float", - "value": 25.76974487304688 + "value": 25.769744873046875 }, "Z": { "type": "float", - "value": 0.3609549999237061 + "value": 0.36095499992370605 } }, { @@ -3635,9 +3666,10 @@ "value": 15 }, "Description": { - "id": 68871, "type": "cexolocstring", - "value": {} + "value": { + "id": 68871 + } }, "DisarmDC": { "type": "byte", @@ -3684,9 +3716,10 @@ "value": 0 }, "LocName": { - "id": 9207, "type": "cexolocstring", - "value": {} + "value": { + "id": 9207 + } }, "OnClosed": { "type": "resref", @@ -3810,11 +3843,11 @@ }, "X": { "type": "float", - "value": 27.54284286499023 + "value": 27.542842864990234 }, "Y": { "type": "float", - "value": 25.75577354431152 + "value": 25.755773544311523 }, "Z": { "type": "float", @@ -3856,9 +3889,10 @@ "value": 15 }, "Description": { - "id": 67632, "type": "cexolocstring", - "value": {} + "value": { + "id": 67632 + } }, "DisarmDC": { "type": "byte", @@ -3905,9 +3939,10 @@ "value": 0 }, "LocName": { - "id": 5725, "type": "cexolocstring", - "value": {} + "value": { + "id": 5725 + } }, "OnClosed": { "type": "resref", @@ -4035,7 +4070,7 @@ }, "Y": { "type": "float", - "value": 24.61386680603027 + "value": 24.613866806030273 }, "Z": { "type": "float", @@ -4077,9 +4112,10 @@ "value": 15 }, "Description": { - "id": 84172, "type": "cexolocstring", - "value": {} + "value": { + "id": 84172 + } }, "DisarmDC": { "type": "byte", @@ -4126,9 +4162,10 @@ "value": 0 }, "LocName": { - "id": 83426, "type": "cexolocstring", - "value": {} + "value": { + "id": 83426 + } }, "OnClosed": { "type": "resref", @@ -4252,7 +4289,7 @@ }, "X": { "type": "float", - "value": 10.4328727722168 + "value": 10.432872772216797 }, "Y": { "type": "float", @@ -4260,7 +4297,7 @@ }, "Z": { "type": "float", - "value": 0.0183146595954895 + "value": 0.018314659595489502 } }, { @@ -4298,9 +4335,10 @@ "value": 15 }, "Description": { - "id": 14586, "type": "cexolocstring", - "value": {} + "value": { + "id": 14586 + } }, "DisarmDC": { "type": "byte", @@ -4347,9 +4385,10 @@ "value": 0 }, "LocName": { - "id": 5700, "type": "cexolocstring", - "value": {} + "value": { + "id": 5700 + } }, "OnClosed": { "type": "resref", @@ -4473,11 +4512,11 @@ }, "X": { "type": "float", - "value": 10.39583396911621 + "value": 10.395833969116211 }, "Y": { "type": "float", - "value": 37.53082656860352 + "value": 37.530826568603516 }, "Z": { "type": "float", @@ -4519,9 +4558,10 @@ "value": 15 }, "Description": { - "id": 14559, "type": "cexolocstring", - "value": {} + "value": { + "id": 14559 + } }, "DisarmDC": { "type": "byte", @@ -4568,9 +4608,10 @@ "value": 0 }, "LocName": { - "id": 5821, "type": "cexolocstring", - "value": {} + "value": { + "id": 5821 + } }, "OnClosed": { "type": "resref", @@ -4694,7 +4735,7 @@ }, "X": { "type": "float", - "value": 10.88762187957764 + "value": 10.887621879577637 }, "Y": { "type": "float", @@ -4721,7 +4762,7 @@ }, "Bearing": { "type": "float", - "value": 1.816232323646545 + "value": 1.8162323236465454 }, "BodyBag": { "type": "byte", @@ -4740,9 +4781,10 @@ "value": 15 }, "Description": { - "id": 14559, "type": "cexolocstring", - "value": {} + "value": { + "id": 14559 + } }, "DisarmDC": { "type": "byte", @@ -4789,9 +4831,10 @@ "value": 0 }, "LocName": { - "id": 5821, "type": "cexolocstring", - "value": {} + "value": { + "id": 5821 + } }, "OnClosed": { "type": "resref", @@ -4923,7 +4966,7 @@ }, "Z": { "type": "float", - "value": 1.001358032226563e-005 + "value": 0.000010013580322265625 } }, { @@ -4961,9 +5004,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -5010,9 +5054,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -5140,11 +5185,11 @@ }, "Y": { "type": "float", - "value": 40.45883941650391 + "value": 40.458839416503906 }, "Z": { "type": "float", - "value": 1.192092895507813e-007 + "value": 0.00000011920928955078125 } }, { @@ -5182,9 +5227,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -5231,9 +5277,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -5361,11 +5408,11 @@ }, "Y": { "type": "float", - "value": 43.67095565795898 + "value": 43.670955657958984 }, "Z": { "type": "float", - "value": -2.384185791015625e-007 + "value": -0.0000002384185791015625 } }, { @@ -5403,9 +5450,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -5452,9 +5500,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -5582,11 +5631,11 @@ }, "Y": { "type": "float", - "value": 42.22009658813477 + "value": 42.220096588134766 }, "Z": { "type": "float", - "value": -2.384185791015625e-007 + "value": -0.0000002384185791015625 } }, { @@ -5624,9 +5673,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -5673,9 +5723,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -5799,11 +5850,11 @@ }, "X": { "type": "float", - "value": 45.83562850952148 + "value": 45.835628509521484 }, "Y": { "type": "float", - "value": 25.5269947052002 + "value": 25.526994705200195 }, "Z": { "type": "float", @@ -5845,9 +5896,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -5894,9 +5946,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -6028,7 +6081,7 @@ }, "Z": { "type": "float", - "value": 2.384185791015625e-007 + "value": 0.0000002384185791015625 } }, { @@ -6066,9 +6119,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -6115,9 +6169,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -6241,7 +6296,7 @@ }, "X": { "type": "float", - "value": 29.97814559936523 + "value": 29.978145599365234 }, "Y": { "type": "float", @@ -6287,9 +6342,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -6336,9 +6392,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -6462,7 +6519,7 @@ }, "X": { "type": "float", - "value": 31.14458847045898 + "value": 31.144588470458984 }, "Y": { "type": "float", @@ -6508,9 +6565,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -6557,9 +6615,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -6691,7 +6750,7 @@ }, "Z": { "type": "float", - "value": -5.960464477539063e-008 + "value": -5.960464477539063e-8 } }, { @@ -6729,9 +6788,10 @@ "value": 15 }, "Description": { - "id": 68852, "type": "cexolocstring", - "value": {} + "value": { + "id": 68852 + } }, "DisarmDC": { "type": "byte", @@ -6778,9 +6838,10 @@ "value": 0 }, "LocName": { - "id": 9208, "type": "cexolocstring", - "value": {} + "value": { + "id": 9208 + } }, "OnClosed": { "type": "resref", @@ -6912,7 +6973,7 @@ }, "Z": { "type": "float", - "value": 1.402871608734131 + "value": 1.4028716087341309 } }, { @@ -6950,9 +7011,10 @@ "value": 15 }, "Description": { - "id": 14750, "type": "cexolocstring", - "value": {} + "value": { + "id": 14750 + } }, "DisarmDC": { "type": "byte", @@ -6999,9 +7061,10 @@ "value": 0 }, "LocName": { - "id": 5819, "type": "cexolocstring", - "value": {} + "value": { + "id": 5819 + } }, "OnClosed": { "type": "resref", @@ -7125,7 +7188,7 @@ }, "X": { "type": "float", - "value": 29.47326850891113 + "value": 29.473268508911133 }, "Y": { "type": "float", @@ -7171,10 +7234,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -7222,10 +7285,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClosed": { @@ -7350,7 +7413,7 @@ }, "X": { "type": "float", - "value": 20.85512161254883 + "value": 20.855121612548828 }, "Y": { "type": "float", @@ -7397,9 +7460,10 @@ "value": 0 }, "LocName": { - "id": 67806, "type": "cexolocstring", - "value": {} + "value": { + "id": 67806 + } }, "Looping": { "type": "byte", @@ -7475,7 +7539,7 @@ }, "XPosition": { "type": "float", - "value": 42.78046035766602 + "value": 42.780460357666016 }, "YPosition": { "type": "float", @@ -7517,9 +7581,10 @@ "value": 0 }, "LocName": { - "id": 67978, "type": "cexolocstring", - "value": {} + "value": { + "id": 67978 + } }, "Looping": { "type": "byte", @@ -7599,7 +7664,7 @@ }, "YPosition": { "type": "float", - "value": 20.61979675292969 + "value": 20.619796752929688 }, "ZPosition": { "type": "float", @@ -7637,9 +7702,10 @@ "value": 0 }, "LocName": { - "id": 68014, "type": "cexolocstring", - "value": {} + "value": { + "id": 68014 + } }, "Looping": { "type": "byte", @@ -7719,7 +7785,7 @@ }, "YPosition": { "type": "float", - "value": 36.72332382202148 + "value": 36.723323822021484 }, "ZPosition": { "type": "float", @@ -7757,9 +7823,10 @@ "value": 5000 }, "LocName": { - "id": 68007, "type": "cexolocstring", - "value": {} + "value": { + "id": 68007 + } }, "Looping": { "type": "byte", @@ -7775,7 +7842,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -7849,11 +7916,11 @@ }, "XPosition": { "type": "float", - "value": 14.50231838226318 + "value": 14.502318382263184 }, "YPosition": { "type": "float", - "value": 30.95841979980469 + "value": 30.958419799804688 }, "ZPosition": { "type": "float", @@ -7891,9 +7958,10 @@ "value": 5000 }, "LocName": { - "id": 67886, "type": "cexolocstring", - "value": {} + "value": { + "id": 67886 + } }, "Looping": { "type": "byte", @@ -7909,7 +7977,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -7991,7 +8059,7 @@ }, "ZPosition": { "type": "float", - "value": 1.500010013580322 + "value": 1.5000100135803223 } }, { @@ -8025,9 +8093,10 @@ "value": 0 }, "LocName": { - "id": 67845, "type": "cexolocstring", - "value": {} + "value": { + "id": 67845 + } }, "Looping": { "type": "byte", @@ -8103,15 +8172,15 @@ }, "XPosition": { "type": "float", - "value": 20.66150856018066 + "value": 20.661508560180664 }, "YPosition": { "type": "float", - "value": 11.34990882873535 + "value": 11.349908828735352 }, "ZPosition": { "type": "float", - "value": 1.50374698638916 + "value": 1.5037469863891602 } } ] @@ -8146,9 +8215,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", - "value": {} + "value": { + "id": 14817 + } }, "MapNote": { "type": "cexolocstring", @@ -8172,7 +8242,7 @@ }, "XPosition": { "type": "float", - "value": 20.94911575317383 + "value": 20.949115753173828 }, "YOrientation": { "type": "float", @@ -8180,7 +8250,7 @@ }, "YPosition": { "type": "float", - "value": 11.40368461608887 + "value": 11.403684616088867 }, "ZPosition": { "type": "float", diff --git a/_module/git/frostedpits.git.json b/_module/git/frostedpits.git.json index b32c6972..7a253a6d 100644 --- a/_module/git/frostedpits.git.json +++ b/_module/git/frostedpits.git.json @@ -105,9 +105,10 @@ "value": "" }, "Description": { - "id": 12388, "type": "cexolocstring", - "value": {} + "value": { + "id": 12388 + } }, "Dex": { "type": "byte", @@ -155,9 +156,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -275,9 +277,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -395,9 +398,10 @@ "value": 0 }, "LocalizedName": { - "id": 13249, "type": "cexolocstring", - "value": {} + "value": { + "id": 13249 + } }, "ModelPart1": { "type": "byte", @@ -513,9 +517,10 @@ ] }, "FirstName": { - "id": 12389, "type": "cexolocstring", - "value": {} + "value": { + "id": 12389 + } }, "fortbonus": { "type": "short", @@ -1234,9 +1239,10 @@ "value": "" }, "Description": { - "id": 12388, "type": "cexolocstring", - "value": {} + "value": { + "id": 12388 + } }, "Dex": { "type": "byte", @@ -1284,9 +1290,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -1404,9 +1411,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -1524,9 +1532,10 @@ "value": 0 }, "LocalizedName": { - "id": 13249, "type": "cexolocstring", - "value": {} + "value": { + "id": 13249 + } }, "ModelPart1": { "type": "byte", @@ -1642,9 +1651,10 @@ ] }, "FirstName": { - "id": 12389, "type": "cexolocstring", - "value": {} + "value": { + "id": 12389 + } }, "fortbonus": { "type": "short", @@ -2301,7 +2311,7 @@ }, "ZPosition": { "type": "float", - "value": 10.01521682739258 + "value": 10.015216827392578 } }, { @@ -2363,9 +2373,10 @@ "value": "" }, "Description": { - "id": 12388, "type": "cexolocstring", - "value": {} + "value": { + "id": 12388 + } }, "Dex": { "type": "byte", @@ -2413,9 +2424,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -2533,9 +2545,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -2653,9 +2666,10 @@ "value": 0 }, "LocalizedName": { - "id": 13249, "type": "cexolocstring", - "value": {} + "value": { + "id": 13249 + } }, "ModelPart1": { "type": "byte", @@ -2771,9 +2785,10 @@ ] }, "FirstName": { - "id": 12389, "type": "cexolocstring", - "value": {} + "value": { + "id": 12389 + } }, "fortbonus": { "type": "short", @@ -3426,7 +3441,7 @@ }, "YPosition": { "type": "float", - "value": 11.91598606109619 + "value": 11.915986061096191 }, "ZPosition": { "type": "float", @@ -3492,9 +3507,10 @@ "value": "" }, "Description": { - "id": 12388, "type": "cexolocstring", - "value": {} + "value": { + "id": 12388 + } }, "Dex": { "type": "byte", @@ -3542,9 +3558,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -3662,9 +3679,10 @@ "value": 0 }, "LocalizedName": { - "id": 13270, "type": "cexolocstring", - "value": {} + "value": { + "id": 13270 + } }, "ModelPart1": { "type": "byte", @@ -3782,9 +3800,10 @@ "value": 0 }, "LocalizedName": { - "id": 13249, "type": "cexolocstring", - "value": {} + "value": { + "id": 13249 + } }, "ModelPart1": { "type": "byte", @@ -3900,9 +3919,10 @@ ] }, "FirstName": { - "id": 12389, "type": "cexolocstring", - "value": {} + "value": { + "id": 12389 + } }, "fortbonus": { "type": "short", @@ -4621,9 +4641,10 @@ "value": "" }, "Description": { - "id": 12817, "type": "cexolocstring", - "value": {} + "value": { + "id": 12817 + } }, "Dex": { "type": "byte", @@ -4671,9 +4692,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -4791,9 +4813,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -4911,9 +4934,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -5031,9 +5055,10 @@ "value": 0 }, "LocalizedName": { - "id": 13074, "type": "cexolocstring", - "value": {} + "value": { + "id": 13074 + } }, "ModelPart1": { "type": "byte", @@ -5180,9 +5205,10 @@ ] }, "FirstName": { - "id": 12818, "type": "cexolocstring", - "value": {} + "value": { + "id": 12818 + } }, "fortbonus": { "type": "short", @@ -5947,9 +5973,10 @@ "value": "" }, "Description": { - "id": 12817, "type": "cexolocstring", - "value": {} + "value": { + "id": 12817 + } }, "Dex": { "type": "byte", @@ -5997,9 +6024,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6117,9 +6145,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6237,9 +6266,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -6357,9 +6387,10 @@ "value": 0 }, "LocalizedName": { - "id": 13074, "type": "cexolocstring", - "value": {} + "value": { + "id": 13074 + } }, "ModelPart1": { "type": "byte", @@ -6506,9 +6537,10 @@ ] }, "FirstName": { - "id": 12818, "type": "cexolocstring", - "value": {} + "value": { + "id": 12818 + } }, "fortbonus": { "type": "short", @@ -7199,7 +7231,7 @@ }, "XPosition": { "type": "float", - "value": 12.07069492340088 + "value": 12.070694923400879 }, "YOrientation": { "type": "float", @@ -7207,11 +7239,11 @@ }, "YPosition": { "type": "float", - "value": 2.657718181610107 + "value": 2.6577181816101074 }, "ZPosition": { "type": "float", - "value": 15.00350952148438 + "value": 15.003509521484375 } }, { @@ -7273,9 +7305,10 @@ "value": "" }, "Description": { - "id": 12817, "type": "cexolocstring", - "value": {} + "value": { + "id": 12817 + } }, "Dex": { "type": "byte", @@ -7323,9 +7356,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -7443,9 +7477,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -7563,9 +7598,10 @@ "value": 0 }, "LocalizedName": { - "id": 13242, "type": "cexolocstring", - "value": {} + "value": { + "id": 13242 + } }, "ModelPart1": { "type": "byte", @@ -7683,9 +7719,10 @@ "value": 0 }, "LocalizedName": { - "id": 13074, "type": "cexolocstring", - "value": {} + "value": { + "id": 13074 + } }, "ModelPart1": { "type": "byte", @@ -7832,9 +7869,10 @@ ] }, "FirstName": { - "id": 12818, "type": "cexolocstring", - "value": {} + "value": { + "id": 12818 + } }, "fortbonus": { "type": "short", @@ -8533,7 +8571,7 @@ }, "YPosition": { "type": "float", - "value": 45.96895599365234 + "value": 45.968955993652344 }, "ZPosition": { "type": "float", @@ -8599,9 +8637,10 @@ "value": "" }, "Description": { - "id": 12429, "type": "cexolocstring", - "value": {} + "value": { + "id": 12429 + } }, "Dex": { "type": "byte", @@ -8649,9 +8688,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -8769,9 +8809,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -8889,9 +8930,10 @@ "value": 0 }, "LocalizedName": { - "id": 13253, "type": "cexolocstring", - "value": {} + "value": { + "id": 13253 + } }, "ModelPart1": { "type": "byte", @@ -9009,9 +9051,10 @@ "value": 0 }, "LocalizedName": { - "id": 13101, "type": "cexolocstring", - "value": {} + "value": { + "id": 13101 + } }, "ModelPart1": { "type": "byte", @@ -9120,9 +9163,10 @@ ] }, "FirstName": { - "id": 57919, "type": "cexolocstring", - "value": {} + "value": { + "id": 57919 + } }, "fortbonus": { "type": "short", @@ -9767,7 +9811,7 @@ }, "XPosition": { "type": "float", - "value": 59.94933700561523 + "value": 59.949337005615234 }, "YOrientation": { "type": "float", @@ -9841,9 +9885,10 @@ "value": "" }, "Description": { - "id": 12429, "type": "cexolocstring", - "value": {} + "value": { + "id": 12429 + } }, "Dex": { "type": "byte", @@ -9891,9 +9936,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -10011,9 +10057,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -10131,9 +10178,10 @@ "value": 0 }, "LocalizedName": { - "id": 13253, "type": "cexolocstring", - "value": {} + "value": { + "id": 13253 + } }, "ModelPart1": { "type": "byte", @@ -10251,9 +10299,10 @@ "value": 0 }, "LocalizedName": { - "id": 13101, "type": "cexolocstring", - "value": {} + "value": { + "id": 13101 + } }, "ModelPart1": { "type": "byte", @@ -10362,9 +10411,10 @@ ] }, "FirstName": { - "id": 57919, "type": "cexolocstring", - "value": {} + "value": { + "id": 57919 + } }, "fortbonus": { "type": "short", @@ -11009,7 +11059,7 @@ }, "XPosition": { "type": "float", - "value": 1.767436027526856 + "value": 1.7674360275268555 }, "YOrientation": { "type": "float", @@ -11017,7 +11067,7 @@ }, "YPosition": { "type": "float", - "value": 40.20157623291016 + "value": 40.201576232910156 }, "ZPosition": { "type": "float", @@ -11083,9 +11133,10 @@ "value": "" }, "Description": { - "id": 12429, "type": "cexolocstring", - "value": {} + "value": { + "id": 12429 + } }, "Dex": { "type": "byte", @@ -11133,9 +11184,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -11253,9 +11305,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", - "value": {} + "value": { + "id": 13265 + } }, "ModelPart1": { "type": "byte", @@ -11373,9 +11426,10 @@ "value": 0 }, "LocalizedName": { - "id": 13253, "type": "cexolocstring", - "value": {} + "value": { + "id": 13253 + } }, "ModelPart1": { "type": "byte", @@ -11493,9 +11547,10 @@ "value": 0 }, "LocalizedName": { - "id": 13101, "type": "cexolocstring", - "value": {} + "value": { + "id": 13101 + } }, "ModelPart1": { "type": "byte", @@ -11604,9 +11659,10 @@ ] }, "FirstName": { - "id": 57919, "type": "cexolocstring", - "value": {} + "value": { + "id": 57919 + } }, "fortbonus": { "type": "short", @@ -12325,9 +12381,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -12375,9 +12432,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -12479,9 +12537,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -13126,7 +13185,7 @@ }, "XPosition": { "type": "float", - "value": 44.25854873657227 + "value": 44.258548736572266 }, "YOrientation": { "type": "float", @@ -13134,11 +13193,11 @@ }, "YPosition": { "type": "float", - "value": 22.75637054443359 + "value": 22.756370544433594 }, "ZPosition": { "type": "float", - "value": 0.02256107330322266 + "value": 0.022561073303222656 } }, { @@ -13200,9 +13259,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -13250,9 +13310,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -13354,9 +13415,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -14013,7 +14075,7 @@ }, "ZPosition": { "type": "float", - "value": 9.573996067047119e-006 + "value": 0.000009573996067047119 } }, { @@ -14075,9 +14137,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -14125,9 +14188,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -14229,9 +14293,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -14876,7 +14941,7 @@ }, "XPosition": { "type": "float", - "value": 29.31690406799316 + "value": 29.316904067993164 }, "YOrientation": { "type": "float", @@ -14888,7 +14953,7 @@ }, "ZPosition": { "type": "float", - "value": 9.715557098388672e-006 + "value": 0.000009715557098388672 } }, { @@ -14950,9 +15015,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -15000,9 +15066,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -15104,9 +15171,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -15759,11 +15827,11 @@ }, "YPosition": { "type": "float", - "value": 30.9926872253418 + "value": 30.992687225341797 }, "ZPosition": { "type": "float", - "value": 9.715557098388672e-006 + "value": 0.000009715557098388672 } }, { @@ -15825,9 +15893,10 @@ "value": "" }, "Description": { - "id": 12439, "type": "cexolocstring", - "value": {} + "value": { + "id": 12439 + } }, "Dex": { "type": "byte", @@ -15875,9 +15944,10 @@ "value": 0 }, "LocalizedName": { - "id": 13230, "type": "cexolocstring", - "value": {} + "value": { + "id": 13230 + } }, "ModelPart1": { "type": "byte", @@ -15979,9 +16049,10 @@ ] }, "FirstName": { - "id": 12441, "type": "cexolocstring", - "value": {} + "value": { + "id": 12441 + } }, "fortbonus": { "type": "short", @@ -16662,7 +16733,7 @@ }, "Bearing": { "type": "float", - "value": -3.14158821105957 + "value": -3.1415882110595703 }, "CloseLockDC": { "type": "byte", @@ -16737,9 +16808,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -16859,7 +16931,7 @@ }, "Z": { "type": "float", - "value": 9.560000419616699 + "value": 9.5600004196167 } }, { @@ -16953,9 +17025,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -17126,10 +17199,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -17177,10 +17250,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClick": { @@ -17356,9 +17429,10 @@ "value": 0 }, "LocName": { - "id": 68026, "type": "cexolocstring", - "value": {} + "value": { + "id": 68026 + } }, "Looping": { "type": "byte", @@ -17476,9 +17550,10 @@ "value": 0 }, "LocName": { - "id": 68026, "type": "cexolocstring", - "value": {} + "value": { + "id": 68026 + } }, "Looping": { "type": "byte", @@ -17562,7 +17637,7 @@ }, "ZPosition": { "type": "float", - "value": 11.45095634460449 + "value": 11.450956344604492 } }, { @@ -17596,9 +17671,10 @@ "value": 0 }, "LocName": { - "id": 68027, "type": "cexolocstring", - "value": {} + "value": { + "id": 68027 + } }, "Looping": { "type": "byte", @@ -17682,7 +17758,7 @@ }, "ZPosition": { "type": "float", - "value": 1.499998569488525 + "value": 1.4999985694885254 } }, { @@ -17716,9 +17792,10 @@ "value": 5000 }, "LocName": { - "id": 91311, "type": "cexolocstring", - "value": {} + "value": { + "id": 91311 + } }, "Looping": { "type": "byte", @@ -17734,7 +17811,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -17857,11 +17934,11 @@ }, "XPosition": { "type": "float", - "value": 50.90689849853516 + "value": 50.906898498535156 }, "YPosition": { "type": "float", - "value": 75.14443969726563 + "value": 75.14443969726562 }, "ZPosition": { "type": "float", @@ -17899,9 +17976,10 @@ "value": 5000 }, "LocName": { - "id": 91311, "type": "cexolocstring", - "value": {} + "value": { + "id": 91311 + } }, "Looping": { "type": "byte", @@ -17917,7 +17995,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -18044,11 +18122,11 @@ }, "YPosition": { "type": "float", - "value": 3.519330024719238 + "value": 3.5193300247192383 }, "ZPosition": { "type": "float", - "value": 11.08508682250977 + "value": 11.085086822509766 } }, { @@ -18082,9 +18160,10 @@ "value": 5000 }, "LocName": { - "id": 91312, "type": "cexolocstring", - "value": {} + "value": { + "id": 91312 + } }, "Looping": { "type": "byte", @@ -18100,7 +18179,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -18223,7 +18302,7 @@ }, "XPosition": { "type": "float", - "value": 10.31266021728516 + "value": 10.312660217285156 }, "YPosition": { "type": "float", @@ -18265,9 +18344,10 @@ "value": 5000 }, "LocName": { - "id": 91312, "type": "cexolocstring", - "value": {} + "value": { + "id": 91312 + } }, "Looping": { "type": "byte", @@ -18283,7 +18363,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -18410,7 +18490,7 @@ }, "YPosition": { "type": "float", - "value": 31.39634704589844 + "value": 31.396347045898438 }, "ZPosition": { "type": "float", @@ -18448,9 +18528,10 @@ "value": 0 }, "LocName": { - "id": 67895, "type": "cexolocstring", - "value": {} + "value": { + "id": 67895 + } }, "Looping": { "type": "byte", @@ -18526,15 +18607,15 @@ }, "XPosition": { "type": "float", - "value": 19.8398551940918 + "value": 19.839855194091797 }, "YPosition": { "type": "float", - "value": 39.80170059204102 + "value": 39.801700592041016 }, "ZPosition": { "type": "float", - "value": 2.100000143051148 + "value": 2.1000001430511475 } }, { @@ -18568,9 +18649,10 @@ "value": 0 }, "LocName": { - "id": 67894, "type": "cexolocstring", - "value": {} + "value": { + "id": 67894 + } }, "Looping": { "type": "byte", @@ -18654,7 +18736,7 @@ }, "ZPosition": { "type": "float", - "value": 1.799998044967651 + "value": 1.7999980449676514 } }, { @@ -18688,9 +18770,10 @@ "value": 5000 }, "LocName": { - "id": 68036, "type": "cexolocstring", - "value": {} + "value": { + "id": 68036 + } }, "Looping": { "type": "byte", @@ -18706,7 +18789,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -18788,7 +18871,7 @@ }, "ZPosition": { "type": "float", - "value": 6.351634025573731 + "value": 6.3516340255737305 } }, { @@ -18822,9 +18905,10 @@ "value": 5000 }, "LocName": { - "id": 68036, "type": "cexolocstring", - "value": {} + "value": { + "id": 68036 + } }, "Looping": { "type": "byte", @@ -18840,7 +18924,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -18922,7 +19006,7 @@ }, "ZPosition": { "type": "float", - "value": 11.42726707458496 + "value": 11.427267074584961 } }, { @@ -18956,9 +19040,10 @@ "value": 5000 }, "LocName": { - "id": 67839, "type": "cexolocstring", - "value": {} + "value": { + "id": 67839 + } }, "Looping": { "type": "byte", @@ -18974,7 +19059,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -19097,7 +19182,7 @@ }, "XPosition": { "type": "float", - "value": 15.50753593444824 + "value": 15.507535934448242 }, "YPosition": { "type": "float", @@ -19105,7 +19190,7 @@ }, "ZPosition": { "type": "float", - "value": 12.21456909179688 + "value": 12.214569091796875 } }, { @@ -19139,9 +19224,10 @@ "value": 5000 }, "LocName": { - "id": 67839, "type": "cexolocstring", - "value": {} + "value": { + "id": 67839 + } }, "Looping": { "type": "byte", @@ -19157,7 +19243,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -19288,7 +19374,7 @@ }, "ZPosition": { "type": "float", - "value": 11.88608932495117 + "value": 11.886089324951172 } }, { @@ -19322,9 +19408,10 @@ "value": 2000 }, "LocName": { - "id": 67809, "type": "cexolocstring", - "value": {} + "value": { + "id": 67809 + } }, "Looping": { "type": "byte", @@ -19340,7 +19427,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -19407,11 +19494,11 @@ }, "XPosition": { "type": "float", - "value": 60.30273818969727 + "value": 60.302738189697266 }, "YPosition": { "type": "float", - "value": 73.92276000976563 + "value": 73.92276000976562 }, "ZPosition": { "type": "float", @@ -19456,22 +19543,22 @@ }, "PointY": { "type": "float", - "value": -13.18122100830078 + "value": -13.181221008300781 }, "PointZ": { "type": "float", - "value": 0.02500003017485142 + "value": 0.025000030174851418 } }, { "__struct_id": 3, "PointX": { "type": "float", - "value": 10.10875701904297 + "value": 10.108757019042969 }, "PointY": { "type": "float", - "value": -12.62993621826172 + "value": -12.629936218261719 }, "PointZ": { "type": "float", @@ -19482,11 +19569,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 10.02248382568359 + "value": 10.022483825683594 }, "PointY": { "type": "float", - "value": -1.512523651123047 + "value": -1.5125236511230469 }, "PointZ": { "type": "float", @@ -19501,11 +19588,11 @@ }, "PointY": { "type": "float", - "value": -0.02091973647475243 + "value": -0.020919736474752426 }, "PointZ": { "type": "float", - "value": 0.02500003017485142 + "value": 0.025000030174851418 } } ] @@ -19531,10 +19618,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Temptation" + "0": "Temptation", + "id": 14759 } }, "OnClick": { @@ -19611,7 +19698,7 @@ }, "XPosition": { "type": "float", - "value": 54.11525726318359 + "value": 54.115257263183594 }, "YOrientation": { "type": "float", @@ -19659,11 +19746,11 @@ }, "PointY": { "type": "float", - "value": -0.04742050170898438 + "value": -0.047420501708984375 }, "PointZ": { "type": "float", - "value": 0.3250000178813934 + "value": 0.32500001788139343 } }, { @@ -19674,11 +19761,11 @@ }, "PointY": { "type": "float", - "value": 0.1060066223144531 + "value": 0.10600662231445312 }, "PointZ": { "type": "float", - "value": 0.3250000178813934 + "value": 0.32500001788139343 } }, { @@ -19693,14 +19780,14 @@ }, "PointZ": { "type": "float", - "value": 0.3249999582767487 + "value": 0.32499995827674866 } }, { "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01214790344238281 + "value": -0.012147903442382812 }, "PointY": { "type": "float", @@ -19708,7 +19795,7 @@ }, "PointZ": { "type": "float", - "value": 0.3249999582767487 + "value": 0.32499995827674866 } }, { @@ -19723,7 +19810,7 @@ }, "PointZ": { "type": "float", - "value": 0.3250000178813934 + "value": 0.32500001788139343 } } ] @@ -19749,10 +19836,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Compassion" + "0": "Compassion", + "id": 14759 } }, "OnClick": { @@ -19872,10 +19959,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Compassion" + "0": "Compassion", + "id": 14817 } }, "MapNote": { @@ -19904,7 +19991,7 @@ }, "YOrientation": { "type": "float", - "value": 0.04906884208321571 + "value": 0.049068842083215714 }, "YPosition": { "type": "float", @@ -19934,10 +20021,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Temptation" + "0": "Temptation", + "id": 14817 } }, "MapNote": { @@ -19962,7 +20049,7 @@ }, "XPosition": { "type": "float", - "value": 59.26678848266602 + "value": 59.266788482666016 }, "YOrientation": { "type": "float", @@ -19996,10 +20083,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "TempToCompassion" + "0": "TempToCompassion", + "id": 14817 } }, "MapNote": { @@ -20024,7 +20111,7 @@ }, "XPosition": { "type": "float", - "value": 23.06696701049805 + "value": 23.066967010498047 }, "YOrientation": { "type": "float", @@ -20036,7 +20123,7 @@ }, "ZPosition": { "type": "float", - "value": 0.3000019192695618 + "value": 0.30000191926956177 } } ] diff --git a/_module/git/frozentimes.git.json b/_module/git/frozentimes.git.json index 9069e278..bc23f57e 100644 --- a/_module/git/frozentimes.git.json +++ b/_module/git/frozentimes.git.json @@ -105,9 +105,10 @@ "value": "" }, "Description": { - "id": 12496, "type": "cexolocstring", - "value": {} + "value": { + "id": 12496 + } }, "Dex": { "type": "byte", @@ -155,9 +156,10 @@ "value": 0 }, "LocalizedName": { - "id": 13274, "type": "cexolocstring", - "value": {} + "value": { + "id": 13274 + } }, "ModelPart1": { "type": "byte", @@ -275,9 +277,10 @@ "value": 0 }, "LocalizedName": { - "id": 13274, "type": "cexolocstring", - "value": {} + "value": { + "id": 13274 + } }, "ModelPart1": { "type": "byte", @@ -395,9 +398,10 @@ "value": 0 }, "LocalizedName": { - "id": 13249, "type": "cexolocstring", - "value": {} + "value": { + "id": 13249 + } }, "ModelPart1": { "type": "byte", @@ -515,9 +519,10 @@ "value": 0 }, "LocalizedName": { - "id": 13185, "type": "cexolocstring", - "value": {} + "value": { + "id": 13185 + } }, "ModelPart1": { "type": "byte", @@ -871,9 +876,10 @@ ] }, "FirstName": { - "id": 12499, "type": "cexolocstring", - "value": {} + "value": { + "id": 12499 + } }, "fortbonus": { "type": "short", @@ -933,9 +939,10 @@ "value": 0 }, "DescIdentified": { - "id": 58571, "type": "cexolocstring", - "value": {} + "value": { + "id": 58571 + } }, "Description": { "type": "cexolocstring", @@ -950,9 +957,10 @@ "value": 1 }, "LocalizedName": { - "id": 13499, "type": "cexolocstring", - "value": {} + "value": { + "id": 13499 + } }, "ModelPart1": { "type": "byte", @@ -1759,9 +1767,10 @@ "value": "" }, "Description": { - "id": 40608, "type": "cexolocstring", - "value": {} + "value": { + "id": 40608 + } }, "Dex": { "type": "byte", @@ -1901,9 +1910,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", - "value": {} + "value": { + "id": 12844 + } }, "Metal1Color": { "type": "byte", @@ -1993,9 +2003,10 @@ "value": 1 }, "LocalizedName": { - "id": 178, "type": "cexolocstring", - "value": {} + "value": { + "id": 178 + } }, "ModelPart1": { "type": "byte", @@ -2089,9 +2100,10 @@ "value": 0 }, "LocalizedName": { - "id": 13074, "type": "cexolocstring", - "value": {} + "value": { + "id": 13074 + } }, "ModelPart1": { "type": "byte", @@ -2266,9 +2278,10 @@ ] }, "FirstName": { - "id": 12560, "type": "cexolocstring", - "value": {} + "value": { + "id": 12560 + } }, "fortbonus": { "type": "short", @@ -2913,7 +2926,7 @@ }, "XPosition": { "type": "float", - "value": 32.63839721679688 + "value": 32.638397216796875 }, "YOrientation": { "type": "float", @@ -2925,7 +2938,7 @@ }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } } ] @@ -3024,9 +3037,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -3197,9 +3211,10 @@ "value": 15 }, "Description": { - "id": 84192, "type": "cexolocstring", - "value": {} + "value": { + "id": 84192 + } }, "DisarmDC": { "type": "byte", @@ -3246,9 +3261,10 @@ "value": 0 }, "LocName": { - "id": 83445, "type": "cexolocstring", - "value": {} + "value": { + "id": 83445 + } }, "OnClick": { "type": "resref", @@ -3384,7 +3400,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -3422,9 +3438,10 @@ "value": 15 }, "Description": { - "id": 68828, "type": "cexolocstring", - "value": {} + "value": { + "id": 68828 + } }, "DisarmDC": { "type": "byte", @@ -3471,9 +3488,10 @@ "value": 0 }, "LocName": { - "id": 68827, "type": "cexolocstring", - "value": {} + "value": { + "id": 68827 + } }, "OnClick": { "type": "resref", @@ -3609,7 +3627,7 @@ }, "Z": { "type": "float", - "value": -7.450580596923828e-008 + "value": -7.450580596923828e-8 } }, { @@ -3647,9 +3665,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -3705,9 +3724,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -3718,9 +3738,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -3802,9 +3823,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -3815,9 +3837,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -3895,9 +3918,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -4071,9 +4095,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -4129,9 +4154,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -4142,9 +4168,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -4226,9 +4253,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -4239,9 +4267,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -4319,9 +4348,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -4495,9 +4525,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -4553,9 +4584,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -4566,9 +4598,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -4650,9 +4683,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -4663,9 +4697,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -4743,9 +4778,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -4919,9 +4955,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -4977,9 +5014,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -4990,9 +5028,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -5074,9 +5113,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -5087,9 +5127,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -5167,9 +5208,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -5297,11 +5339,11 @@ }, "X": { "type": "float", - "value": 50.71347808837891 + "value": 50.713478088378906 }, "Y": { "type": "float", - "value": 63.52807998657227 + "value": 63.528079986572266 }, "Z": { "type": "float", @@ -5343,9 +5385,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -5401,9 +5444,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -5414,9 +5458,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -5498,9 +5543,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -5511,9 +5557,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -5591,9 +5638,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -5721,11 +5769,11 @@ }, "X": { "type": "float", - "value": 49.41516494750977 + "value": 49.415164947509766 }, "Y": { "type": "float", - "value": 61.46741104125977 + "value": 61.467411041259766 }, "Z": { "type": "float", @@ -5767,9 +5815,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -5825,9 +5874,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -5838,9 +5888,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -5922,9 +5973,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -5935,9 +5987,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -6015,9 +6068,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -6149,7 +6203,7 @@ }, "Y": { "type": "float", - "value": 60.10503768920898 + "value": 60.105037689208984 }, "Z": { "type": "float", @@ -6191,9 +6245,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -6249,9 +6304,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -6262,9 +6318,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -6346,9 +6403,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -6359,9 +6417,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -6439,9 +6498,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -6569,11 +6629,11 @@ }, "X": { "type": "float", - "value": 50.68542098999023 + "value": 50.685420989990234 }, "Y": { "type": "float", - "value": 60.95910263061523 + "value": 60.959102630615234 }, "Z": { "type": "float", @@ -6615,9 +6675,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -6673,9 +6734,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -6686,9 +6748,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -6770,9 +6833,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -6783,9 +6847,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -6863,9 +6928,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -7039,9 +7105,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -7097,9 +7164,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -7110,9 +7178,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -7194,9 +7263,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -7207,9 +7277,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -7287,9 +7358,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -7425,7 +7497,7 @@ }, "Z": { "type": "float", - "value": 4.994669914245606 + "value": 4.9946699142456055 } }, { @@ -7463,9 +7535,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -7521,9 +7594,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -7534,9 +7608,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -7618,9 +7693,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -7631,9 +7707,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -7711,9 +7788,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -7887,9 +7965,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -7945,9 +8024,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -7958,9 +8038,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -8042,9 +8123,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -8055,9 +8137,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -8135,9 +8218,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -8265,7 +8349,7 @@ }, "X": { "type": "float", - "value": 60.74097061157227 + "value": 60.740970611572266 }, "Y": { "type": "float", @@ -8311,9 +8395,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -8369,9 +8454,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -8382,9 +8468,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -8466,9 +8553,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -8479,9 +8567,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -8559,9 +8648,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -8735,9 +8825,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -8793,9 +8884,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -8806,9 +8898,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -8890,9 +8983,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -8903,9 +8997,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -8983,9 +9078,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -9117,7 +9213,7 @@ }, "Y": { "type": "float", - "value": 70.36428070068359 + "value": 70.3642807006836 }, "Z": { "type": "float", @@ -9159,9 +9255,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -9217,9 +9314,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -9230,9 +9328,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -9314,9 +9413,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -9327,9 +9427,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -9407,9 +9508,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -9583,9 +9685,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -9641,9 +9744,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -9654,9 +9758,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -9738,9 +9843,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -9751,9 +9857,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -9831,9 +9938,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -9961,7 +10069,7 @@ }, "X": { "type": "float", - "value": 57.73852157592773 + "value": 57.738521575927734 }, "Y": { "type": "float", @@ -10007,9 +10115,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -10065,9 +10174,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -10078,9 +10188,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -10162,9 +10273,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -10175,9 +10287,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -10255,9 +10368,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -10385,7 +10499,7 @@ }, "X": { "type": "float", - "value": 58.82275772094727 + "value": 58.822757720947266 }, "Y": { "type": "float", @@ -10431,9 +10545,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -10489,9 +10604,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -10502,9 +10618,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -10586,9 +10703,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -10599,9 +10717,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -10679,9 +10798,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -10813,7 +10933,7 @@ }, "Y": { "type": "float", - "value": 69.34561157226563 + "value": 69.34561157226562 }, "Z": { "type": "float", @@ -10855,9 +10975,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -10913,9 +11034,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -10926,9 +11048,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -11010,9 +11133,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -11023,9 +11147,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -11103,9 +11228,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -11237,7 +11363,7 @@ }, "Y": { "type": "float", - "value": 71.84975433349609 + "value": 71.8497543334961 }, "Z": { "type": "float", @@ -11279,9 +11405,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -11337,9 +11464,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -11350,9 +11478,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -11434,9 +11563,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -11447,9 +11577,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -11527,9 +11658,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -11703,9 +11835,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -11761,9 +11894,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -11774,9 +11908,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -11858,9 +11993,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -11871,9 +12007,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -11951,9 +12088,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -12081,7 +12219,7 @@ }, "X": { "type": "float", - "value": 50.43076324462891 + "value": 50.430763244628906 }, "Y": { "type": "float", @@ -12127,9 +12265,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -12185,9 +12324,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -12198,9 +12338,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -12282,9 +12423,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -12295,9 +12437,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -12375,9 +12518,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -12509,7 +12653,7 @@ }, "Y": { "type": "float", - "value": 72.38181304931641 + "value": 72.3818130493164 }, "Z": { "type": "float", @@ -12551,9 +12695,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -12609,9 +12754,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -12622,9 +12768,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -12706,9 +12853,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -12719,9 +12867,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -12799,9 +12948,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -12975,9 +13125,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -13033,9 +13184,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -13046,9 +13198,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -13130,9 +13283,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -13143,9 +13297,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -13223,9 +13378,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -13357,7 +13513,7 @@ }, "Y": { "type": "float", - "value": 70.99416351318359 + "value": 70.9941635131836 }, "Z": { "type": "float", @@ -13399,9 +13555,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -13457,9 +13614,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -13470,9 +13628,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -13554,9 +13713,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -13567,9 +13727,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -13647,9 +13808,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -13777,11 +13939,11 @@ }, "X": { "type": "float", - "value": 52.44454956054688 + "value": 52.444549560546875 }, "Y": { "type": "float", - "value": 68.77835083007813 + "value": 68.77835083007812 }, "Z": { "type": "float", @@ -13823,9 +13985,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -13881,9 +14044,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -13894,9 +14058,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -13978,9 +14143,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -13991,9 +14157,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -14071,9 +14238,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -14201,11 +14369,11 @@ }, "X": { "type": "float", - "value": 54.10591888427734 + "value": 54.105918884277344 }, "Y": { "type": "float", - "value": 70.72537231445313 + "value": 70.72537231445312 }, "Z": { "type": "float", @@ -14247,9 +14415,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -14305,9 +14474,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -14318,9 +14488,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -14402,9 +14573,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -14415,9 +14587,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -14495,9 +14668,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -14629,11 +14803,11 @@ }, "Y": { "type": "float", - "value": 72.56570434570313 + "value": 72.56570434570312 }, "Z": { "type": "float", - "value": 5.000926017761231 + "value": 5.0009260177612305 } }, { @@ -14671,9 +14845,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -14729,9 +14904,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -14742,9 +14918,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -14826,9 +15003,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -14839,9 +15017,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -14919,9 +15098,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -15057,7 +15237,7 @@ }, "Z": { "type": "float", - "value": 5.382365226745606 + "value": 5.3823652267456055 } }, { @@ -15095,9 +15275,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -15153,9 +15334,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -15166,9 +15348,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -15250,9 +15433,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -15263,9 +15447,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -15343,9 +15528,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -15519,9 +15705,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -15577,9 +15764,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -15590,9 +15778,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -15674,9 +15863,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -15687,9 +15877,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -15767,9 +15958,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -15943,9 +16135,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -16001,9 +16194,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -16014,9 +16208,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -16098,9 +16293,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -16111,9 +16307,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -16191,9 +16388,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -16367,9 +16565,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -16425,9 +16624,10 @@ "value": 0 }, "DescIdentified": { - "id": 58566, "type": "cexolocstring", - "value": {} + "value": { + "id": 58566 + } }, "Description": { "type": "cexolocstring", @@ -16438,9 +16638,10 @@ "value": 1 }, "LocalizedName": { - "id": 13494, "type": "cexolocstring", - "value": {} + "value": { + "id": 13494 + } }, "ModelPart1": { "type": "byte", @@ -16522,9 +16723,10 @@ "value": 0 }, "DescIdentified": { - "id": 58565, "type": "cexolocstring", - "value": {} + "value": { + "id": 58565 + } }, "Description": { "type": "cexolocstring", @@ -16535,9 +16737,10 @@ "value": 1 }, "LocalizedName": { - "id": 13493, "type": "cexolocstring", - "value": {} + "value": { + "id": 13493 + } }, "ModelPart1": { "type": "byte", @@ -16615,9 +16818,10 @@ "value": 0 }, "LocName": { - "id": 78634, "type": "cexolocstring", - "value": {} + "value": { + "id": 78634 + } }, "OnClick": { "type": "resref", @@ -16791,9 +16995,10 @@ "value": 15 }, "Description": { - "id": 68921, "type": "cexolocstring", - "value": {} + "value": { + "id": 68921 + } }, "DisarmDC": { "type": "byte", @@ -16840,9 +17045,10 @@ "value": 0 }, "LocName": { - "id": 9270, "type": "cexolocstring", - "value": {} + "value": { + "id": 9270 + } }, "OnClick": { "type": "resref", @@ -16970,11 +17176,11 @@ }, "X": { "type": "float", - "value": 23.66611480712891 + "value": 23.666114807128906 }, "Y": { "type": "float", - "value": 60.83400726318359 + "value": 60.834007263183594 }, "Z": { "type": "float", @@ -17016,9 +17222,10 @@ "value": 15 }, "Description": { - "id": 68921, "type": "cexolocstring", - "value": {} + "value": { + "id": 68921 + } }, "DisarmDC": { "type": "byte", @@ -17065,9 +17272,10 @@ "value": 0 }, "LocName": { - "id": 9270, "type": "cexolocstring", - "value": {} + "value": { + "id": 9270 + } }, "OnClick": { "type": "resref", @@ -17195,15 +17403,15 @@ }, "X": { "type": "float", - "value": 21.79962348937988 + "value": 21.799623489379883 }, "Y": { "type": "float", - "value": 60.82422256469727 + "value": 60.824222564697266 }, "Z": { "type": "float", - "value": 2.980232238769531e-008 + "value": 2.9802322387695312e-8 } }, { @@ -17241,9 +17449,10 @@ "value": 15 }, "Description": { - "id": 14736, "type": "cexolocstring", - "value": {} + "value": { + "id": 14736 + } }, "DisarmDC": { "type": "byte", @@ -17290,9 +17499,10 @@ "value": 0 }, "LocName": { - "id": 5738, "type": "cexolocstring", - "value": {} + "value": { + "id": 5738 + } }, "OnClick": { "type": "resref", @@ -17420,7 +17630,7 @@ }, "X": { "type": "float", - "value": 28.06956291198731 + "value": 28.069562911987305 }, "Y": { "type": "float", @@ -17428,7 +17638,7 @@ }, "Z": { "type": "float", - "value": -3.725290298461914e-008 + "value": -3.725290298461914e-8 } }, { @@ -17466,9 +17676,10 @@ "value": 15 }, "Description": { - "id": 68817, "type": "cexolocstring", - "value": {} + "value": { + "id": 68817 + } }, "DisarmDC": { "type": "byte", @@ -17515,9 +17726,10 @@ "value": 0 }, "LocName": { - "id": 68816, "type": "cexolocstring", - "value": {} + "value": { + "id": 68816 + } }, "OnClick": { "type": "resref", @@ -17691,9 +17903,10 @@ "value": 15 }, "Description": { - "id": 14609, "type": "cexolocstring", - "value": {} + "value": { + "id": 14609 + } }, "DisarmDC": { "type": "byte", @@ -17740,9 +17953,10 @@ "value": 0 }, "LocName": { - "id": 5791, "type": "cexolocstring", - "value": {} + "value": { + "id": 5791 + } }, "OnClick": { "type": "resref", @@ -17870,7 +18084,7 @@ }, "X": { "type": "float", - "value": 54.67763519287109 + "value": 54.677635192871094 }, "Y": { "type": "float", @@ -17916,10 +18130,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -17967,10 +18181,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClick": { @@ -18103,7 +18317,7 @@ }, "Y": { "type": "float", - "value": 25.12516403198242 + "value": 25.125164031982422 }, "Z": { "type": "float", @@ -18146,9 +18360,10 @@ "value": 5000 }, "LocName": { - "id": 68034, "type": "cexolocstring", - "value": {} + "value": { + "id": 68034 + } }, "Looping": { "type": "byte", @@ -18164,7 +18379,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -18228,11 +18443,11 @@ }, "YPosition": { "type": "float", - "value": 47.05260848999023 + "value": 47.052608489990234 }, "ZPosition": { "type": "float", - "value": 6.509417057037354 + "value": 6.5094170570373535 } }, { @@ -18266,9 +18481,10 @@ "value": 5000 }, "LocName": { - "id": 67998, "type": "cexolocstring", - "value": {} + "value": { + "id": 67998 + } }, "Looping": { "type": "byte", @@ -18284,7 +18500,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -18407,9 +18623,10 @@ "value": 5000 }, "LocName": { - "id": 67794, "type": "cexolocstring", - "value": {} + "value": { + "id": 67794 + } }, "Looping": { "type": "byte", @@ -18425,7 +18642,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -18492,11 +18709,11 @@ }, "XPosition": { "type": "float", - "value": 60.23028182983398 + "value": 60.230281829833984 }, "YPosition": { "type": "float", - "value": 56.69518661499023 + "value": 56.695186614990234 }, "ZPosition": { "type": "float", @@ -18572,7 +18789,7 @@ }, "ZPosition": { "type": "float", - "value": 9.298324584960938e-006 + "value": 0.000009298324584960938 } }, { @@ -18619,7 +18836,7 @@ }, "XPosition": { "type": "float", - "value": 32.41534042358398 + "value": 32.415340423583984 }, "YOrientation": { "type": "float", @@ -18627,7 +18844,7 @@ }, "YPosition": { "type": "float", - "value": 48.59499359130859 + "value": 48.594993591308594 }, "ZPosition": { "type": "float", @@ -18690,7 +18907,7 @@ }, "ZPosition": { "type": "float", - "value": -4.470348358154297e-008 + "value": -4.470348358154297e-8 } }, { @@ -18808,7 +19025,7 @@ }, "ZPosition": { "type": "float", - "value": 9.804964065551758e-006 + "value": 0.000009804964065551758 } }, { @@ -18855,7 +19072,7 @@ }, "XPosition": { "type": "float", - "value": 64.37526702880859 + "value": 64.3752670288086 }, "YOrientation": { "type": "float", @@ -18922,11 +19139,11 @@ }, "YPosition": { "type": "float", - "value": 27.59383583068848 + "value": 27.593835830688477 }, "ZPosition": { "type": "float", - "value": 0.02670013159513474 + "value": 0.026700131595134735 } }, { @@ -18985,7 +19202,7 @@ }, "ZPosition": { "type": "float", - "value": 1.192092895507813e-007 + "value": 0.00000011920928955078125 } } ] diff --git a/_module/git/limbo001.git.json b/_module/git/limbo001.git.json index eeade999..46b1a05d 100644 --- a/_module/git/limbo001.git.json +++ b/_module/git/limbo001.git.json @@ -97,10 +97,10 @@ "value": 10000 }, "Description": { - "id": 14595, "type": "cexolocstring", "value": { - "0": "Strange runes and pictographs, likely arcane in nature, have been scorched into the sides of this hide-covered strongbox." + "0": "Strange runes and pictographs, likely arcane in nature, have been scorched into the sides of this hide-covered strongbox.", + "id": 14595 } }, "DisarmDC": { @@ -148,10 +148,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "Heart of Chaos" + "0": "Heart of Chaos", + "id": 5348 } }, "OnClick": { @@ -280,7 +280,7 @@ }, "X": { "type": "float", - "value": 39.99505233764648 + "value": 39.995052337646484 }, "Y": { "type": "float", @@ -288,7 +288,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -307,7 +307,7 @@ }, "Bearing": { "type": "float", - "value": 3.14158821105957 + "value": 3.1415882110595703 }, "BodyBag": { "type": "byte", @@ -326,9 +326,10 @@ "value": 10 }, "Description": { - "id": 75934, "type": "cexolocstring", - "value": {} + "value": { + "id": 75934 + } }, "DisarmDC": { "type": "byte", @@ -375,9 +376,10 @@ "value": 0 }, "LocName": { - "id": 68906, "type": "cexolocstring", - "value": {} + "value": { + "id": 68906 + } }, "OnClick": { "type": "resref", @@ -513,7 +515,7 @@ }, "Z": { "type": "float", - "value": -8.381903171539307e-009 + "value": -8.381903171539307e-9 } }, { @@ -551,10 +553,10 @@ "value": 15 }, "Description": { - "id": 14594, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 14594 } }, "DisarmDC": { @@ -602,10 +604,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "PRC Manifestation Token Storage" + "0": "PRC Manifestation Token Storage", + "id": 5348 } }, "OnClick": { @@ -780,9 +782,10 @@ "value": 15 }, "Description": { - "id": 14594, "type": "cexolocstring", - "value": {} + "value": { + "id": 14594 + } }, "DisarmDC": { "type": "byte", @@ -829,10 +832,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "PRC_CRAFT_STORAGE_CHEST" + "0": "PRC_CRAFT_STORAGE_CHEST", + "id": 5348 } }, "OnClick": { @@ -1007,9 +1010,10 @@ "value": 15 }, "Description": { - "id": 14594, "type": "cexolocstring", - "value": {} + "value": { + "id": 14594 + } }, "DisarmDC": { "type": "byte", @@ -1056,10 +1060,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "\";\\n" + "0": "\";\\n", + "id": 5348 } }, "OnClick": { @@ -1274,7 +1278,7 @@ }, "ZPosition": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -1296,10 +1300,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "PRC Shifting Template creature spawn location" + "0": "PRC Shifting Template creature spawn location", + "id": 14817 } }, "MapNote": { diff --git a/_module/git/prc_maze_01.git.json b/_module/git/prc_maze_01.git.json index 07f6b7bd..9b921fda 100644 --- a/_module/git/prc_maze_01.git.json +++ b/_module/git/prc_maze_01.git.json @@ -114,7 +114,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -133,11 +133,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.2707840502262116 + "value": 0.27078405022621155 } }, { @@ -178,10 +178,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Northward Entry" + "0": "Northward Entry", + "id": 14759 } }, "OnClick": { @@ -278,7 +278,7 @@ }, "XPosition": { "type": "float", - "value": 22.81622695922852 + "value": 22.816226959228516 }, "YOrientation": { "type": "float", @@ -286,7 +286,7 @@ }, "YPosition": { "type": "float", - "value": 51.43787002563477 + "value": 51.437870025634766 }, "ZOrientation": { "type": "float", @@ -294,7 +294,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -330,14 +330,14 @@ }, "PointZ": { "type": "float", - "value": 0.2349531948566437 + "value": 0.23495319485664368 } }, { "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -356,7 +356,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -401,10 +401,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Southward Entry" + "0": "Southward Entry", + "id": 14759 } }, "OnClick": { @@ -501,7 +501,7 @@ }, "XPosition": { "type": "float", - "value": 153.1847076416016 + "value": 153.18470764160156 }, "YOrientation": { "type": "float", @@ -517,7 +517,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -560,7 +560,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -579,11 +579,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.3958608210086823 + "value": 0.39586082100868225 } }, { @@ -624,10 +624,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Westward Entry" + "0": "Westward Entry", + "id": 14759 } }, "OnClick": { @@ -740,7 +740,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -783,7 +783,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -802,7 +802,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -847,10 +847,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Eastward Entry" + "0": "Eastward Entry", + "id": 14759 } }, "OnClick": { @@ -947,7 +947,7 @@ }, "XPosition": { "type": "float", - "value": 7.382128238677979 + "value": 7.3821282386779785 }, "YOrientation": { "type": "float", @@ -963,7 +963,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -1006,7 +1006,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -1025,7 +1025,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -1070,10 +1070,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North Junction" + "0": "North Junction", + "id": 14759 } }, "OnClick": { @@ -1170,7 +1170,7 @@ }, "XPosition": { "type": "float", - "value": 3.01154375076294 + "value": 3.0115437507629395 }, "YOrientation": { "type": "float", @@ -1186,7 +1186,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -1214,11 +1214,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -1229,11 +1229,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -1244,11 +1244,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -1259,11 +1259,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -1274,7 +1274,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -1293,7 +1293,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -1304,11 +1304,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -1323,7 +1323,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -1334,11 +1334,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -1349,11 +1349,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -1368,7 +1368,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -1383,7 +1383,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -1394,7 +1394,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -1409,11 +1409,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -1424,11 +1424,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -1439,11 +1439,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -1454,7 +1454,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -1469,7 +1469,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -1484,11 +1484,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -1499,11 +1499,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -1533,10 +1533,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West & East Junction" + "0": "North & South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -1641,7 +1641,7 @@ }, "YPosition": { "type": "float", - "value": 45.98467636108398 + "value": 45.984676361083984 }, "ZOrientation": { "type": "float", @@ -1692,7 +1692,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -1711,7 +1711,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -1756,10 +1756,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "East Junction" + "0": "East Junction", + "id": 14759 } }, "OnClick": { @@ -1872,7 +1872,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -1900,11 +1900,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -1915,11 +1915,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -1930,11 +1930,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -1945,11 +1945,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -1960,7 +1960,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -1979,7 +1979,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -1990,11 +1990,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -2009,7 +2009,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -2020,11 +2020,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -2035,11 +2035,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -2054,7 +2054,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -2069,7 +2069,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -2080,7 +2080,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -2095,11 +2095,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -2110,11 +2110,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -2125,11 +2125,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -2140,7 +2140,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -2155,7 +2155,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -2170,11 +2170,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -2185,11 +2185,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -2219,10 +2219,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -2319,7 +2319,7 @@ }, "XPosition": { "type": "float", - "value": 35.50896835327148 + "value": 35.508968353271484 }, "YOrientation": { "type": "float", @@ -2327,7 +2327,7 @@ }, "YPosition": { "type": "float", - "value": 46.12579727172852 + "value": 46.125797271728516 }, "ZOrientation": { "type": "float", @@ -2335,7 +2335,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -2363,11 +2363,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -2378,11 +2378,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -2393,11 +2393,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -2408,11 +2408,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -2423,7 +2423,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -2442,7 +2442,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -2453,11 +2453,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -2472,7 +2472,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -2483,11 +2483,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -2498,11 +2498,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -2517,7 +2517,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -2532,7 +2532,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -2543,7 +2543,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -2558,11 +2558,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -2573,11 +2573,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -2588,11 +2588,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -2603,7 +2603,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -2618,7 +2618,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -2633,11 +2633,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -2648,11 +2648,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -2682,10 +2682,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -2790,7 +2790,7 @@ }, "YPosition": { "type": "float", - "value": 35.94875335693359 + "value": 35.948753356933594 }, "ZOrientation": { "type": "float", @@ -2798,7 +2798,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -2826,11 +2826,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -2841,11 +2841,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -2856,11 +2856,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -2871,11 +2871,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -2886,7 +2886,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -2905,7 +2905,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -2916,11 +2916,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -2935,7 +2935,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -2946,11 +2946,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -2961,11 +2961,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -2980,7 +2980,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -2995,7 +2995,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -3006,7 +3006,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -3021,11 +3021,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -3036,11 +3036,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -3051,11 +3051,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -3066,7 +3066,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -3081,7 +3081,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -3096,11 +3096,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -3111,11 +3111,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -3145,10 +3145,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -3245,7 +3245,7 @@ }, "XPosition": { "type": "float", - "value": 15.46780109405518 + "value": 15.467801094055176 }, "YOrientation": { "type": "float", @@ -3261,7 +3261,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -3289,11 +3289,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -3304,11 +3304,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -3319,11 +3319,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -3334,11 +3334,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -3349,7 +3349,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -3368,7 +3368,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -3379,11 +3379,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -3398,7 +3398,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -3409,11 +3409,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -3424,11 +3424,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -3443,7 +3443,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -3458,7 +3458,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -3469,7 +3469,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -3484,11 +3484,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -3499,11 +3499,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -3514,11 +3514,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -3529,7 +3529,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -3544,7 +3544,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -3559,11 +3559,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -3574,11 +3574,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -3608,10 +3608,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -3724,7 +3724,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -3752,11 +3752,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -3767,11 +3767,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -3782,11 +3782,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -3797,11 +3797,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -3812,7 +3812,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -3831,7 +3831,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -3842,11 +3842,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -3861,7 +3861,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -3872,11 +3872,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -3887,11 +3887,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -3906,7 +3906,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -3921,7 +3921,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -3932,7 +3932,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -3947,11 +3947,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -3962,11 +3962,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -3977,11 +3977,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -3992,7 +3992,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -4007,7 +4007,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -4022,11 +4022,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -4037,11 +4037,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -4071,10 +4071,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -4179,7 +4179,7 @@ }, "YPosition": { "type": "float", - "value": 86.00540161132813 + "value": 86.00540161132812 }, "ZOrientation": { "type": "float", @@ -4215,11 +4215,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -4230,11 +4230,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -4245,11 +4245,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -4260,11 +4260,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -4275,7 +4275,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -4294,7 +4294,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -4305,11 +4305,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -4324,7 +4324,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -4335,11 +4335,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -4350,11 +4350,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -4369,7 +4369,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -4384,7 +4384,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -4395,7 +4395,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -4410,11 +4410,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -4425,11 +4425,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -4440,11 +4440,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -4455,7 +4455,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -4470,7 +4470,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -4485,11 +4485,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -4500,11 +4500,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -4534,10 +4534,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -4650,7 +4650,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -4678,11 +4678,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -4693,11 +4693,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -4708,11 +4708,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -4723,11 +4723,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -4738,7 +4738,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -4757,7 +4757,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -4768,11 +4768,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -4787,7 +4787,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -4798,11 +4798,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -4813,11 +4813,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -4832,7 +4832,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -4847,7 +4847,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -4858,7 +4858,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -4873,11 +4873,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -4888,11 +4888,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -4903,11 +4903,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -4918,7 +4918,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -4933,7 +4933,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -4948,11 +4948,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -4963,11 +4963,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -4997,10 +4997,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -5097,7 +5097,7 @@ }, "XPosition": { "type": "float", - "value": 15.55816268920898 + "value": 15.558162689208984 }, "YOrientation": { "type": "float", @@ -5105,7 +5105,7 @@ }, "YPosition": { "type": "float", - "value": 55.93521881103516 + "value": 55.935218811035156 }, "ZOrientation": { "type": "float", @@ -5113,7 +5113,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -5141,11 +5141,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -5156,11 +5156,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -5171,11 +5171,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -5186,11 +5186,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -5201,7 +5201,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -5220,7 +5220,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -5231,11 +5231,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -5250,7 +5250,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -5261,11 +5261,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -5276,11 +5276,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -5295,7 +5295,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -5310,7 +5310,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -5321,7 +5321,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -5336,11 +5336,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -5351,11 +5351,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -5366,11 +5366,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -5381,7 +5381,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -5396,7 +5396,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -5411,11 +5411,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -5426,11 +5426,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -5460,10 +5460,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -5604,11 +5604,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -5619,11 +5619,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -5634,11 +5634,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -5649,11 +5649,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -5664,7 +5664,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -5683,7 +5683,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -5694,11 +5694,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -5713,7 +5713,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -5724,11 +5724,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -5739,11 +5739,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -5758,7 +5758,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -5773,7 +5773,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -5784,7 +5784,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -5799,11 +5799,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -5814,11 +5814,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -5829,11 +5829,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -5844,7 +5844,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -5859,7 +5859,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -5874,11 +5874,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -5889,11 +5889,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -5923,10 +5923,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -6023,7 +6023,7 @@ }, "XPosition": { "type": "float", - "value": 25.40461921691895 + "value": 25.404619216918945 }, "YOrientation": { "type": "float", @@ -6039,7 +6039,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -6067,11 +6067,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -6082,11 +6082,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -6097,11 +6097,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -6112,11 +6112,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -6127,7 +6127,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -6146,7 +6146,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -6157,11 +6157,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -6176,7 +6176,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -6187,11 +6187,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -6202,11 +6202,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -6221,7 +6221,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -6236,7 +6236,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -6247,7 +6247,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -6262,11 +6262,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -6277,11 +6277,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -6292,11 +6292,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -6307,7 +6307,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -6322,7 +6322,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -6337,11 +6337,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -6352,11 +6352,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -6386,10 +6386,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -6502,7 +6502,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -6530,11 +6530,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -6545,11 +6545,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -6560,11 +6560,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -6575,11 +6575,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -6590,7 +6590,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -6609,7 +6609,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -6620,11 +6620,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -6639,7 +6639,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -6650,11 +6650,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -6665,11 +6665,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -6684,7 +6684,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -6699,7 +6699,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -6710,7 +6710,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -6725,11 +6725,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -6740,11 +6740,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -6755,11 +6755,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -6770,7 +6770,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -6785,7 +6785,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -6800,11 +6800,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -6815,11 +6815,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -6849,10 +6849,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -6965,7 +6965,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -6993,11 +6993,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -7008,11 +7008,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -7023,11 +7023,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -7038,11 +7038,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -7053,7 +7053,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -7072,7 +7072,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -7083,11 +7083,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -7102,7 +7102,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -7113,11 +7113,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -7128,11 +7128,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -7147,7 +7147,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -7162,7 +7162,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -7173,7 +7173,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -7188,11 +7188,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -7203,11 +7203,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -7218,11 +7218,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -7233,7 +7233,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -7248,7 +7248,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -7263,11 +7263,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -7278,11 +7278,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -7312,10 +7312,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -7412,7 +7412,7 @@ }, "XPosition": { "type": "float", - "value": 15.53039169311523 + "value": 15.530391693115234 }, "YOrientation": { "type": "float", @@ -7420,7 +7420,7 @@ }, "YPosition": { "type": "float", - "value": 15.92131328582764 + "value": 15.921313285827637 }, "ZOrientation": { "type": "float", @@ -7428,7 +7428,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -7456,11 +7456,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -7471,11 +7471,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -7486,11 +7486,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -7501,11 +7501,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -7516,7 +7516,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -7535,7 +7535,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -7546,11 +7546,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -7565,7 +7565,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -7576,11 +7576,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -7591,11 +7591,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -7610,7 +7610,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -7625,7 +7625,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -7636,7 +7636,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -7651,11 +7651,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -7666,11 +7666,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -7681,11 +7681,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -7696,7 +7696,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -7711,7 +7711,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -7726,11 +7726,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -7741,11 +7741,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -7775,10 +7775,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -7919,11 +7919,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -7934,11 +7934,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -7949,11 +7949,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -7964,11 +7964,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -7979,7 +7979,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -7998,7 +7998,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -8009,11 +8009,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -8028,7 +8028,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -8039,11 +8039,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -8054,11 +8054,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -8073,7 +8073,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -8088,7 +8088,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -8099,7 +8099,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -8114,11 +8114,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -8129,11 +8129,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -8144,11 +8144,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -8159,7 +8159,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -8174,7 +8174,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -8189,11 +8189,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -8204,11 +8204,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -8238,10 +8238,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -8346,7 +8346,7 @@ }, "YPosition": { "type": "float", - "value": 25.82070922851563 + "value": 25.820709228515625 }, "ZOrientation": { "type": "float", @@ -8354,7 +8354,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -8382,11 +8382,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -8397,11 +8397,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -8412,11 +8412,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -8427,11 +8427,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -8442,7 +8442,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -8461,7 +8461,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -8472,11 +8472,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -8491,7 +8491,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -8502,11 +8502,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -8517,11 +8517,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -8536,7 +8536,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -8551,7 +8551,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -8562,7 +8562,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -8577,11 +8577,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -8592,11 +8592,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -8607,11 +8607,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -8622,7 +8622,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -8637,7 +8637,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -8652,11 +8652,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -8667,11 +8667,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -8701,10 +8701,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -8809,7 +8809,7 @@ }, "YPosition": { "type": "float", - "value": 16.04148483276367 + "value": 16.041484832763672 }, "ZOrientation": { "type": "float", @@ -8845,11 +8845,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -8860,11 +8860,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -8875,11 +8875,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -8890,11 +8890,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -8905,7 +8905,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -8924,7 +8924,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -8935,11 +8935,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -8954,7 +8954,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -8965,11 +8965,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -8980,11 +8980,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -8999,7 +8999,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -9014,7 +9014,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -9025,7 +9025,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -9040,11 +9040,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -9055,11 +9055,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -9070,11 +9070,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -9085,7 +9085,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -9100,7 +9100,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -9115,11 +9115,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -9130,11 +9130,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -9164,10 +9164,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -9264,7 +9264,7 @@ }, "XPosition": { "type": "float", - "value": 35.52972793579102 + "value": 35.529727935791016 }, "YOrientation": { "type": "float", @@ -9280,7 +9280,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -9308,11 +9308,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -9323,11 +9323,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -9338,11 +9338,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -9353,11 +9353,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -9368,7 +9368,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -9387,7 +9387,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -9398,11 +9398,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -9417,7 +9417,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -9428,11 +9428,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -9443,11 +9443,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -9462,7 +9462,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -9477,7 +9477,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -9488,7 +9488,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -9503,11 +9503,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -9518,11 +9518,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -9533,11 +9533,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -9548,7 +9548,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -9563,7 +9563,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -9578,11 +9578,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -9593,11 +9593,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -9627,10 +9627,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -9735,7 +9735,7 @@ }, "YPosition": { "type": "float", - "value": 25.62842750549316 + "value": 25.628427505493164 }, "ZOrientation": { "type": "float", @@ -9743,7 +9743,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -9771,11 +9771,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -9786,11 +9786,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -9801,11 +9801,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -9816,11 +9816,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -9831,7 +9831,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -9839,7 +9839,7 @@ }, "PointZ": { "type": "float", - "value": 1.119182229042053 + "value": 1.1191822290420532 } }, { @@ -9850,7 +9850,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -9861,11 +9861,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -9880,7 +9880,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -9891,11 +9891,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -9906,11 +9906,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -9925,7 +9925,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -9940,7 +9940,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -9951,7 +9951,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -9966,11 +9966,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -9981,11 +9981,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -9996,11 +9996,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -10011,7 +10011,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -10026,7 +10026,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -10041,11 +10041,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -10056,11 +10056,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -10090,10 +10090,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -10190,7 +10190,7 @@ }, "XPosition": { "type": "float", - "value": 35.29354095458984 + "value": 35.293540954589844 }, "YOrientation": { "type": "float", @@ -10198,7 +10198,7 @@ }, "YPosition": { "type": "float", - "value": 6.037699699401856 + "value": 6.0376996994018555 }, "ZOrientation": { "type": "float", @@ -10206,7 +10206,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -10234,11 +10234,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -10249,11 +10249,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -10264,11 +10264,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -10279,11 +10279,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -10294,7 +10294,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -10313,7 +10313,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -10324,11 +10324,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -10343,7 +10343,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -10354,11 +10354,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -10369,11 +10369,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -10388,7 +10388,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -10403,7 +10403,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -10414,7 +10414,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -10429,11 +10429,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -10444,11 +10444,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -10459,11 +10459,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -10474,7 +10474,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -10489,7 +10489,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -10504,11 +10504,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -10519,11 +10519,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -10553,10 +10553,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -10653,7 +10653,7 @@ }, "XPosition": { "type": "float", - "value": 55.39041137695313 + "value": 55.390411376953125 }, "YOrientation": { "type": "float", @@ -10661,7 +10661,7 @@ }, "YPosition": { "type": "float", - "value": 6.118979930877686 + "value": 6.1189799308776855 }, "ZOrientation": { "type": "float", @@ -10697,11 +10697,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -10712,11 +10712,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -10727,11 +10727,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -10742,11 +10742,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -10757,7 +10757,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -10776,7 +10776,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -10787,11 +10787,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -10806,7 +10806,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -10817,11 +10817,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -10832,11 +10832,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -10851,7 +10851,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -10866,7 +10866,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -10877,7 +10877,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -10892,11 +10892,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -10907,11 +10907,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -10922,11 +10922,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -10937,7 +10937,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -10952,7 +10952,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -10967,11 +10967,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -10982,11 +10982,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -11016,10 +11016,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -11132,7 +11132,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -11160,11 +11160,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -11175,11 +11175,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -11190,11 +11190,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -11205,11 +11205,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -11220,7 +11220,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -11239,7 +11239,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -11250,11 +11250,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -11269,7 +11269,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -11280,11 +11280,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -11295,11 +11295,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -11314,7 +11314,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -11329,7 +11329,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -11340,7 +11340,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -11355,11 +11355,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -11370,11 +11370,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -11385,11 +11385,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -11400,7 +11400,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -11415,7 +11415,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -11430,11 +11430,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -11445,11 +11445,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -11479,10 +11479,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -11579,7 +11579,7 @@ }, "XPosition": { "type": "float", - "value": 55.68396377563477 + "value": 55.683963775634766 }, "YOrientation": { "type": "float", @@ -11587,7 +11587,7 @@ }, "YPosition": { "type": "float", - "value": 25.84547805786133 + "value": 25.845478057861328 }, "ZOrientation": { "type": "float", @@ -11595,7 +11595,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -11623,11 +11623,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -11638,11 +11638,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -11653,11 +11653,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -11668,11 +11668,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -11683,7 +11683,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -11702,7 +11702,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -11713,11 +11713,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -11732,7 +11732,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -11743,11 +11743,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -11758,11 +11758,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -11777,7 +11777,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -11792,7 +11792,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -11803,7 +11803,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -11818,11 +11818,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -11833,11 +11833,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -11848,11 +11848,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -11863,7 +11863,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -11878,7 +11878,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -11893,11 +11893,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -11908,11 +11908,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -11942,10 +11942,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -12050,7 +12050,7 @@ }, "YPosition": { "type": "float", - "value": 15.86480903625488 + "value": 15.864809036254883 }, "ZOrientation": { "type": "float", @@ -12086,11 +12086,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -12101,11 +12101,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -12116,11 +12116,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -12131,11 +12131,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -12146,7 +12146,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -12165,7 +12165,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -12176,11 +12176,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -12195,7 +12195,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -12206,11 +12206,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -12221,11 +12221,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -12240,7 +12240,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -12255,7 +12255,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -12266,7 +12266,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -12281,11 +12281,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -12296,11 +12296,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -12311,11 +12311,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -12326,7 +12326,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -12341,7 +12341,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -12356,11 +12356,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -12371,11 +12371,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -12405,10 +12405,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -12521,7 +12521,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -12549,11 +12549,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -12564,11 +12564,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -12579,11 +12579,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -12594,11 +12594,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -12609,7 +12609,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -12628,7 +12628,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -12639,11 +12639,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -12658,7 +12658,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -12669,11 +12669,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -12684,11 +12684,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -12703,7 +12703,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -12718,7 +12718,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -12729,7 +12729,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -12744,11 +12744,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -12759,11 +12759,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -12774,11 +12774,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -12789,7 +12789,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -12804,7 +12804,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -12819,11 +12819,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -12834,11 +12834,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -12868,10 +12868,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -12968,7 +12968,7 @@ }, "XPosition": { "type": "float", - "value": 115.4062576293945 + "value": 115.40625762939453 }, "YOrientation": { "type": "float", @@ -12976,7 +12976,7 @@ }, "YPosition": { "type": "float", - "value": 16.0639820098877 + "value": 16.063982009887695 }, "ZOrientation": { "type": "float", @@ -12984,7 +12984,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -13012,11 +13012,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -13027,11 +13027,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -13042,11 +13042,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -13057,11 +13057,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -13072,7 +13072,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -13091,7 +13091,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -13102,11 +13102,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -13121,7 +13121,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -13132,11 +13132,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -13147,11 +13147,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -13166,7 +13166,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -13181,7 +13181,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -13192,7 +13192,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -13207,11 +13207,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -13222,11 +13222,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -13237,11 +13237,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -13252,7 +13252,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -13267,7 +13267,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -13282,11 +13282,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -13297,11 +13297,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -13331,10 +13331,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -13431,7 +13431,7 @@ }, "XPosition": { "type": "float", - "value": 105.6359558105469 + "value": 105.63595581054688 }, "YOrientation": { "type": "float", @@ -13439,7 +13439,7 @@ }, "YPosition": { "type": "float", - "value": 15.77871704101563 + "value": 15.778717041015625 }, "ZOrientation": { "type": "float", @@ -13447,7 +13447,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -13475,11 +13475,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -13490,11 +13490,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -13505,11 +13505,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -13520,11 +13520,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -13535,7 +13535,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -13554,7 +13554,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -13565,11 +13565,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -13584,7 +13584,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -13595,11 +13595,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -13610,11 +13610,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -13629,7 +13629,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -13644,7 +13644,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -13655,7 +13655,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -13670,11 +13670,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -13685,11 +13685,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -13700,11 +13700,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -13715,7 +13715,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -13730,7 +13730,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -13745,11 +13745,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -13760,11 +13760,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -13794,10 +13794,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -13894,7 +13894,7 @@ }, "XPosition": { "type": "float", - "value": 115.3349533081055 + "value": 115.33495330810547 }, "YOrientation": { "type": "float", @@ -13902,7 +13902,7 @@ }, "YPosition": { "type": "float", - "value": 25.76296997070313 + "value": 25.762969970703125 }, "ZOrientation": { "type": "float", @@ -13910,7 +13910,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -13938,11 +13938,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -13953,11 +13953,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -13968,11 +13968,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -13983,11 +13983,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -13998,7 +13998,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -14017,7 +14017,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -14028,11 +14028,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -14047,7 +14047,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -14058,11 +14058,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -14073,11 +14073,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -14092,7 +14092,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -14107,7 +14107,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -14118,7 +14118,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -14133,11 +14133,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -14148,11 +14148,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -14163,11 +14163,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -14178,7 +14178,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -14193,7 +14193,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -14208,11 +14208,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -14223,11 +14223,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -14257,10 +14257,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West & East Junction" + "0": "North & South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -14373,7 +14373,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -14401,11 +14401,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -14416,11 +14416,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -14431,11 +14431,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -14446,11 +14446,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -14461,7 +14461,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -14480,7 +14480,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -14491,11 +14491,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -14510,7 +14510,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -14521,11 +14521,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -14536,11 +14536,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -14555,7 +14555,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -14570,7 +14570,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -14581,7 +14581,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -14596,11 +14596,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -14611,11 +14611,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -14626,11 +14626,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -14641,7 +14641,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -14656,7 +14656,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -14671,11 +14671,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -14686,11 +14686,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -14720,10 +14720,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -14820,7 +14820,7 @@ }, "XPosition": { "type": "float", - "value": 105.5646362304688 + "value": 105.56463623046875 }, "YOrientation": { "type": "float", @@ -14836,7 +14836,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -14864,11 +14864,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -14879,11 +14879,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -14894,11 +14894,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -14909,11 +14909,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -14924,7 +14924,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -14943,7 +14943,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -14954,11 +14954,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -14973,7 +14973,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -14984,11 +14984,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -14999,11 +14999,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -15018,7 +15018,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -15033,7 +15033,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -15044,7 +15044,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -15059,11 +15059,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -15074,11 +15074,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -15089,11 +15089,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -15104,7 +15104,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -15119,7 +15119,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -15134,11 +15134,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -15149,11 +15149,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -15183,10 +15183,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -15291,7 +15291,7 @@ }, "YPosition": { "type": "float", - "value": 25.76297187805176 + "value": 25.762971878051758 }, "ZOrientation": { "type": "float", @@ -15299,7 +15299,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -15327,11 +15327,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -15342,11 +15342,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -15357,11 +15357,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -15372,11 +15372,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -15387,7 +15387,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -15406,7 +15406,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -15417,11 +15417,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -15436,7 +15436,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -15447,11 +15447,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -15462,11 +15462,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -15481,7 +15481,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -15496,7 +15496,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -15507,7 +15507,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -15522,11 +15522,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -15537,11 +15537,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -15552,11 +15552,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -15567,7 +15567,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -15582,7 +15582,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -15597,11 +15597,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -15612,11 +15612,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -15646,10 +15646,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -15754,7 +15754,7 @@ }, "YPosition": { "type": "float", - "value": 16.0639820098877 + "value": 16.063982009887695 }, "ZOrientation": { "type": "float", @@ -15790,11 +15790,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -15805,11 +15805,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -15820,11 +15820,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -15835,11 +15835,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -15850,7 +15850,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -15869,7 +15869,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -15880,11 +15880,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -15899,7 +15899,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -15910,11 +15910,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -15925,11 +15925,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -15944,7 +15944,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -15959,7 +15959,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -15970,7 +15970,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -15985,11 +15985,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -16000,11 +16000,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -16015,11 +16015,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -16030,7 +16030,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -16045,7 +16045,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -16060,11 +16060,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -16075,11 +16075,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -16109,10 +16109,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -16217,7 +16217,7 @@ }, "YPosition": { "type": "float", - "value": 15.99711036682129 + "value": 15.997110366821289 }, "ZOrientation": { "type": "float", @@ -16225,7 +16225,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -16253,11 +16253,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -16268,11 +16268,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -16283,11 +16283,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -16298,11 +16298,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -16313,7 +16313,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -16332,7 +16332,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -16343,11 +16343,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -16362,7 +16362,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -16373,11 +16373,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -16388,11 +16388,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -16407,7 +16407,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -16422,7 +16422,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -16433,7 +16433,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -16448,11 +16448,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -16463,11 +16463,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -16478,11 +16478,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -16493,7 +16493,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -16508,7 +16508,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -16523,11 +16523,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -16538,11 +16538,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -16572,10 +16572,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -16672,7 +16672,7 @@ }, "XPosition": { "type": "float", - "value": 65.47592926025391 + "value": 65.4759292602539 }, "YOrientation": { "type": "float", @@ -16680,7 +16680,7 @@ }, "YPosition": { "type": "float", - "value": 26.08666801452637 + "value": 26.086668014526367 }, "ZOrientation": { "type": "float", @@ -16688,7 +16688,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -16716,11 +16716,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -16731,11 +16731,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -16746,11 +16746,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -16761,11 +16761,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -16776,7 +16776,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -16795,7 +16795,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -16806,11 +16806,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -16825,7 +16825,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -16836,11 +16836,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -16851,11 +16851,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -16870,7 +16870,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -16885,7 +16885,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -16896,7 +16896,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -16911,11 +16911,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -16926,11 +16926,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -16941,11 +16941,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -16956,7 +16956,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -16971,7 +16971,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -16986,11 +16986,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -17001,11 +17001,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -17035,10 +17035,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -17151,7 +17151,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -17179,11 +17179,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -17194,11 +17194,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -17209,11 +17209,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -17224,11 +17224,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -17239,7 +17239,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -17258,7 +17258,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -17269,11 +17269,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -17288,7 +17288,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -17299,11 +17299,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -17314,11 +17314,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -17333,7 +17333,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -17348,7 +17348,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -17359,7 +17359,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -17374,11 +17374,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -17389,11 +17389,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -17404,11 +17404,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -17419,7 +17419,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -17434,7 +17434,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -17449,11 +17449,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -17464,11 +17464,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -17498,10 +17498,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -17614,7 +17614,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -17642,11 +17642,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -17657,11 +17657,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -17672,11 +17672,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -17687,11 +17687,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -17702,7 +17702,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -17721,7 +17721,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -17732,11 +17732,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -17751,7 +17751,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -17762,11 +17762,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -17777,11 +17777,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -17796,7 +17796,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -17811,7 +17811,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -17822,7 +17822,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -17837,11 +17837,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -17852,11 +17852,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -17867,11 +17867,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -17882,7 +17882,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -17897,7 +17897,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -17912,11 +17912,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -17927,11 +17927,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -17961,10 +17961,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -18061,7 +18061,7 @@ }, "XPosition": { "type": "float", - "value": 55.49167633056641 + "value": 55.491676330566406 }, "YOrientation": { "type": "float", @@ -18069,7 +18069,7 @@ }, "YPosition": { "type": "float", - "value": 46.01627349853516 + "value": 46.016273498535156 }, "ZOrientation": { "type": "float", @@ -18105,11 +18105,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -18120,11 +18120,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -18135,11 +18135,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -18150,11 +18150,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -18165,7 +18165,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -18184,7 +18184,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -18195,11 +18195,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -18214,7 +18214,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -18225,11 +18225,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -18240,11 +18240,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -18259,7 +18259,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -18274,7 +18274,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -18285,7 +18285,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -18300,11 +18300,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -18315,11 +18315,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -18330,11 +18330,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -18345,7 +18345,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -18360,7 +18360,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -18375,11 +18375,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -18390,11 +18390,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -18424,10 +18424,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -18540,7 +18540,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -18568,11 +18568,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -18583,11 +18583,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -18598,11 +18598,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -18613,11 +18613,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -18628,7 +18628,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -18647,7 +18647,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -18658,11 +18658,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -18677,7 +18677,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -18688,11 +18688,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -18703,11 +18703,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -18722,7 +18722,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -18737,7 +18737,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -18748,7 +18748,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -18763,11 +18763,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -18778,11 +18778,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -18793,11 +18793,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -18808,7 +18808,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -18823,7 +18823,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -18838,11 +18838,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -18853,11 +18853,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -18887,10 +18887,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -19003,7 +19003,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -19031,11 +19031,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -19046,11 +19046,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -19061,11 +19061,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -19076,11 +19076,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -19091,7 +19091,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -19110,7 +19110,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -19121,11 +19121,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -19140,7 +19140,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -19151,11 +19151,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -19166,11 +19166,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -19185,7 +19185,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -19200,7 +19200,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -19211,7 +19211,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -19226,11 +19226,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -19241,11 +19241,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -19256,11 +19256,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -19271,7 +19271,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -19286,7 +19286,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -19301,11 +19301,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -19316,11 +19316,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -19350,10 +19350,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -19466,7 +19466,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -19494,11 +19494,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -19509,11 +19509,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -19524,11 +19524,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -19539,11 +19539,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -19554,7 +19554,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -19573,7 +19573,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -19584,11 +19584,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -19603,7 +19603,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -19614,11 +19614,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -19629,11 +19629,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -19648,7 +19648,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -19663,7 +19663,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -19674,7 +19674,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -19689,11 +19689,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -19704,11 +19704,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -19719,11 +19719,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -19734,7 +19734,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -19749,7 +19749,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -19764,11 +19764,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -19779,11 +19779,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -19813,10 +19813,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -19913,7 +19913,7 @@ }, "XPosition": { "type": "float", - "value": 125.5948867797852 + "value": 125.59488677978516 }, "YOrientation": { "type": "float", @@ -19929,7 +19929,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -19957,11 +19957,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -19972,11 +19972,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -19987,11 +19987,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -20002,11 +20002,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -20017,7 +20017,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -20036,7 +20036,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -20047,11 +20047,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -20066,7 +20066,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -20077,11 +20077,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -20092,11 +20092,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -20111,7 +20111,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -20126,7 +20126,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -20137,7 +20137,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -20152,11 +20152,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -20167,11 +20167,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -20182,11 +20182,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -20197,7 +20197,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -20212,7 +20212,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -20227,11 +20227,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -20242,11 +20242,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -20276,10 +20276,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -20376,7 +20376,7 @@ }, "XPosition": { "type": "float", - "value": 125.674674987793 + "value": 125.67467498779297 }, "YOrientation": { "type": "float", @@ -20392,7 +20392,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -20420,11 +20420,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -20435,11 +20435,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -20450,11 +20450,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -20465,11 +20465,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -20480,7 +20480,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -20499,7 +20499,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -20510,11 +20510,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -20529,7 +20529,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -20540,11 +20540,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -20555,11 +20555,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -20574,7 +20574,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -20589,7 +20589,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -20600,7 +20600,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -20615,11 +20615,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -20630,11 +20630,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -20645,11 +20645,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -20660,7 +20660,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -20675,7 +20675,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -20690,11 +20690,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -20705,11 +20705,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -20739,10 +20739,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -20839,7 +20839,7 @@ }, "XPosition": { "type": "float", - "value": 145.5045013427734 + "value": 145.50450134277344 }, "YOrientation": { "type": "float", @@ -20855,7 +20855,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -20883,11 +20883,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -20898,11 +20898,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -20913,11 +20913,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -20928,11 +20928,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -20943,7 +20943,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -20962,7 +20962,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -20973,11 +20973,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -20992,7 +20992,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -21003,11 +21003,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -21018,11 +21018,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -21037,7 +21037,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -21052,7 +21052,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -21063,7 +21063,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -21078,11 +21078,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -21093,11 +21093,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -21108,11 +21108,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -21123,7 +21123,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -21138,7 +21138,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -21153,11 +21153,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -21168,11 +21168,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -21202,10 +21202,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -21302,7 +21302,7 @@ }, "XPosition": { "type": "float", - "value": 125.6210250854492 + "value": 125.62102508544922 }, "YOrientation": { "type": "float", @@ -21318,7 +21318,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -21346,11 +21346,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -21361,11 +21361,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -21376,11 +21376,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -21391,11 +21391,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -21406,7 +21406,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -21425,7 +21425,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -21436,11 +21436,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -21455,7 +21455,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -21466,11 +21466,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -21481,11 +21481,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -21500,7 +21500,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -21515,7 +21515,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -21526,7 +21526,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -21541,11 +21541,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -21556,11 +21556,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -21571,11 +21571,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -21586,7 +21586,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -21601,7 +21601,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -21616,11 +21616,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -21631,11 +21631,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -21665,10 +21665,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -21773,7 +21773,7 @@ }, "YPosition": { "type": "float", - "value": 25.76592636108398 + "value": 25.765926361083984 }, "ZOrientation": { "type": "float", @@ -21781,7 +21781,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -21809,11 +21809,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -21824,11 +21824,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -21839,11 +21839,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -21854,11 +21854,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -21869,7 +21869,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -21888,7 +21888,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -21899,11 +21899,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -21918,7 +21918,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -21929,11 +21929,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -21944,11 +21944,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -21963,7 +21963,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -21978,7 +21978,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -21989,7 +21989,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -22004,11 +22004,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -22019,11 +22019,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -22034,11 +22034,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -22049,7 +22049,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -22064,7 +22064,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -22079,11 +22079,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -22094,11 +22094,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -22128,10 +22128,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -22228,7 +22228,7 @@ }, "XPosition": { "type": "float", - "value": 155.5576019287109 + "value": 155.55760192871094 }, "YOrientation": { "type": "float", @@ -22244,7 +22244,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -22272,11 +22272,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -22287,11 +22287,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -22302,11 +22302,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -22317,11 +22317,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -22332,7 +22332,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -22351,7 +22351,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -22362,11 +22362,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -22381,7 +22381,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -22392,11 +22392,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -22407,11 +22407,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -22426,7 +22426,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -22441,7 +22441,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -22452,7 +22452,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -22467,11 +22467,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -22482,11 +22482,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -22497,11 +22497,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -22512,7 +22512,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -22527,7 +22527,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -22542,11 +22542,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -22557,11 +22557,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -22591,10 +22591,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -22699,7 +22699,7 @@ }, "YPosition": { "type": "float", - "value": 45.88912963867188 + "value": 45.889129638671875 }, "ZOrientation": { "type": "float", @@ -22707,7 +22707,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -22735,11 +22735,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -22750,11 +22750,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -22765,11 +22765,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -22780,11 +22780,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -22795,7 +22795,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -22814,7 +22814,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -22825,11 +22825,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -22844,7 +22844,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -22855,11 +22855,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -22870,11 +22870,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -22889,7 +22889,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -22904,7 +22904,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -22915,7 +22915,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -22930,11 +22930,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -22945,11 +22945,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -22960,11 +22960,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -22975,7 +22975,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -22990,7 +22990,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -23005,11 +23005,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -23020,11 +23020,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -23054,10 +23054,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -23154,7 +23154,7 @@ }, "XPosition": { "type": "float", - "value": 135.6738433837891 + "value": 135.67384338378906 }, "YOrientation": { "type": "float", @@ -23162,7 +23162,7 @@ }, "YPosition": { "type": "float", - "value": 46.12174224853516 + "value": 46.121742248535156 }, "ZOrientation": { "type": "float", @@ -23170,7 +23170,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -23198,11 +23198,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -23213,11 +23213,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -23228,11 +23228,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -23243,11 +23243,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -23258,7 +23258,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -23277,7 +23277,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -23288,11 +23288,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -23307,7 +23307,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -23318,11 +23318,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -23333,11 +23333,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -23352,7 +23352,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -23367,7 +23367,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -23378,7 +23378,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -23393,11 +23393,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -23408,11 +23408,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -23423,11 +23423,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -23438,7 +23438,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -23453,7 +23453,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -23468,11 +23468,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -23483,11 +23483,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -23517,10 +23517,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -23617,7 +23617,7 @@ }, "XPosition": { "type": "float", - "value": 155.4341125488281 + "value": 155.43411254882812 }, "YOrientation": { "type": "float", @@ -23633,7 +23633,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -23661,11 +23661,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -23676,11 +23676,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -23691,11 +23691,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -23706,11 +23706,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -23721,7 +23721,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -23740,7 +23740,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -23751,11 +23751,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -23770,7 +23770,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -23781,11 +23781,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -23796,11 +23796,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -23815,7 +23815,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -23830,7 +23830,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -23841,7 +23841,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -23856,11 +23856,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -23871,11 +23871,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -23886,11 +23886,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -23901,7 +23901,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -23916,7 +23916,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -23931,11 +23931,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -23946,11 +23946,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -23980,10 +23980,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -24080,7 +24080,7 @@ }, "XPosition": { "type": "float", - "value": 145.4229125976563 + "value": 145.42291259765625 }, "YOrientation": { "type": "float", @@ -24096,7 +24096,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -24124,11 +24124,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -24139,11 +24139,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -24154,11 +24154,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -24169,11 +24169,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -24184,7 +24184,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -24203,7 +24203,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -24214,11 +24214,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -24233,7 +24233,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -24244,11 +24244,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -24259,11 +24259,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -24278,7 +24278,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -24293,7 +24293,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -24304,7 +24304,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -24319,11 +24319,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -24334,11 +24334,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -24349,11 +24349,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -24364,7 +24364,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -24379,7 +24379,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -24394,11 +24394,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -24409,11 +24409,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -24443,10 +24443,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -24543,7 +24543,7 @@ }, "XPosition": { "type": "float", - "value": 135.6766510009766 + "value": 135.67665100097656 }, "YOrientation": { "type": "float", @@ -24551,7 +24551,7 @@ }, "YPosition": { "type": "float", - "value": 65.80300903320313 + "value": 65.80300903320312 }, "ZOrientation": { "type": "float", @@ -24559,7 +24559,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -24587,11 +24587,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -24602,11 +24602,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -24617,11 +24617,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -24632,11 +24632,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -24647,7 +24647,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -24666,7 +24666,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -24677,11 +24677,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -24696,7 +24696,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -24707,11 +24707,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -24722,11 +24722,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -24741,7 +24741,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -24756,7 +24756,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -24767,7 +24767,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -24782,11 +24782,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -24797,11 +24797,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -24812,11 +24812,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -24827,7 +24827,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -24842,7 +24842,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -24857,11 +24857,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -24872,11 +24872,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -24906,10 +24906,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -25014,7 +25014,7 @@ }, "YPosition": { "type": "float", - "value": 36.04873657226563 + "value": 36.048736572265625 }, "ZOrientation": { "type": "float", @@ -25022,7 +25022,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -25050,11 +25050,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -25065,11 +25065,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -25080,11 +25080,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -25095,11 +25095,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -25110,7 +25110,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -25129,7 +25129,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -25140,11 +25140,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -25159,7 +25159,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -25170,11 +25170,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -25185,11 +25185,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -25204,7 +25204,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -25219,7 +25219,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -25230,7 +25230,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -25245,11 +25245,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -25260,11 +25260,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -25275,11 +25275,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -25290,7 +25290,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -25305,7 +25305,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -25320,11 +25320,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -25335,11 +25335,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -25369,10 +25369,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -25469,7 +25469,7 @@ }, "XPosition": { "type": "float", - "value": 125.4893264770508 + "value": 125.48932647705078 }, "YOrientation": { "type": "float", @@ -25485,7 +25485,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -25513,11 +25513,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -25528,11 +25528,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -25543,11 +25543,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -25558,11 +25558,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -25573,7 +25573,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -25592,7 +25592,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -25603,11 +25603,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -25622,7 +25622,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -25633,11 +25633,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -25648,11 +25648,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -25667,7 +25667,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -25682,7 +25682,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -25693,7 +25693,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -25708,11 +25708,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -25723,11 +25723,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -25738,11 +25738,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -25753,7 +25753,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -25768,7 +25768,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -25783,11 +25783,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -25798,11 +25798,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -25832,10 +25832,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -25932,7 +25932,7 @@ }, "XPosition": { "type": "float", - "value": 105.3950347900391 + "value": 105.39503479003906 }, "YOrientation": { "type": "float", @@ -25948,7 +25948,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -25976,11 +25976,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -25991,11 +25991,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -26006,11 +26006,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -26021,11 +26021,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -26036,7 +26036,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -26055,7 +26055,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -26066,11 +26066,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -26085,7 +26085,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -26096,11 +26096,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -26111,11 +26111,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -26130,7 +26130,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -26145,7 +26145,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -26156,7 +26156,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -26171,11 +26171,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -26186,11 +26186,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -26201,11 +26201,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -26216,7 +26216,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -26231,7 +26231,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -26246,11 +26246,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -26261,11 +26261,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -26295,10 +26295,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -26395,7 +26395,7 @@ }, "XPosition": { "type": "float", - "value": 95.43727874755859 + "value": 95.4372787475586 }, "YOrientation": { "type": "float", @@ -26411,7 +26411,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -26439,11 +26439,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -26454,11 +26454,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -26469,11 +26469,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -26484,11 +26484,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -26499,7 +26499,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -26518,7 +26518,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -26529,11 +26529,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -26548,7 +26548,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -26559,11 +26559,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -26574,11 +26574,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -26593,7 +26593,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -26608,7 +26608,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -26619,7 +26619,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -26634,11 +26634,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -26649,11 +26649,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -26664,11 +26664,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -26679,7 +26679,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -26694,7 +26694,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -26709,11 +26709,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -26724,11 +26724,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -26758,10 +26758,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -26858,7 +26858,7 @@ }, "XPosition": { "type": "float", - "value": 105.6618270874023 + "value": 105.66182708740234 }, "YOrientation": { "type": "float", @@ -26866,7 +26866,7 @@ }, "YPosition": { "type": "float", - "value": 36.08975982666016 + "value": 36.089759826660156 }, "ZOrientation": { "type": "float", @@ -26902,11 +26902,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -26917,11 +26917,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -26932,11 +26932,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -26947,11 +26947,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -26962,7 +26962,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -26981,7 +26981,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -26992,11 +26992,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -27011,7 +27011,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -27022,11 +27022,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -27037,11 +27037,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -27056,7 +27056,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -27071,7 +27071,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -27082,7 +27082,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -27097,11 +27097,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -27112,11 +27112,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -27127,11 +27127,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -27142,7 +27142,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -27157,7 +27157,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -27172,11 +27172,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -27187,11 +27187,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -27221,10 +27221,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -27329,7 +27329,7 @@ }, "YPosition": { "type": "float", - "value": 55.82796478271484 + "value": 55.827964782714844 }, "ZOrientation": { "type": "float", @@ -27337,7 +27337,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -27365,11 +27365,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -27380,11 +27380,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -27395,11 +27395,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -27410,11 +27410,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -27425,7 +27425,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -27444,7 +27444,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -27455,11 +27455,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -27474,7 +27474,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -27485,11 +27485,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -27500,11 +27500,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -27519,7 +27519,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -27534,7 +27534,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -27545,7 +27545,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -27560,11 +27560,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -27575,11 +27575,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -27590,11 +27590,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -27605,7 +27605,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -27620,7 +27620,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -27635,11 +27635,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -27650,11 +27650,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -27684,10 +27684,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -27800,7 +27800,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -27828,11 +27828,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -27843,11 +27843,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -27858,11 +27858,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -27873,11 +27873,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -27888,7 +27888,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -27907,7 +27907,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -27918,11 +27918,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -27937,7 +27937,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -27948,11 +27948,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -27963,11 +27963,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -27982,7 +27982,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -27997,7 +27997,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -28008,7 +28008,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -28023,11 +28023,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -28038,11 +28038,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -28053,11 +28053,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -28068,7 +28068,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -28083,7 +28083,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -28098,11 +28098,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -28113,11 +28113,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -28147,10 +28147,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -28255,7 +28255,7 @@ }, "YPosition": { "type": "float", - "value": 55.98964691162109 + "value": 55.989646911621094 }, "ZOrientation": { "type": "float", @@ -28263,7 +28263,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -28291,11 +28291,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -28306,11 +28306,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -28321,11 +28321,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -28336,11 +28336,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -28351,7 +28351,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -28370,7 +28370,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -28381,11 +28381,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -28400,7 +28400,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -28411,11 +28411,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -28426,11 +28426,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -28445,7 +28445,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -28460,7 +28460,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -28471,7 +28471,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -28486,11 +28486,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -28501,11 +28501,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -28516,11 +28516,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -28531,7 +28531,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -28546,7 +28546,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -28561,11 +28561,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -28576,11 +28576,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -28610,10 +28610,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -28710,7 +28710,7 @@ }, "XPosition": { "type": "float", - "value": 65.68112945556641 + "value": 65.6811294555664 }, "YOrientation": { "type": "float", @@ -28718,7 +28718,7 @@ }, "YPosition": { "type": "float", - "value": 46.04421997070313 + "value": 46.044219970703125 }, "ZOrientation": { "type": "float", @@ -28726,7 +28726,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -28754,11 +28754,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -28769,11 +28769,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -28784,11 +28784,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -28799,11 +28799,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -28814,7 +28814,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -28833,7 +28833,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -28844,11 +28844,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -28863,7 +28863,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -28874,11 +28874,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -28889,11 +28889,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -28908,7 +28908,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -28923,7 +28923,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -28934,7 +28934,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -28949,11 +28949,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -28964,11 +28964,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -28979,11 +28979,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -28994,7 +28994,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -29009,7 +29009,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -29024,11 +29024,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -29039,11 +29039,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -29073,10 +29073,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -29181,7 +29181,7 @@ }, "YPosition": { "type": "float", - "value": 46.16550445556641 + "value": 46.165504455566406 }, "ZOrientation": { "type": "float", @@ -29189,7 +29189,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -29217,11 +29217,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -29232,11 +29232,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -29247,11 +29247,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -29262,11 +29262,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -29277,7 +29277,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -29296,7 +29296,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -29307,11 +29307,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -29326,7 +29326,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -29337,11 +29337,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -29352,11 +29352,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -29371,7 +29371,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -29386,7 +29386,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -29397,7 +29397,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -29412,11 +29412,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -29427,11 +29427,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -29442,11 +29442,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -29457,7 +29457,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -29472,7 +29472,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -29487,11 +29487,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -29502,11 +29502,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -29536,10 +29536,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -29652,7 +29652,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -29680,11 +29680,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -29695,11 +29695,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -29710,11 +29710,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -29725,11 +29725,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -29740,7 +29740,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -29759,7 +29759,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -29770,11 +29770,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -29789,7 +29789,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -29800,11 +29800,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -29815,11 +29815,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -29834,7 +29834,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -29849,7 +29849,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -29860,7 +29860,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -29875,11 +29875,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -29890,11 +29890,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -29905,11 +29905,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -29920,7 +29920,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -29935,7 +29935,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -29950,11 +29950,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -29965,11 +29965,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -29999,10 +29999,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -30115,7 +30115,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -30143,11 +30143,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -30158,11 +30158,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -30173,11 +30173,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -30188,11 +30188,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -30203,7 +30203,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -30222,7 +30222,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -30233,11 +30233,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -30252,7 +30252,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -30263,11 +30263,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -30278,11 +30278,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -30297,7 +30297,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -30312,7 +30312,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -30323,7 +30323,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -30338,11 +30338,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -30353,11 +30353,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -30368,11 +30368,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -30383,7 +30383,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -30398,7 +30398,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -30413,11 +30413,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -30428,11 +30428,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -30462,10 +30462,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -30606,11 +30606,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -30621,11 +30621,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -30636,11 +30636,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -30651,11 +30651,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -30666,7 +30666,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -30685,7 +30685,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -30696,11 +30696,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -30715,7 +30715,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -30726,11 +30726,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -30741,11 +30741,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -30760,7 +30760,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -30775,7 +30775,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -30786,7 +30786,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -30801,11 +30801,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -30816,11 +30816,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -30831,11 +30831,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -30846,7 +30846,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -30861,7 +30861,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -30876,11 +30876,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -30891,11 +30891,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -30925,10 +30925,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -31041,7 +31041,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -31069,11 +31069,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -31084,11 +31084,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -31099,11 +31099,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -31114,11 +31114,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -31129,7 +31129,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -31148,7 +31148,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -31159,11 +31159,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -31178,7 +31178,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -31189,11 +31189,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -31204,11 +31204,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -31223,7 +31223,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -31238,7 +31238,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -31249,7 +31249,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -31264,11 +31264,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -31279,11 +31279,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -31294,11 +31294,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -31309,7 +31309,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -31324,7 +31324,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -31339,11 +31339,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -31354,11 +31354,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -31388,10 +31388,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -31504,7 +31504,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -31532,11 +31532,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -31547,11 +31547,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -31562,11 +31562,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -31577,11 +31577,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -31592,7 +31592,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -31611,7 +31611,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -31622,11 +31622,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -31641,7 +31641,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -31652,11 +31652,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -31667,11 +31667,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -31686,7 +31686,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -31701,7 +31701,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -31712,7 +31712,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -31727,11 +31727,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -31742,11 +31742,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -31757,11 +31757,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -31772,7 +31772,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -31787,7 +31787,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -31802,11 +31802,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -31817,11 +31817,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -31851,10 +31851,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -31951,7 +31951,7 @@ }, "XPosition": { "type": "float", - "value": 115.7093963623047 + "value": 115.70939636230469 }, "YOrientation": { "type": "float", @@ -31959,7 +31959,7 @@ }, "YPosition": { "type": "float", - "value": 56.12046051025391 + "value": 56.120460510253906 }, "ZOrientation": { "type": "float", @@ -31967,7 +31967,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -31995,11 +31995,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -32010,11 +32010,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -32025,11 +32025,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -32040,11 +32040,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -32055,7 +32055,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -32074,7 +32074,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -32085,11 +32085,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -32104,7 +32104,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -32115,11 +32115,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -32130,11 +32130,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -32149,7 +32149,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -32164,7 +32164,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -32175,7 +32175,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -32190,11 +32190,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -32205,11 +32205,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -32220,11 +32220,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -32235,7 +32235,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -32250,7 +32250,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -32265,11 +32265,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -32280,11 +32280,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -32314,10 +32314,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -32414,7 +32414,7 @@ }, "XPosition": { "type": "float", - "value": 105.553352355957 + "value": 105.55335235595703 }, "YOrientation": { "type": "float", @@ -32430,7 +32430,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -32458,11 +32458,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -32473,11 +32473,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -32488,11 +32488,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -32503,11 +32503,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -32518,7 +32518,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -32537,7 +32537,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -32548,11 +32548,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -32567,7 +32567,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -32578,11 +32578,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -32593,11 +32593,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -32612,7 +32612,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -32627,7 +32627,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -32638,7 +32638,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -32653,11 +32653,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -32668,11 +32668,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -32683,11 +32683,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -32698,7 +32698,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -32713,7 +32713,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -32728,11 +32728,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -32743,11 +32743,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -32777,10 +32777,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -32877,7 +32877,7 @@ }, "XPosition": { "type": "float", - "value": 55.61870956420898 + "value": 55.618709564208984 }, "YOrientation": { "type": "float", @@ -32893,7 +32893,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -32921,11 +32921,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -32936,11 +32936,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -32951,11 +32951,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -32966,11 +32966,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -32981,7 +32981,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -33000,7 +33000,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -33011,11 +33011,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -33030,7 +33030,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -33041,11 +33041,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -33056,11 +33056,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -33075,7 +33075,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -33090,7 +33090,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -33101,7 +33101,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -33116,11 +33116,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -33131,11 +33131,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -33146,11 +33146,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -33161,7 +33161,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -33176,7 +33176,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -33191,11 +33191,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -33206,11 +33206,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -33240,10 +33240,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -33340,7 +33340,7 @@ }, "XPosition": { "type": "float", - "value": 105.5792541503906 + "value": 105.57925415039062 }, "YOrientation": { "type": "float", @@ -33348,7 +33348,7 @@ }, "YPosition": { "type": "float", - "value": 116.0735321044922 + "value": 116.07353210449219 }, "ZOrientation": { "type": "float", @@ -33356,7 +33356,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -33384,11 +33384,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -33399,11 +33399,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -33414,11 +33414,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -33429,11 +33429,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -33444,7 +33444,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -33463,7 +33463,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -33474,11 +33474,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -33493,7 +33493,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -33504,11 +33504,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -33519,11 +33519,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -33538,7 +33538,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -33553,7 +33553,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -33564,7 +33564,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -33579,11 +33579,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -33594,11 +33594,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -33609,11 +33609,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -33624,7 +33624,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -33639,7 +33639,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -33654,11 +33654,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -33669,11 +33669,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -33703,10 +33703,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -33803,7 +33803,7 @@ }, "XPosition": { "type": "float", - "value": 115.6219635009766 + "value": 115.62196350097656 }, "YOrientation": { "type": "float", @@ -33811,7 +33811,7 @@ }, "YPosition": { "type": "float", - "value": 126.1162414550781 + "value": 126.11624145507812 }, "ZOrientation": { "type": "float", @@ -33819,7 +33819,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -33847,11 +33847,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -33862,11 +33862,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -33877,11 +33877,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -33892,11 +33892,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -33907,7 +33907,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -33926,7 +33926,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -33937,11 +33937,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -33956,7 +33956,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -33967,11 +33967,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -33982,11 +33982,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -34001,7 +34001,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -34016,7 +34016,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -34027,7 +34027,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -34042,11 +34042,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -34057,11 +34057,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -34072,11 +34072,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -34087,7 +34087,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -34102,7 +34102,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -34117,11 +34117,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -34132,11 +34132,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -34166,10 +34166,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -34266,7 +34266,7 @@ }, "XPosition": { "type": "float", - "value": 135.4682769775391 + "value": 135.46827697753906 }, "YOrientation": { "type": "float", @@ -34282,7 +34282,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -34310,11 +34310,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -34325,11 +34325,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -34340,11 +34340,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -34355,11 +34355,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -34370,7 +34370,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -34389,7 +34389,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -34400,11 +34400,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -34419,7 +34419,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -34430,11 +34430,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -34445,11 +34445,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -34464,7 +34464,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -34479,7 +34479,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -34490,7 +34490,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -34505,11 +34505,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -34520,11 +34520,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -34535,11 +34535,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -34550,7 +34550,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -34565,7 +34565,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -34580,11 +34580,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -34595,11 +34595,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -34629,10 +34629,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -34729,7 +34729,7 @@ }, "XPosition": { "type": "float", - "value": 145.3515777587891 + "value": 145.35157775878906 }, "YOrientation": { "type": "float", @@ -34737,7 +34737,7 @@ }, "YPosition": { "type": "float", - "value": 116.1532287597656 + "value": 116.15322875976562 }, "ZOrientation": { "type": "float", @@ -34745,7 +34745,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -34773,11 +34773,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -34788,11 +34788,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -34803,11 +34803,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -34818,11 +34818,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -34833,7 +34833,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -34852,7 +34852,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -34863,11 +34863,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -34882,7 +34882,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -34893,11 +34893,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -34908,11 +34908,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -34927,7 +34927,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -34942,7 +34942,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -34953,7 +34953,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -34968,11 +34968,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -34983,11 +34983,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -34998,11 +34998,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -35013,7 +35013,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -35028,7 +35028,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -35043,11 +35043,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -35058,11 +35058,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -35092,10 +35092,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -35192,7 +35192,7 @@ }, "XPosition": { "type": "float", - "value": 105.8183670043945 + "value": 105.81836700439453 }, "YOrientation": { "type": "float", @@ -35200,7 +35200,7 @@ }, "YPosition": { "type": "float", - "value": 155.6688079833984 + "value": 155.66880798339844 }, "ZOrientation": { "type": "float", @@ -35208,7 +35208,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -35236,11 +35236,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -35251,11 +35251,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -35266,11 +35266,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -35281,11 +35281,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -35296,7 +35296,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -35315,7 +35315,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -35326,11 +35326,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -35345,7 +35345,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -35356,11 +35356,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -35371,11 +35371,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -35390,7 +35390,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -35405,7 +35405,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -35416,7 +35416,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -35431,11 +35431,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -35446,11 +35446,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -35461,11 +35461,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -35476,7 +35476,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -35491,7 +35491,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -35506,11 +35506,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -35521,11 +35521,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -35555,10 +35555,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -35699,11 +35699,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -35714,11 +35714,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -35729,11 +35729,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -35744,11 +35744,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -35759,7 +35759,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -35778,7 +35778,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -35789,11 +35789,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -35808,7 +35808,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -35819,11 +35819,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -35834,11 +35834,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -35853,7 +35853,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -35868,7 +35868,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -35879,7 +35879,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -35894,11 +35894,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -35909,11 +35909,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -35924,11 +35924,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -35939,7 +35939,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -35954,7 +35954,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -35969,11 +35969,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -35984,11 +35984,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -36018,10 +36018,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -36134,7 +36134,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -36162,11 +36162,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -36177,11 +36177,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -36192,11 +36192,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -36207,11 +36207,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -36222,7 +36222,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -36241,7 +36241,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -36252,11 +36252,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -36271,7 +36271,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -36282,11 +36282,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -36297,11 +36297,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -36316,7 +36316,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -36331,7 +36331,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -36342,7 +36342,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -36357,11 +36357,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -36372,11 +36372,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -36387,11 +36387,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -36402,7 +36402,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -36417,7 +36417,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -36432,11 +36432,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -36447,11 +36447,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -36481,10 +36481,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -36581,7 +36581,7 @@ }, "XPosition": { "type": "float", - "value": 115.6367721557617 + "value": 115.63677215576172 }, "YOrientation": { "type": "float", @@ -36597,7 +36597,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -36625,11 +36625,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -36640,11 +36640,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -36655,11 +36655,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -36670,11 +36670,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -36685,7 +36685,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -36704,7 +36704,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -36715,11 +36715,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -36734,7 +36734,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -36745,11 +36745,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -36760,11 +36760,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -36779,7 +36779,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -36794,7 +36794,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -36805,7 +36805,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -36820,11 +36820,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -36835,11 +36835,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -36850,11 +36850,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -36865,7 +36865,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -36880,7 +36880,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -36895,11 +36895,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -36910,11 +36910,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -36944,10 +36944,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -37044,7 +37044,7 @@ }, "XPosition": { "type": "float", - "value": 135.3796081542969 + "value": 135.37960815429688 }, "YOrientation": { "type": "float", @@ -37052,7 +37052,7 @@ }, "YPosition": { "type": "float", - "value": 135.7371520996094 + "value": 135.73715209960938 }, "ZOrientation": { "type": "float", @@ -37060,7 +37060,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -37088,11 +37088,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -37103,11 +37103,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -37118,11 +37118,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -37133,11 +37133,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -37148,7 +37148,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -37167,7 +37167,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -37178,11 +37178,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -37197,7 +37197,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -37208,11 +37208,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -37223,11 +37223,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -37242,7 +37242,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -37257,7 +37257,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -37268,7 +37268,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -37283,11 +37283,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -37298,11 +37298,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -37313,11 +37313,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -37328,7 +37328,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -37343,7 +37343,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -37358,11 +37358,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -37373,11 +37373,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -37407,10 +37407,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -37515,7 +37515,7 @@ }, "YPosition": { "type": "float", - "value": 66.09665679931641 + "value": 66.0966567993164 }, "ZOrientation": { "type": "float", @@ -37523,7 +37523,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000038623809815 + "value": 0.20000386238098145 } }, { @@ -37551,11 +37551,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -37566,11 +37566,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -37581,11 +37581,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -37596,11 +37596,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -37611,7 +37611,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -37630,7 +37630,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -37641,11 +37641,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -37660,7 +37660,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -37671,11 +37671,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -37686,11 +37686,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -37705,7 +37705,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -37720,7 +37720,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -37731,7 +37731,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -37746,11 +37746,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -37761,11 +37761,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -37776,11 +37776,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -37791,7 +37791,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -37806,7 +37806,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -37821,11 +37821,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -37836,11 +37836,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -37870,10 +37870,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -37970,7 +37970,7 @@ }, "XPosition": { "type": "float", - "value": 35.32824325561523 + "value": 35.328243255615234 }, "YOrientation": { "type": "float", @@ -37986,7 +37986,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -38014,11 +38014,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -38029,11 +38029,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -38044,11 +38044,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -38059,11 +38059,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -38074,7 +38074,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -38093,7 +38093,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -38104,11 +38104,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -38123,7 +38123,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -38134,11 +38134,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -38149,11 +38149,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -38168,7 +38168,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -38183,7 +38183,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -38194,7 +38194,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -38209,11 +38209,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -38224,11 +38224,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -38239,11 +38239,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -38254,7 +38254,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -38269,7 +38269,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -38284,11 +38284,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -38299,11 +38299,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -38333,10 +38333,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -38433,7 +38433,7 @@ }, "XPosition": { "type": "float", - "value": 65.45547485351563 + "value": 65.45547485351562 }, "YOrientation": { "type": "float", @@ -38477,11 +38477,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -38492,11 +38492,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -38507,11 +38507,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -38522,11 +38522,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -38537,7 +38537,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -38556,7 +38556,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -38567,11 +38567,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -38586,7 +38586,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -38597,11 +38597,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -38612,11 +38612,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -38631,7 +38631,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -38646,7 +38646,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -38657,7 +38657,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -38672,11 +38672,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -38687,11 +38687,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -38702,11 +38702,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -38717,7 +38717,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -38732,7 +38732,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -38747,11 +38747,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -38762,11 +38762,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -38796,10 +38796,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West & East Junction" + "0": "North & South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -38912,7 +38912,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -38940,11 +38940,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -38955,11 +38955,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -38970,11 +38970,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -38985,11 +38985,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -39000,7 +39000,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -39019,7 +39019,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -39030,11 +39030,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -39049,7 +39049,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -39060,11 +39060,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -39075,11 +39075,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -39094,7 +39094,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -39109,7 +39109,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -39120,7 +39120,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -39135,11 +39135,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -39150,11 +39150,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -39165,11 +39165,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -39180,7 +39180,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -39195,7 +39195,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -39210,11 +39210,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -39225,11 +39225,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -39259,10 +39259,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -39375,7 +39375,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -39403,11 +39403,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -39418,11 +39418,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -39433,11 +39433,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -39448,11 +39448,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -39463,7 +39463,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -39482,7 +39482,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -39493,11 +39493,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -39512,7 +39512,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -39523,11 +39523,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -39538,11 +39538,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -39557,7 +39557,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -39572,7 +39572,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -39583,7 +39583,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -39598,11 +39598,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -39613,11 +39613,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -39628,11 +39628,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -39643,7 +39643,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -39658,7 +39658,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -39673,11 +39673,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -39688,11 +39688,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -39722,10 +39722,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -39822,7 +39822,7 @@ }, "XPosition": { "type": "float", - "value": 15.62148475646973 + "value": 15.621484756469727 }, "YOrientation": { "type": "float", @@ -39838,7 +39838,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -39866,11 +39866,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -39881,11 +39881,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -39896,11 +39896,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -39911,11 +39911,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -39926,7 +39926,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -39945,7 +39945,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -39956,11 +39956,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -39975,7 +39975,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -39986,11 +39986,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -40001,11 +40001,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -40020,7 +40020,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -40035,7 +40035,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -40046,7 +40046,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -40061,11 +40061,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -40076,11 +40076,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -40091,11 +40091,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -40106,7 +40106,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -40121,7 +40121,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -40136,11 +40136,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -40151,11 +40151,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -40185,10 +40185,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -40301,7 +40301,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -40329,11 +40329,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -40344,11 +40344,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -40359,11 +40359,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -40374,11 +40374,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -40389,7 +40389,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -40408,7 +40408,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -40419,11 +40419,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -40438,7 +40438,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -40449,11 +40449,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -40464,11 +40464,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -40483,7 +40483,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -40498,7 +40498,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -40509,7 +40509,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -40524,11 +40524,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -40539,11 +40539,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -40554,11 +40554,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -40569,7 +40569,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -40584,7 +40584,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -40599,11 +40599,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -40614,11 +40614,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -40648,10 +40648,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -40748,7 +40748,7 @@ }, "XPosition": { "type": "float", - "value": 15.62148475646973 + "value": 15.621484756469727 }, "YOrientation": { "type": "float", @@ -40764,7 +40764,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -40792,11 +40792,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -40807,11 +40807,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -40822,11 +40822,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -40837,11 +40837,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -40852,7 +40852,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -40871,7 +40871,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -40882,11 +40882,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -40901,7 +40901,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -40912,11 +40912,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -40927,11 +40927,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -40946,7 +40946,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -40961,7 +40961,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -40972,7 +40972,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -40987,11 +40987,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -41002,11 +41002,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -41017,11 +41017,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -41032,7 +41032,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -41047,7 +41047,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -41062,11 +41062,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -41077,11 +41077,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -41111,10 +41111,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -41219,7 +41219,7 @@ }, "YPosition": { "type": "float", - "value": 105.7316741943359 + "value": 105.73167419433594 }, "ZOrientation": { "type": "float", @@ -41227,7 +41227,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -41255,11 +41255,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -41270,11 +41270,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -41285,11 +41285,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -41300,11 +41300,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -41315,7 +41315,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -41334,7 +41334,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -41345,11 +41345,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -41364,7 +41364,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -41375,11 +41375,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -41390,11 +41390,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -41409,7 +41409,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -41424,7 +41424,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -41435,7 +41435,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -41450,11 +41450,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -41465,11 +41465,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -41480,11 +41480,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -41495,7 +41495,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -41510,7 +41510,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -41525,11 +41525,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -41540,11 +41540,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -41574,10 +41574,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -41690,7 +41690,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -41718,11 +41718,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -41733,11 +41733,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -41748,11 +41748,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -41763,11 +41763,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -41778,7 +41778,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -41797,7 +41797,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -41808,11 +41808,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -41827,7 +41827,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -41838,11 +41838,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -41853,11 +41853,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -41872,7 +41872,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -41887,7 +41887,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -41898,7 +41898,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -41913,11 +41913,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -41928,11 +41928,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -41943,11 +41943,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -41958,7 +41958,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -41973,7 +41973,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -41988,11 +41988,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -42003,11 +42003,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -42037,10 +42037,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -42145,7 +42145,7 @@ }, "YPosition": { "type": "float", - "value": 145.6945190429688 + "value": 145.69451904296875 }, "ZOrientation": { "type": "float", @@ -42153,7 +42153,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -42181,11 +42181,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -42196,11 +42196,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -42211,11 +42211,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -42226,11 +42226,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -42241,7 +42241,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -42260,7 +42260,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -42271,11 +42271,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -42290,7 +42290,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -42301,11 +42301,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -42316,11 +42316,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -42335,7 +42335,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -42350,7 +42350,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -42361,7 +42361,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -42376,11 +42376,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -42391,11 +42391,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -42406,11 +42406,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -42421,7 +42421,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -42436,7 +42436,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -42451,11 +42451,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -42466,11 +42466,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -42500,10 +42500,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -42600,7 +42600,7 @@ }, "XPosition": { "type": "float", - "value": 15.30326843261719 + "value": 15.303268432617188 }, "YOrientation": { "type": "float", @@ -42608,7 +42608,7 @@ }, "YPosition": { "type": "float", - "value": 155.7801361083984 + "value": 155.78013610839844 }, "ZOrientation": { "type": "float", @@ -42616,7 +42616,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -42644,11 +42644,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -42659,11 +42659,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -42674,11 +42674,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -42689,11 +42689,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -42704,7 +42704,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -42723,7 +42723,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -42734,11 +42734,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -42753,7 +42753,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -42764,11 +42764,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -42779,11 +42779,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -42798,7 +42798,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -42813,7 +42813,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -42824,7 +42824,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -42839,11 +42839,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -42854,11 +42854,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -42869,11 +42869,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -42884,7 +42884,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -42899,7 +42899,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -42914,11 +42914,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -42929,11 +42929,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -42963,10 +42963,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -43063,7 +43063,7 @@ }, "XPosition": { "type": "float", - "value": 25.65903282165527 + "value": 25.659032821655273 }, "YOrientation": { "type": "float", @@ -43071,7 +43071,7 @@ }, "YPosition": { "type": "float", - "value": 136.1492004394531 + "value": 136.14920043945312 }, "ZOrientation": { "type": "float", @@ -43079,7 +43079,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -43107,11 +43107,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -43122,11 +43122,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -43137,11 +43137,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -43152,11 +43152,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -43167,7 +43167,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -43186,7 +43186,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -43197,11 +43197,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -43216,7 +43216,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -43227,11 +43227,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -43242,11 +43242,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -43261,7 +43261,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -43276,7 +43276,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -43287,7 +43287,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -43302,11 +43302,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -43317,11 +43317,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -43332,11 +43332,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -43347,7 +43347,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -43362,7 +43362,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -43377,11 +43377,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -43392,11 +43392,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -43426,10 +43426,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -43526,7 +43526,7 @@ }, "XPosition": { "type": "float", - "value": 25.5689811706543 + "value": 25.568981170654297 }, "YOrientation": { "type": "float", @@ -43534,7 +43534,7 @@ }, "YPosition": { "type": "float", - "value": 106.0724792480469 + "value": 106.07247924804688 }, "ZOrientation": { "type": "float", @@ -43542,7 +43542,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -43570,11 +43570,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -43585,11 +43585,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -43600,11 +43600,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -43615,11 +43615,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -43630,7 +43630,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -43649,7 +43649,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -43660,11 +43660,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -43679,7 +43679,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -43690,11 +43690,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -43705,11 +43705,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -43724,7 +43724,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -43739,7 +43739,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -43750,7 +43750,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -43765,11 +43765,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -43780,11 +43780,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -43795,11 +43795,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -43810,7 +43810,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -43825,7 +43825,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -43840,11 +43840,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -43855,11 +43855,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -43889,10 +43889,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -43989,7 +43989,7 @@ }, "XPosition": { "type": "float", - "value": 15.66346836090088 + "value": 15.663468360900879 }, "YOrientation": { "type": "float", @@ -44005,7 +44005,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -44033,11 +44033,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -44048,11 +44048,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -44063,11 +44063,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -44078,11 +44078,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -44093,7 +44093,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -44112,7 +44112,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -44123,11 +44123,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -44142,7 +44142,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -44153,11 +44153,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -44168,11 +44168,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -44187,7 +44187,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -44202,7 +44202,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -44213,7 +44213,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -44228,11 +44228,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -44243,11 +44243,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -44258,11 +44258,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -44273,7 +44273,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -44288,7 +44288,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -44303,11 +44303,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -44318,11 +44318,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -44352,10 +44352,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -44452,7 +44452,7 @@ }, "XPosition": { "type": "float", - "value": 15.48336887359619 + "value": 15.483368873596191 }, "YOrientation": { "type": "float", @@ -44460,7 +44460,7 @@ }, "YPosition": { "type": "float", - "value": 125.7934494018555 + "value": 125.79344940185547 }, "ZOrientation": { "type": "float", @@ -44496,11 +44496,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -44511,11 +44511,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -44526,11 +44526,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -44541,11 +44541,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -44556,7 +44556,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -44575,7 +44575,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -44586,11 +44586,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -44605,7 +44605,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -44616,11 +44616,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -44631,11 +44631,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -44650,7 +44650,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -44665,7 +44665,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -44676,7 +44676,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -44691,11 +44691,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -44706,11 +44706,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -44721,11 +44721,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -44736,7 +44736,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -44751,7 +44751,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -44766,11 +44766,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -44781,11 +44781,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -44815,10 +44815,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -44923,7 +44923,7 @@ }, "YPosition": { "type": "float", - "value": 125.8834991455078 + "value": 125.88349914550781 }, "ZOrientation": { "type": "float", @@ -44931,7 +44931,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -44959,11 +44959,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -44974,11 +44974,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -44989,11 +44989,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -45004,11 +45004,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -45019,7 +45019,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -45038,7 +45038,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -45049,11 +45049,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -45068,7 +45068,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -45079,11 +45079,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -45094,11 +45094,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -45113,7 +45113,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -45128,7 +45128,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -45139,7 +45139,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -45154,11 +45154,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -45169,11 +45169,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -45184,11 +45184,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -45199,7 +45199,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -45214,7 +45214,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -45229,11 +45229,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -45244,11 +45244,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -45278,10 +45278,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -45386,7 +45386,7 @@ }, "YPosition": { "type": "float", - "value": 105.7380676269531 + "value": 105.73806762695312 }, "ZOrientation": { "type": "float", @@ -45394,7 +45394,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -45422,11 +45422,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -45437,11 +45437,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -45452,11 +45452,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -45467,11 +45467,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -45482,7 +45482,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -45501,7 +45501,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -45512,11 +45512,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -45531,7 +45531,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -45542,11 +45542,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -45557,11 +45557,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -45576,7 +45576,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -45591,7 +45591,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -45602,7 +45602,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -45617,11 +45617,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -45632,11 +45632,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -45647,11 +45647,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -45662,7 +45662,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -45677,7 +45677,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -45692,11 +45692,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -45707,11 +45707,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -45741,10 +45741,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -45841,7 +45841,7 @@ }, "XPosition": { "type": "float", - "value": 25.38888549804688 + "value": 25.388885498046875 }, "YOrientation": { "type": "float", @@ -45857,7 +45857,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -45885,11 +45885,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -45900,11 +45900,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -45915,11 +45915,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -45930,11 +45930,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -45945,7 +45945,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -45964,7 +45964,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -45975,11 +45975,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -45994,7 +45994,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -46005,11 +46005,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -46020,11 +46020,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -46039,7 +46039,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -46054,7 +46054,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -46065,7 +46065,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -46080,11 +46080,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -46095,11 +46095,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -46110,11 +46110,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -46125,7 +46125,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -46140,7 +46140,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -46155,11 +46155,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -46170,11 +46170,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -46204,10 +46204,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -46304,7 +46304,7 @@ }, "XPosition": { "type": "float", - "value": 15.48336791992188 + "value": 15.483367919921875 }, "YOrientation": { "type": "float", @@ -46312,7 +46312,7 @@ }, "YPosition": { "type": "float", - "value": 105.9890594482422 + "value": 105.98905944824219 }, "ZOrientation": { "type": "float", @@ -46320,7 +46320,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -46348,11 +46348,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -46363,11 +46363,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -46378,11 +46378,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -46393,11 +46393,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -46408,7 +46408,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -46427,7 +46427,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -46438,11 +46438,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -46457,7 +46457,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -46468,11 +46468,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -46483,11 +46483,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -46502,7 +46502,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -46517,7 +46517,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -46528,7 +46528,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -46543,11 +46543,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -46558,11 +46558,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -46573,11 +46573,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -46588,7 +46588,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -46603,7 +46603,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -46618,11 +46618,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -46633,11 +46633,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -46667,10 +46667,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -46767,7 +46767,7 @@ }, "XPosition": { "type": "float", - "value": 25.74908065795898 + "value": 25.749080657958984 }, "YOrientation": { "type": "float", @@ -46783,7 +46783,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -46811,11 +46811,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -46826,11 +46826,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -46841,11 +46841,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -46856,11 +46856,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -46871,7 +46871,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -46890,7 +46890,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -46901,11 +46901,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -46920,7 +46920,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -46931,11 +46931,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -46946,11 +46946,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -46965,7 +46965,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -46980,7 +46980,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -46991,7 +46991,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -47006,11 +47006,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -47021,11 +47021,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -47036,11 +47036,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -47051,7 +47051,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -47066,7 +47066,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -47081,11 +47081,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -47096,11 +47096,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -47130,10 +47130,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -47246,7 +47246,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -47274,11 +47274,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -47289,11 +47289,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -47304,11 +47304,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -47319,11 +47319,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -47334,7 +47334,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -47353,7 +47353,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -47364,11 +47364,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -47383,7 +47383,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -47394,11 +47394,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -47409,11 +47409,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -47428,7 +47428,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -47443,7 +47443,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -47454,7 +47454,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -47469,11 +47469,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -47484,11 +47484,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -47499,11 +47499,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -47514,7 +47514,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -47529,7 +47529,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -47544,11 +47544,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -47559,11 +47559,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -47593,10 +47593,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -47693,7 +47693,7 @@ }, "XPosition": { "type": "float", - "value": 115.4202728271484 + "value": 115.42027282714844 }, "YOrientation": { "type": "float", @@ -47709,7 +47709,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -47737,11 +47737,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -47752,11 +47752,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -47767,11 +47767,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -47782,11 +47782,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -47797,7 +47797,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -47816,7 +47816,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -47827,11 +47827,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -47846,7 +47846,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -47857,11 +47857,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -47872,11 +47872,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -47891,7 +47891,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -47906,7 +47906,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -47917,7 +47917,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -47932,11 +47932,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -47947,11 +47947,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -47962,11 +47962,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -47977,7 +47977,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -47992,7 +47992,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -48007,11 +48007,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -48022,11 +48022,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -48056,10 +48056,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -48172,7 +48172,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -48200,11 +48200,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -48215,11 +48215,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -48230,11 +48230,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -48245,11 +48245,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -48260,7 +48260,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -48279,7 +48279,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -48290,11 +48290,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -48309,7 +48309,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -48320,11 +48320,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -48335,11 +48335,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -48354,7 +48354,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -48369,7 +48369,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -48380,7 +48380,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -48395,11 +48395,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -48410,11 +48410,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -48425,11 +48425,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -48440,7 +48440,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -48455,7 +48455,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -48470,11 +48470,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -48485,11 +48485,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -48519,10 +48519,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -48619,7 +48619,7 @@ }, "XPosition": { "type": "float", - "value": 155.5028686523438 + "value": 155.50286865234375 }, "YOrientation": { "type": "float", @@ -48627,7 +48627,7 @@ }, "YPosition": { "type": "float", - "value": 106.1397247314453 + "value": 106.13972473144531 }, "ZOrientation": { "type": "float", @@ -48635,7 +48635,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -48663,11 +48663,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -48678,11 +48678,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -48693,11 +48693,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -48708,11 +48708,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -48723,7 +48723,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -48742,7 +48742,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -48753,11 +48753,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -48772,7 +48772,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -48783,11 +48783,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -48798,11 +48798,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -48817,7 +48817,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -48832,7 +48832,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -48843,7 +48843,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -48858,11 +48858,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -48873,11 +48873,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -48888,11 +48888,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -48903,7 +48903,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -48918,7 +48918,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -48933,11 +48933,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -48948,11 +48948,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -48982,10 +48982,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -49082,7 +49082,7 @@ }, "XPosition": { "type": "float", - "value": 155.4319000244141 + "value": 155.43190002441406 }, "YOrientation": { "type": "float", @@ -49098,7 +49098,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -49126,11 +49126,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -49141,11 +49141,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -49156,11 +49156,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -49171,11 +49171,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -49186,7 +49186,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -49205,7 +49205,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -49216,11 +49216,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -49235,7 +49235,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -49246,11 +49246,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -49261,11 +49261,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -49280,7 +49280,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -49295,7 +49295,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -49306,7 +49306,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -49321,11 +49321,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -49336,11 +49336,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -49351,11 +49351,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -49366,7 +49366,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -49381,7 +49381,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -49396,11 +49396,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -49411,11 +49411,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -49445,10 +49445,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -49545,7 +49545,7 @@ }, "XPosition": { "type": "float", - "value": 145.4556732177734 + "value": 145.45567321777344 }, "YOrientation": { "type": "float", @@ -49589,11 +49589,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -49604,11 +49604,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -49619,11 +49619,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -49634,11 +49634,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -49649,7 +49649,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -49668,7 +49668,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -49679,11 +49679,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -49698,7 +49698,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -49709,11 +49709,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -49724,11 +49724,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -49743,7 +49743,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -49758,7 +49758,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -49769,7 +49769,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -49784,11 +49784,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -49799,11 +49799,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -49814,11 +49814,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -49829,7 +49829,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -49844,7 +49844,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -49859,11 +49859,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -49874,11 +49874,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -49908,10 +49908,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -50024,7 +50024,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -50052,11 +50052,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -50067,11 +50067,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -50082,11 +50082,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -50097,11 +50097,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -50112,7 +50112,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -50131,7 +50131,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -50142,11 +50142,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -50161,7 +50161,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -50172,11 +50172,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -50187,11 +50187,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -50206,7 +50206,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -50221,7 +50221,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -50232,7 +50232,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -50247,11 +50247,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -50262,11 +50262,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -50277,11 +50277,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -50292,7 +50292,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -50307,7 +50307,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -50322,11 +50322,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -50337,11 +50337,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -50371,10 +50371,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -50471,7 +50471,7 @@ }, "XPosition": { "type": "float", - "value": 125.4735717773438 + "value": 125.47357177734375 }, "YOrientation": { "type": "float", @@ -50487,7 +50487,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -50515,11 +50515,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -50530,11 +50530,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -50545,11 +50545,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -50560,11 +50560,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -50575,7 +50575,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -50594,7 +50594,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -50605,11 +50605,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -50624,7 +50624,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -50635,11 +50635,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -50650,11 +50650,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -50669,7 +50669,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -50684,7 +50684,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -50695,7 +50695,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -50710,11 +50710,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -50725,11 +50725,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -50740,11 +50740,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -50755,7 +50755,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -50770,7 +50770,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -50785,11 +50785,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -50800,11 +50800,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -50834,10 +50834,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -50934,7 +50934,7 @@ }, "XPosition": { "type": "float", - "value": 135.7204742431641 + "value": 135.72047424316406 }, "YOrientation": { "type": "float", @@ -50950,7 +50950,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -50978,11 +50978,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -50993,11 +50993,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -51008,11 +51008,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -51023,11 +51023,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -51038,7 +51038,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -51057,7 +51057,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -51068,11 +51068,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -51087,7 +51087,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -51098,11 +51098,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -51113,11 +51113,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -51132,7 +51132,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -51147,7 +51147,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -51158,7 +51158,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -51173,11 +51173,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -51188,11 +51188,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -51203,11 +51203,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -51218,7 +51218,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -51233,7 +51233,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -51248,11 +51248,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -51263,11 +51263,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -51297,10 +51297,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -51413,7 +51413,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -51441,11 +51441,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -51456,11 +51456,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -51471,11 +51471,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -51486,11 +51486,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -51501,7 +51501,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -51520,7 +51520,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -51531,11 +51531,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -51550,7 +51550,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -51561,11 +51561,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -51576,11 +51576,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -51595,7 +51595,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -51610,7 +51610,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -51621,7 +51621,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -51636,11 +51636,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -51651,11 +51651,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -51666,11 +51666,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -51681,7 +51681,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -51696,7 +51696,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -51711,11 +51711,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -51726,11 +51726,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -51760,10 +51760,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -51876,7 +51876,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -51904,11 +51904,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -51919,11 +51919,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -51934,11 +51934,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -51949,11 +51949,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -51964,7 +51964,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -51983,7 +51983,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -51994,11 +51994,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -52013,7 +52013,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -52024,11 +52024,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -52039,11 +52039,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -52058,7 +52058,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -52073,7 +52073,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -52084,7 +52084,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -52099,11 +52099,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -52114,11 +52114,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -52129,11 +52129,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -52144,7 +52144,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -52159,7 +52159,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -52174,11 +52174,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -52189,11 +52189,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -52223,10 +52223,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -52323,7 +52323,7 @@ }, "XPosition": { "type": "float", - "value": 95.31057739257813 + "value": 95.31057739257812 }, "YOrientation": { "type": "float", @@ -52339,7 +52339,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -52367,11 +52367,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -52382,11 +52382,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -52397,11 +52397,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -52412,11 +52412,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -52427,7 +52427,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -52446,7 +52446,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -52457,11 +52457,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -52476,7 +52476,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -52487,11 +52487,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -52502,11 +52502,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -52521,7 +52521,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -52536,7 +52536,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -52547,7 +52547,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -52562,11 +52562,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -52577,11 +52577,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -52592,11 +52592,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -52607,7 +52607,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -52622,7 +52622,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -52637,11 +52637,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -52652,11 +52652,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -52686,10 +52686,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -52802,7 +52802,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -52830,11 +52830,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -52845,11 +52845,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -52860,11 +52860,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -52875,11 +52875,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -52890,7 +52890,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -52909,7 +52909,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -52920,11 +52920,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -52939,7 +52939,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -52950,11 +52950,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -52965,11 +52965,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -52984,7 +52984,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -52999,7 +52999,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -53010,7 +53010,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -53025,11 +53025,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -53040,11 +53040,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -53055,11 +53055,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -53070,7 +53070,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -53085,7 +53085,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -53100,11 +53100,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -53115,11 +53115,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -53149,10 +53149,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -53265,7 +53265,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -53293,11 +53293,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -53308,11 +53308,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -53323,11 +53323,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -53338,11 +53338,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -53353,7 +53353,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -53372,7 +53372,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -53383,11 +53383,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -53402,7 +53402,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -53413,11 +53413,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -53428,11 +53428,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -53447,7 +53447,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -53462,7 +53462,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -53473,7 +53473,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -53488,11 +53488,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -53503,11 +53503,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -53518,11 +53518,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -53533,7 +53533,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -53548,7 +53548,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -53563,11 +53563,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -53578,11 +53578,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -53612,10 +53612,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -53728,7 +53728,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -53756,11 +53756,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -53771,11 +53771,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -53786,11 +53786,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -53801,11 +53801,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -53816,7 +53816,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -53835,7 +53835,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -53846,11 +53846,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -53865,7 +53865,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -53876,11 +53876,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -53891,11 +53891,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -53910,7 +53910,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -53925,7 +53925,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -53936,7 +53936,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -53951,11 +53951,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -53966,11 +53966,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -53981,11 +53981,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -53996,7 +53996,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -54011,7 +54011,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -54026,11 +54026,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -54041,11 +54041,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -54075,10 +54075,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -54175,7 +54175,7 @@ }, "XPosition": { "type": "float", - "value": 55.41921234130859 + "value": 55.419212341308594 }, "YOrientation": { "type": "float", @@ -54191,7 +54191,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999995708465576 + "value": 0.19999957084655762 } }, { @@ -54219,11 +54219,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -54234,11 +54234,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -54249,11 +54249,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -54264,11 +54264,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -54279,7 +54279,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -54298,7 +54298,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -54309,11 +54309,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -54328,7 +54328,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -54339,11 +54339,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -54354,11 +54354,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -54373,7 +54373,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -54388,7 +54388,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -54399,7 +54399,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -54414,11 +54414,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -54429,11 +54429,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -54444,11 +54444,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -54459,7 +54459,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -54474,7 +54474,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -54489,11 +54489,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -54504,11 +54504,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -54538,10 +54538,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -54654,7 +54654,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200002908706665 + "value": 0.20000290870666504 } }, { @@ -54682,11 +54682,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -54697,11 +54697,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -54712,11 +54712,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -54727,11 +54727,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -54742,7 +54742,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -54761,7 +54761,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -54772,11 +54772,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -54791,7 +54791,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -54802,11 +54802,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -54817,11 +54817,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -54836,7 +54836,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -54851,7 +54851,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -54862,7 +54862,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -54877,11 +54877,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -54892,11 +54892,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -54907,11 +54907,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -54922,7 +54922,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -54937,7 +54937,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -54952,11 +54952,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -54967,11 +54967,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -55001,10 +55001,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -55145,11 +55145,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -55160,11 +55160,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -55175,11 +55175,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -55190,11 +55190,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -55205,7 +55205,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -55224,7 +55224,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -55235,11 +55235,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -55254,7 +55254,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -55265,11 +55265,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -55280,11 +55280,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -55299,7 +55299,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -55314,7 +55314,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -55325,7 +55325,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -55340,11 +55340,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -55355,11 +55355,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -55370,11 +55370,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -55385,7 +55385,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -55400,7 +55400,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -55415,11 +55415,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -55430,11 +55430,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -55464,10 +55464,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -55564,7 +55564,7 @@ }, "XPosition": { "type": "float", - "value": 115.8500442504883 + "value": 115.85004425048828 }, "YOrientation": { "type": "float", @@ -55608,11 +55608,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -55623,11 +55623,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -55638,11 +55638,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -55653,11 +55653,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -55668,7 +55668,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -55687,7 +55687,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -55698,11 +55698,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -55717,7 +55717,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -55728,11 +55728,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -55743,11 +55743,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -55762,7 +55762,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -55777,7 +55777,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -55788,7 +55788,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -55803,11 +55803,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -55818,11 +55818,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -55833,11 +55833,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -55848,7 +55848,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -55863,7 +55863,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -55878,11 +55878,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -55893,11 +55893,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -55927,10 +55927,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -56027,7 +56027,7 @@ }, "XPosition": { "type": "float", - "value": 45.49661254882813 + "value": 45.496612548828125 }, "YOrientation": { "type": "float", @@ -56035,7 +56035,7 @@ }, "YPosition": { "type": "float", - "value": 105.8790969848633 + "value": 105.87909698486328 }, "ZOrientation": { "type": "float", @@ -56043,7 +56043,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -56071,11 +56071,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -56086,11 +56086,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -56101,11 +56101,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -56116,11 +56116,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -56131,7 +56131,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -56150,7 +56150,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -56161,11 +56161,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -56180,7 +56180,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -56191,11 +56191,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -56206,11 +56206,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -56225,7 +56225,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -56240,7 +56240,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -56251,7 +56251,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -56266,11 +56266,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -56281,11 +56281,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -56296,11 +56296,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -56311,7 +56311,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -56326,7 +56326,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -56341,11 +56341,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -56356,11 +56356,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -56390,10 +56390,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -56506,7 +56506,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -56534,11 +56534,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -56549,11 +56549,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -56564,11 +56564,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -56579,11 +56579,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -56594,7 +56594,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -56613,7 +56613,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -56624,11 +56624,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -56643,7 +56643,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -56654,11 +56654,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -56669,11 +56669,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -56688,7 +56688,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -56703,7 +56703,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -56714,7 +56714,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -56729,11 +56729,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -56744,11 +56744,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -56759,11 +56759,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -56774,7 +56774,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -56789,7 +56789,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -56804,11 +56804,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -56819,11 +56819,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -56853,10 +56853,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -56997,11 +56997,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -57012,11 +57012,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -57027,11 +57027,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -57042,11 +57042,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -57057,7 +57057,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -57076,7 +57076,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -57087,11 +57087,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -57106,7 +57106,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -57117,11 +57117,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -57132,11 +57132,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -57151,7 +57151,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -57166,7 +57166,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -57177,7 +57177,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -57192,11 +57192,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -57207,11 +57207,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -57222,11 +57222,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -57237,7 +57237,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -57252,7 +57252,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -57267,11 +57267,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -57282,11 +57282,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -57316,10 +57316,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -57424,7 +57424,7 @@ }, "YPosition": { "type": "float", - "value": 105.7379302978516 + "value": 105.73793029785156 }, "ZOrientation": { "type": "float", @@ -57460,11 +57460,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -57475,11 +57475,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -57490,11 +57490,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -57505,11 +57505,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -57520,7 +57520,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -57539,7 +57539,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -57550,11 +57550,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -57569,7 +57569,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -57580,11 +57580,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -57595,11 +57595,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -57614,7 +57614,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -57629,7 +57629,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -57640,7 +57640,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -57655,11 +57655,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -57670,11 +57670,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -57685,11 +57685,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -57700,7 +57700,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -57715,7 +57715,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -57730,11 +57730,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -57745,11 +57745,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -57779,10 +57779,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -57879,7 +57879,7 @@ }, "XPosition": { "type": "float", - "value": 75.32766723632813 + "value": 75.32766723632812 }, "YOrientation": { "type": "float", @@ -57887,7 +57887,7 @@ }, "YPosition": { "type": "float", - "value": 115.6619567871094 + "value": 115.66195678710938 }, "ZOrientation": { "type": "float", @@ -57895,7 +57895,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -57923,11 +57923,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -57938,11 +57938,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -57953,11 +57953,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -57968,11 +57968,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -57983,7 +57983,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -58002,7 +58002,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -58013,11 +58013,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -58032,7 +58032,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -58043,11 +58043,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -58058,11 +58058,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -58077,7 +58077,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -58092,7 +58092,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -58103,7 +58103,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -58118,11 +58118,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -58133,11 +58133,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -58148,11 +58148,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -58163,7 +58163,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -58178,7 +58178,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -58193,11 +58193,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -58208,11 +58208,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -58242,10 +58242,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -58358,7 +58358,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -58386,11 +58386,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -58401,11 +58401,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -58416,11 +58416,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -58431,11 +58431,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -58446,7 +58446,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -58465,7 +58465,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -58476,11 +58476,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -58495,7 +58495,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -58506,11 +58506,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -58521,11 +58521,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -58540,7 +58540,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -58555,7 +58555,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -58566,7 +58566,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -58581,11 +58581,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -58596,11 +58596,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -58611,11 +58611,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -58626,7 +58626,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -58641,7 +58641,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -58656,11 +58656,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -58671,11 +58671,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -58705,10 +58705,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & East Junction" + "0": "North & East Junction", + "id": 14759 } }, "OnClick": { @@ -58821,7 +58821,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -58849,11 +58849,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -58864,11 +58864,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -58879,11 +58879,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -58894,11 +58894,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -58909,7 +58909,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -58928,7 +58928,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -58939,11 +58939,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -58958,7 +58958,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -58969,11 +58969,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -58984,11 +58984,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -59003,7 +59003,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -59018,7 +59018,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -59029,7 +59029,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -59044,11 +59044,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -59059,11 +59059,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -59074,11 +59074,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -59089,7 +59089,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -59104,7 +59104,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -59119,11 +59119,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -59134,11 +59134,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -59168,10 +59168,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -59276,7 +59276,7 @@ }, "YPosition": { "type": "float", - "value": 115.885368347168 + "value": 115.88536834716797 }, "ZOrientation": { "type": "float", @@ -59312,11 +59312,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -59327,11 +59327,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -59342,11 +59342,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -59357,11 +59357,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -59372,7 +59372,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -59391,7 +59391,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -59402,11 +59402,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -59421,7 +59421,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -59432,11 +59432,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -59447,11 +59447,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -59466,7 +59466,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -59481,7 +59481,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -59492,7 +59492,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -59507,11 +59507,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -59522,11 +59522,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -59537,11 +59537,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -59552,7 +59552,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -59567,7 +59567,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -59582,11 +59582,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -59597,11 +59597,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -59631,10 +59631,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -59731,7 +59731,7 @@ }, "XPosition": { "type": "float", - "value": 25.69202041625977 + "value": 25.692020416259766 }, "YOrientation": { "type": "float", @@ -59747,7 +59747,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -59775,11 +59775,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -59790,11 +59790,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -59805,11 +59805,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -59820,11 +59820,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -59835,7 +59835,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -59854,7 +59854,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -59865,11 +59865,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -59884,7 +59884,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -59895,11 +59895,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -59910,11 +59910,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -59929,7 +59929,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -59944,7 +59944,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -59955,7 +59955,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -59970,11 +59970,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -59985,11 +59985,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -60000,11 +60000,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -60015,7 +60015,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -60030,7 +60030,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -60045,11 +60045,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -60060,11 +60060,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -60094,10 +60094,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -60194,7 +60194,7 @@ }, "XPosition": { "type": "float", - "value": 35.42366790771484 + "value": 35.423667907714844 }, "YOrientation": { "type": "float", @@ -60202,7 +60202,7 @@ }, "YPosition": { "type": "float", - "value": 116.1967849731445 + "value": 116.19678497314453 }, "ZOrientation": { "type": "float", @@ -60210,7 +60210,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -60238,11 +60238,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -60253,11 +60253,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -60268,11 +60268,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -60283,11 +60283,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -60298,7 +60298,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -60317,7 +60317,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -60328,11 +60328,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -60347,7 +60347,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -60358,11 +60358,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -60373,11 +60373,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -60392,7 +60392,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -60407,7 +60407,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -60418,7 +60418,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -60433,11 +60433,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -60448,11 +60448,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -60463,11 +60463,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -60478,7 +60478,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -60493,7 +60493,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -60508,11 +60508,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -60523,11 +60523,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -60557,10 +60557,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -60673,7 +60673,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -60701,11 +60701,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -60716,11 +60716,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -60731,11 +60731,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -60746,11 +60746,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -60761,7 +60761,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -60780,7 +60780,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -60791,11 +60791,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -60810,7 +60810,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -60821,11 +60821,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -60836,11 +60836,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -60855,7 +60855,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -60870,7 +60870,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -60881,7 +60881,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -60896,11 +60896,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -60911,11 +60911,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -60926,11 +60926,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -60941,7 +60941,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -60956,7 +60956,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -60971,11 +60971,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -60986,11 +60986,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -61020,10 +61020,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -61120,7 +61120,7 @@ }, "XPosition": { "type": "float", - "value": 125.3302383422852 + "value": 125.33023834228516 }, "YOrientation": { "type": "float", @@ -61136,7 +61136,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000038623809815 + "value": 0.20000386238098145 } }, { @@ -61164,11 +61164,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -61179,11 +61179,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -61194,11 +61194,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -61209,11 +61209,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -61224,7 +61224,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -61243,7 +61243,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -61254,11 +61254,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -61273,7 +61273,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -61284,11 +61284,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -61299,11 +61299,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -61318,7 +61318,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -61333,7 +61333,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -61344,7 +61344,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -61359,11 +61359,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -61374,11 +61374,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -61389,11 +61389,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -61404,7 +61404,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -61419,7 +61419,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -61434,11 +61434,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -61449,11 +61449,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -61483,10 +61483,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -61583,7 +61583,7 @@ }, "XPosition": { "type": "float", - "value": 145.4843902587891 + "value": 145.48439025878906 }, "YOrientation": { "type": "float", @@ -61591,7 +61591,7 @@ }, "YPosition": { "type": "float", - "value": 105.801155090332 + "value": 105.80115509033203 }, "ZOrientation": { "type": "float", @@ -61599,7 +61599,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000038623809815 + "value": 0.20000386238098145 } }, { @@ -61627,11 +61627,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -61642,11 +61642,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -61657,11 +61657,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -61672,11 +61672,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -61687,7 +61687,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -61706,7 +61706,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -61717,11 +61717,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -61736,7 +61736,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -61747,11 +61747,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -61762,11 +61762,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -61781,7 +61781,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -61796,7 +61796,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -61807,7 +61807,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -61822,11 +61822,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -61837,11 +61837,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -61852,11 +61852,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -61867,7 +61867,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -61882,7 +61882,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -61897,11 +61897,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -61912,11 +61912,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -61946,10 +61946,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -62054,7 +62054,7 @@ }, "YPosition": { "type": "float", - "value": 105.801155090332 + "value": 105.80115509033203 }, "ZOrientation": { "type": "float", @@ -62062,7 +62062,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -62090,11 +62090,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -62105,11 +62105,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -62120,11 +62120,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -62135,11 +62135,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -62150,7 +62150,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -62169,7 +62169,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -62180,11 +62180,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -62199,7 +62199,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -62210,11 +62210,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -62225,11 +62225,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -62244,7 +62244,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -62259,7 +62259,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -62270,7 +62270,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -62285,11 +62285,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -62300,11 +62300,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -62315,11 +62315,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -62330,7 +62330,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -62345,7 +62345,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -62360,11 +62360,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -62375,11 +62375,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -62409,10 +62409,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -62517,7 +62517,7 @@ }, "YPosition": { "type": "float", - "value": 105.9706726074219 + "value": 105.97067260742188 }, "ZOrientation": { "type": "float", @@ -62525,7 +62525,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -62553,11 +62553,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -62568,11 +62568,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -62583,11 +62583,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -62598,11 +62598,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -62613,7 +62613,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -62632,7 +62632,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -62643,11 +62643,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -62662,7 +62662,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -62673,11 +62673,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -62688,11 +62688,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -62707,7 +62707,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -62722,7 +62722,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -62733,7 +62733,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -62748,11 +62748,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -62763,11 +62763,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -62778,11 +62778,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -62793,7 +62793,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -62808,7 +62808,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -62823,11 +62823,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -62838,11 +62838,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -62872,10 +62872,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -62972,7 +62972,7 @@ }, "XPosition": { "type": "float", - "value": 45.49099731445313 + "value": 45.490997314453125 }, "YOrientation": { "type": "float", @@ -62988,7 +62988,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -63016,11 +63016,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -63031,11 +63031,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -63046,11 +63046,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -63061,11 +63061,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -63076,7 +63076,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -63095,7 +63095,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -63106,11 +63106,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -63125,7 +63125,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -63136,11 +63136,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -63151,11 +63151,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -63170,7 +63170,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -63185,7 +63185,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -63196,7 +63196,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -63211,11 +63211,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -63226,11 +63226,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -63241,11 +63241,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -63256,7 +63256,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -63271,7 +63271,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -63286,11 +63286,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -63301,11 +63301,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -63335,10 +63335,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -63443,7 +63443,7 @@ }, "YPosition": { "type": "float", - "value": 126.0774993896484 + "value": 126.07749938964844 }, "ZOrientation": { "type": "float", @@ -63479,11 +63479,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -63494,11 +63494,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -63509,11 +63509,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -63524,11 +63524,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -63539,7 +63539,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -63558,7 +63558,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -63569,11 +63569,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -63588,7 +63588,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -63599,11 +63599,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -63614,11 +63614,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -63633,7 +63633,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -63648,7 +63648,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -63659,7 +63659,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -63674,11 +63674,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -63689,11 +63689,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -63704,11 +63704,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -63719,7 +63719,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -63734,7 +63734,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -63749,11 +63749,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -63764,11 +63764,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -63798,10 +63798,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & East Junction" + "0": "North & South & East Junction", + "id": 14759 } }, "OnClick": { @@ -63914,7 +63914,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -63942,11 +63942,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -63957,11 +63957,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -63972,11 +63972,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -63987,11 +63987,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -64002,7 +64002,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -64021,7 +64021,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -64032,11 +64032,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -64051,7 +64051,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -64062,11 +64062,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -64077,11 +64077,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -64096,7 +64096,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -64111,7 +64111,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -64122,7 +64122,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -64137,11 +64137,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -64152,11 +64152,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -64167,11 +64167,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -64182,7 +64182,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -64197,7 +64197,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -64212,11 +64212,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -64227,11 +64227,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -64261,10 +64261,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -64369,7 +64369,7 @@ }, "YPosition": { "type": "float", - "value": 135.7021789550781 + "value": 135.70217895507812 }, "ZOrientation": { "type": "float", @@ -64377,7 +64377,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -64405,11 +64405,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -64420,11 +64420,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -64435,11 +64435,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -64450,11 +64450,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -64465,7 +64465,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -64484,7 +64484,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -64495,11 +64495,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -64514,7 +64514,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -64525,11 +64525,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -64540,11 +64540,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -64559,7 +64559,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -64574,7 +64574,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -64585,7 +64585,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -64600,11 +64600,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -64615,11 +64615,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -64630,11 +64630,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -64645,7 +64645,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -64660,7 +64660,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -64675,11 +64675,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -64690,11 +64690,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -64724,10 +64724,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -64840,7 +64840,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -64868,11 +64868,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -64883,11 +64883,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -64898,11 +64898,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -64913,11 +64913,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -64928,7 +64928,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -64947,7 +64947,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -64958,11 +64958,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -64977,7 +64977,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -64988,11 +64988,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -65003,11 +65003,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -65022,7 +65022,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -65037,7 +65037,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -65048,7 +65048,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -65063,11 +65063,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -65078,11 +65078,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -65093,11 +65093,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -65108,7 +65108,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -65123,7 +65123,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -65138,11 +65138,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -65153,11 +65153,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -65187,10 +65187,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -65303,7 +65303,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -65331,11 +65331,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -65346,11 +65346,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -65361,11 +65361,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -65376,11 +65376,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -65391,7 +65391,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -65410,7 +65410,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -65421,11 +65421,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -65440,7 +65440,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -65451,11 +65451,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -65466,11 +65466,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -65485,7 +65485,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -65500,7 +65500,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -65511,7 +65511,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -65526,11 +65526,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -65541,11 +65541,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -65556,11 +65556,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -65571,7 +65571,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -65586,7 +65586,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -65601,11 +65601,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -65616,11 +65616,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -65650,10 +65650,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -65794,11 +65794,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -65809,11 +65809,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -65824,11 +65824,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -65839,11 +65839,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -65854,7 +65854,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -65873,7 +65873,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -65884,11 +65884,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -65903,7 +65903,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -65914,11 +65914,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -65929,11 +65929,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -65948,7 +65948,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -65963,7 +65963,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -65974,7 +65974,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -65989,11 +65989,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -66004,11 +66004,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -66019,11 +66019,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -66034,7 +66034,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -66049,7 +66049,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -66064,11 +66064,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -66079,11 +66079,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -66113,10 +66113,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -66221,7 +66221,7 @@ }, "YPosition": { "type": "float", - "value": 145.8047485351563 + "value": 145.80474853515625 }, "ZOrientation": { "type": "float", @@ -66229,7 +66229,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -66257,11 +66257,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -66272,11 +66272,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -66287,11 +66287,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -66302,11 +66302,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -66317,7 +66317,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -66336,7 +66336,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -66347,11 +66347,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -66366,7 +66366,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -66377,11 +66377,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -66392,11 +66392,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -66411,7 +66411,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -66426,7 +66426,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -66437,7 +66437,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -66452,11 +66452,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -66467,11 +66467,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -66482,11 +66482,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -66497,7 +66497,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -66512,7 +66512,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -66527,11 +66527,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -66542,11 +66542,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -66576,10 +66576,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -66684,7 +66684,7 @@ }, "YPosition": { "type": "float", - "value": 155.8001403808594 + "value": 155.80014038085938 }, "ZOrientation": { "type": "float", @@ -66692,7 +66692,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -66720,11 +66720,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -66735,11 +66735,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -66750,11 +66750,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -66765,11 +66765,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -66780,7 +66780,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -66799,7 +66799,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -66810,11 +66810,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -66829,7 +66829,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -66840,11 +66840,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -66855,11 +66855,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -66874,7 +66874,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -66889,7 +66889,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -66900,7 +66900,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -66915,11 +66915,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -66930,11 +66930,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -66945,11 +66945,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -66960,7 +66960,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -66975,7 +66975,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -66990,11 +66990,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -67005,11 +67005,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -67039,10 +67039,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & East Junction" + "0": "South & East Junction", + "id": 14759 } }, "OnClick": { @@ -67139,7 +67139,7 @@ }, "XPosition": { "type": "float", - "value": 25.75152397155762 + "value": 25.751523971557617 }, "YOrientation": { "type": "float", @@ -67147,7 +67147,7 @@ }, "YPosition": { "type": "float", - "value": 155.7629089355469 + "value": 155.76290893554688 }, "ZOrientation": { "type": "float", @@ -67155,7 +67155,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000010013580322 + "value": 0.20000100135803223 } }, { @@ -67183,11 +67183,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -67198,11 +67198,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -67213,11 +67213,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -67228,11 +67228,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -67243,7 +67243,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -67262,7 +67262,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -67273,11 +67273,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -67292,7 +67292,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -67303,11 +67303,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -67318,11 +67318,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -67337,7 +67337,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -67352,7 +67352,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -67363,7 +67363,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -67378,11 +67378,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -67393,11 +67393,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -67408,11 +67408,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -67423,7 +67423,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -67438,7 +67438,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -67453,11 +67453,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -67468,11 +67468,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -67502,10 +67502,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West Junction" + "0": "South & West Junction", + "id": 14759 } }, "OnClick": { @@ -67610,7 +67610,7 @@ }, "YPosition": { "type": "float", - "value": 135.7196350097656 + "value": 135.71963500976562 }, "ZOrientation": { "type": "float", @@ -67618,7 +67618,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -67646,11 +67646,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -67661,11 +67661,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -67676,11 +67676,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -67691,11 +67691,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -67706,7 +67706,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -67725,7 +67725,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -67736,11 +67736,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -67755,7 +67755,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -67766,11 +67766,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -67781,11 +67781,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -67800,7 +67800,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -67815,7 +67815,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -67826,7 +67826,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -67841,11 +67841,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -67856,11 +67856,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -67871,11 +67871,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -67886,7 +67886,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -67901,7 +67901,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -67916,11 +67916,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -67931,11 +67931,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -67965,10 +67965,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -68073,7 +68073,7 @@ }, "YPosition": { "type": "float", - "value": 136.1657562255859 + "value": 136.16575622558594 }, "ZOrientation": { "type": "float", @@ -68081,7 +68081,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -68109,11 +68109,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -68124,11 +68124,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -68139,11 +68139,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -68154,11 +68154,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -68169,7 +68169,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -68188,7 +68188,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -68199,11 +68199,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -68218,7 +68218,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -68229,11 +68229,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -68244,11 +68244,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -68263,7 +68263,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -68278,7 +68278,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -68289,7 +68289,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -68304,11 +68304,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -68319,11 +68319,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -68334,11 +68334,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -68349,7 +68349,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -68364,7 +68364,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -68379,11 +68379,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -68394,11 +68394,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -68428,10 +68428,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -68544,7 +68544,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -68572,11 +68572,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -68587,11 +68587,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -68602,11 +68602,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -68617,11 +68617,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -68632,7 +68632,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -68651,7 +68651,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -68662,11 +68662,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -68681,7 +68681,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -68692,11 +68692,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -68707,11 +68707,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -68726,7 +68726,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -68741,7 +68741,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -68752,7 +68752,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -68767,11 +68767,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -68782,11 +68782,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -68797,11 +68797,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -68812,7 +68812,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -68827,7 +68827,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -68842,11 +68842,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -68857,11 +68857,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -68891,10 +68891,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West Junction" + "0": "North & West Junction", + "id": 14759 } }, "OnClick": { @@ -68991,7 +68991,7 @@ }, "XPosition": { "type": "float", - "value": 95.34055328369141 + "value": 95.3405532836914 }, "YOrientation": { "type": "float", @@ -69007,7 +69007,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000019550323486 + "value": 0.20000195503234863 } }, { @@ -69035,11 +69035,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -69050,11 +69050,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -69065,11 +69065,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -69080,11 +69080,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -69095,7 +69095,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -69114,7 +69114,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -69125,11 +69125,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -69144,7 +69144,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -69155,11 +69155,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -69170,11 +69170,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -69189,7 +69189,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -69204,7 +69204,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -69215,7 +69215,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -69230,11 +69230,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -69245,11 +69245,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -69260,11 +69260,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -69275,7 +69275,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -69290,7 +69290,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -69305,11 +69305,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -69320,11 +69320,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -69354,10 +69354,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -69470,7 +69470,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -69498,11 +69498,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -69513,11 +69513,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -69528,11 +69528,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -69543,11 +69543,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -69558,7 +69558,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -69577,7 +69577,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -69588,11 +69588,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -69607,7 +69607,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -69618,11 +69618,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -69633,11 +69633,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -69652,7 +69652,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -69667,7 +69667,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -69678,7 +69678,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -69693,11 +69693,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -69708,11 +69708,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -69723,11 +69723,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -69738,7 +69738,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -69753,7 +69753,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -69768,11 +69768,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -69783,11 +69783,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -69817,10 +69817,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "South & West & East Junction" + "0": "South & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -69917,7 +69917,7 @@ }, "XPosition": { "type": "float", - "value": 85.70761871337891 + "value": 85.7076187133789 }, "YOrientation": { "type": "float", @@ -69925,7 +69925,7 @@ }, "YPosition": { "type": "float", - "value": 145.5891265869141 + "value": 145.58912658691406 }, "ZOrientation": { "type": "float", @@ -69933,7 +69933,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -69961,11 +69961,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -69976,11 +69976,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -69991,11 +69991,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -70006,11 +70006,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -70021,7 +70021,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -70040,7 +70040,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -70051,11 +70051,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -70070,7 +70070,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -70081,11 +70081,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -70096,11 +70096,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -70115,7 +70115,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -70130,7 +70130,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -70141,7 +70141,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -70156,11 +70156,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -70171,11 +70171,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -70186,11 +70186,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -70201,7 +70201,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -70216,7 +70216,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -70231,11 +70231,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -70246,11 +70246,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -70280,10 +70280,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & South & West Junction" + "0": "North & South & West Junction", + "id": 14759 } }, "OnClick": { @@ -70388,7 +70388,7 @@ }, "YPosition": { "type": "float", - "value": 145.9153137207031 + "value": 145.91531372070312 }, "ZOrientation": { "type": "float", @@ -70396,7 +70396,7 @@ }, "ZPosition": { "type": "float", - "value": 0.200000524520874 + "value": 0.20000052452087402 } }, { @@ -70424,11 +70424,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.025417327880859 + "value": -3.0254173278808594 }, "PointY": { "type": "float", - "value": 1.006362915039063 + "value": 1.0063629150390625 }, "PointZ": { "type": "float", @@ -70439,11 +70439,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.512710571289063 + "value": -1.5127105712890625 }, "PointY": { "type": "float", - "value": -0.4936904907226563 + "value": -0.49369049072265625 }, "PointZ": { "type": "float", @@ -70454,11 +70454,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.519039154052734 + "value": -1.5190391540527344 }, "PointY": { "type": "float", - "value": -1.481063842773438 + "value": -1.4810638427734375 }, "PointZ": { "type": "float", @@ -70469,11 +70469,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.010276794433594 + "value": -3.0102767944335938 }, "PointY": { "type": "float", - "value": -2.999496459960938 + "value": -2.9994964599609375 }, "PointZ": { "type": "float", @@ -70484,7 +70484,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.022621154785156 + "value": -3.0226211547851562 }, "PointY": { "type": "float", @@ -70503,7 +70503,7 @@ }, "PointY": { "type": "float", - "value": -3.499496459960938 + "value": -3.4994964599609375 }, "PointZ": { "type": "float", @@ -70514,11 +70514,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.010269165039063 + "value": -1.0102691650390625 }, "PointY": { "type": "float", - "value": -1.987144470214844 + "value": -1.9871444702148438 }, "PointZ": { "type": "float", @@ -70533,7 +70533,7 @@ }, "PointY": { "type": "float", - "value": -1.987148284912109 + "value": -1.9871482849121094 }, "PointZ": { "type": "float", @@ -70544,11 +70544,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.511528015136719 + "value": 1.5115280151367188 }, "PointY": { "type": "float", - "value": -3.480979919433594 + "value": -3.4809799194335938 }, "PointZ": { "type": "float", @@ -70559,11 +70559,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999183654785156 + "value": 1.9991836547851562 }, "PointY": { "type": "float", - "value": -3.493324279785156 + "value": -3.4933242797851562 }, "PointZ": { "type": "float", @@ -70578,7 +70578,7 @@ }, "PointY": { "type": "float", - "value": -2.993324279785156 + "value": -2.9933242797851562 }, "PointZ": { "type": "float", @@ -70593,7 +70593,7 @@ }, "PointY": { "type": "float", - "value": -1.487144470214844 + "value": -1.4871444702148438 }, "PointZ": { "type": "float", @@ -70604,7 +70604,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.4930038452148438 + "value": 0.49300384521484375 }, "PointY": { "type": "float", @@ -70619,11 +70619,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.999927520751953 + "value": 1.9999275207519531 }, "PointY": { "type": "float", - "value": 1.015377044677734 + "value": 1.0153770446777344 }, "PointZ": { "type": "float", @@ -70634,11 +70634,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 2.007808685302734 + "value": 2.0078086853027344 }, "PointY": { "type": "float", - "value": 1.519588470458984 + "value": 1.5195884704589844 }, "PointZ": { "type": "float", @@ -70649,11 +70649,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 1.487838745117188 + "value": 1.4878387451171875 }, "PointY": { "type": "float", - "value": 1.527469635009766 + "value": 1.5274696350097656 }, "PointZ": { "type": "float", @@ -70664,7 +70664,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -0.01651382446289063 + "value": -0.016513824462890625 }, "PointY": { "type": "float", @@ -70679,7 +70679,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -1.012691497802734 + "value": -1.0126914978027344 }, "PointY": { "type": "float", @@ -70694,11 +70694,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -2.531734466552734 + "value": -2.5317344665527344 }, "PointY": { "type": "float", - "value": 1.512706756591797 + "value": 1.5127067565917969 }, "PointZ": { "type": "float", @@ -70709,11 +70709,11 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": -3.012760162353516 + "value": -3.0127601623535156 }, "PointY": { "type": "float", - "value": 1.519035339355469 + "value": 1.5190353393554688 }, "PointZ": { "type": "float", @@ -70743,10 +70743,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "North & West & East Junction" + "0": "North & West & East Junction", + "id": 14759 } }, "OnClick": { @@ -70851,7 +70851,7 @@ }, "YPosition": { "type": "float", - "value": 116.0966491699219 + "value": 116.09664916992188 }, "ZOrientation": { "type": "float", @@ -70859,7 +70859,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -70902,7 +70902,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -70921,7 +70921,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -70966,10 +70966,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Eastward Entry" + "0": "Eastward Entry", + "id": 14759 } }, "OnClick": { @@ -71074,7 +71074,7 @@ }, "YPosition": { "type": "float", - "value": 156.9161987304688 + "value": 156.91619873046875 }, "ZOrientation": { "type": "float", @@ -71118,14 +71118,14 @@ }, "PointZ": { "type": "float", - "value": 0.2250001728534699 + "value": 0.22500017285346985 } }, { "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -71144,7 +71144,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -71189,10 +71189,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Eastward Entry" + "0": "Eastward Entry", + "id": 14759 } }, "OnClick": { @@ -71289,7 +71289,7 @@ }, "XPosition": { "type": "float", - "value": 127.4393997192383 + "value": 127.43939971923828 }, "YOrientation": { "type": "float", @@ -71305,7 +71305,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -71348,7 +71348,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -71367,7 +71367,7 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", @@ -71412,10 +71412,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Eastward Entry" + "0": "Eastward Entry", + "id": 14759 } }, "OnClick": { @@ -71512,7 +71512,7 @@ }, "XPosition": { "type": "float", - "value": 37.38794326782227 + "value": 37.387943267822266 }, "YOrientation": { "type": "float", @@ -71520,7 +71520,7 @@ }, "YPosition": { "type": "float", - "value": 146.9919738769531 + "value": 146.99197387695312 }, "ZOrientation": { "type": "float", @@ -71528,7 +71528,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -71571,7 +71571,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -71590,11 +71590,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.4688006937503815 + "value": 0.46880069375038147 } }, { @@ -71635,10 +71635,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Northward Entry" + "0": "Northward Entry", + "id": 14759 } }, "OnClick": { @@ -71743,7 +71743,7 @@ }, "YPosition": { "type": "float", - "value": 21.14060592651367 + "value": 21.140605926513672 }, "ZOrientation": { "type": "float", @@ -71794,7 +71794,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -71813,11 +71813,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.2707840502262116 + "value": 0.27078405022621155 } }, { @@ -71858,10 +71858,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Northward Entry" + "0": "Northward Entry", + "id": 14759 } }, "OnClick": { @@ -71958,7 +71958,7 @@ }, "XPosition": { "type": "float", - "value": 92.99277496337891 + "value": 92.9927749633789 }, "YOrientation": { "type": "float", @@ -71974,7 +71974,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -72017,7 +72017,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -72036,11 +72036,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.3958608210086823 + "value": 0.39586082100868225 } }, { @@ -72081,10 +72081,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Westward Entry" + "0": "Westward Entry", + "id": 14759 } }, "OnClick": { @@ -72197,7 +72197,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -72240,7 +72240,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -72259,11 +72259,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.3958608210086823 + "value": 0.39586082100868225 } }, { @@ -72304,10 +72304,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Westward Entry" + "0": "Westward Entry", + "id": 14759 } }, "OnClick": { @@ -72404,7 +72404,7 @@ }, "XPosition": { "type": "float", - "value": 139.1716156005859 + "value": 139.17161560058594 }, "YOrientation": { "type": "float", @@ -72412,7 +72412,7 @@ }, "YPosition": { "type": "float", - "value": 16.96518707275391 + "value": 16.965187072753906 }, "ZOrientation": { "type": "float", @@ -72420,7 +72420,7 @@ }, "ZPosition": { "type": "float", - "value": 0.1999990940093994 + "value": 0.19999909400939941 } }, { @@ -72463,7 +72463,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -72482,11 +72482,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.3958608210086823 + "value": 0.39586082100868225 } }, { @@ -72527,10 +72527,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Westward Entry" + "0": "Westward Entry", + "id": 14759 } }, "OnClick": { @@ -72643,7 +72643,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } }, { @@ -72686,7 +72686,7 @@ "__struct_id": 3, "PointX": { "type": "float", - "value": 0.003210067749023438 + "value": 0.0032100677490234375 }, "PointY": { "type": "float", @@ -72705,11 +72705,11 @@ }, "PointY": { "type": "float", - "value": -4.02381181716919 + "value": -4.0238118171691895 }, "PointZ": { "type": "float", - "value": 0.3958608210086823 + "value": 0.39586082100868225 } }, { @@ -72750,10 +72750,10 @@ "value": 0 }, "LocalizedName": { - "id": 14759, "type": "cexolocstring", "value": { - "0": "Westward Entry" + "0": "Westward Entry", + "id": 14759 } }, "OnClick": { @@ -72850,7 +72850,7 @@ }, "XPosition": { "type": "float", - "value": 48.66843414306641 + "value": 48.668434143066406 }, "YOrientation": { "type": "float", @@ -72866,7 +72866,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000476837158 + "value": 0.20000004768371582 } } ] @@ -72913,10 +72913,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -72945,7 +72945,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -72953,7 +72953,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -72975,10 +72975,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73007,7 +73007,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73015,7 +73015,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73037,10 +73037,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73069,7 +73069,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73077,7 +73077,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73099,10 +73099,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73131,7 +73131,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73139,7 +73139,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73161,10 +73161,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73193,7 +73193,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73201,7 +73201,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73223,10 +73223,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73263,7 +73263,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73285,10 +73285,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73309,7 +73309,7 @@ }, "XOrientation": { "type": "float", - "value": 2.773600272121257e-006 + "value": 0.000002773600272121257 }, "XPosition": { "type": "float", @@ -73325,7 +73325,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73347,10 +73347,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73379,7 +73379,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73387,7 +73387,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73409,10 +73409,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73441,7 +73441,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73449,7 +73449,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 } }, { @@ -73471,10 +73471,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73511,7 +73511,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73533,10 +73533,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73595,10 +73595,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73627,7 +73627,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", @@ -73635,7 +73635,7 @@ }, "ZPosition": { "type": "float", - "value": 0.2099999934434891 + "value": 0.20999999344348907 } }, { @@ -73657,10 +73657,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Maze Entry" + "0": "Maze Entry", + "id": 14817 } }, "MapNote": { @@ -73689,7 +73689,7 @@ }, "YOrientation": { "type": "float", - "value": 1.148381556959066e-006 + "value": 0.000001148381556959066 }, "YPosition": { "type": "float", diff --git a/_module/git/ruinedminds001.git.json b/_module/git/ruinedminds001.git.json index b88c42f4..96f14e54 100644 --- a/_module/git/ruinedminds001.git.json +++ b/_module/git/ruinedminds001.git.json @@ -66,7 +66,7 @@ }, "Bearing": { "type": "float", - "value": 1.570795655250549 + "value": 1.5707956552505493 }, "CloseLockDC": { "type": "byte", @@ -141,9 +141,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -263,7 +264,7 @@ }, "Z": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 } }, { @@ -357,9 +358,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -573,9 +575,10 @@ "value": 0 }, "LocName": { - "id": 5349, "type": "cexolocstring", - "value": {} + "value": { + "id": 5349 + } }, "OnClick": { "type": "resref", @@ -746,9 +749,10 @@ "value": 15 }, "Description": { - "id": 84596, "type": "cexolocstring", - "value": {} + "value": { + "id": 84596 + } }, "DisarmDC": { "type": "byte", @@ -795,9 +799,10 @@ "value": 0 }, "LocName": { - "id": 84590, "type": "cexolocstring", - "value": {} + "value": { + "id": 84590 + } }, "OnClosed": { "type": "resref", @@ -921,7 +926,7 @@ }, "X": { "type": "float", - "value": 15.04899024963379 + "value": 15.048990249633789 }, "Y": { "type": "float", @@ -967,10 +972,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -1018,10 +1023,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClosed": { @@ -1150,11 +1155,11 @@ }, "Y": { "type": "float", - "value": 74.52798461914063 + "value": 74.52798461914062 }, "Z": { "type": "float", - "value": 0.2000002861022949 + "value": 0.20000028610229492 } } ] @@ -1193,9 +1198,10 @@ "value": 0 }, "LocName": { - "id": 68020, "type": "cexolocstring", - "value": {} + "value": { + "id": 68020 + } }, "Looping": { "type": "byte", @@ -1275,11 +1281,11 @@ }, "YPosition": { "type": "float", - "value": 24.88151931762695 + "value": 24.881519317626953 }, "ZPosition": { "type": "float", - "value": 3.12960410118103 + "value": 3.1296041011810303 } }, { @@ -1313,9 +1319,10 @@ "value": 0 }, "LocName": { - "id": 67893, "type": "cexolocstring", - "value": {} + "value": { + "id": 67893 + } }, "Looping": { "type": "byte", @@ -1399,7 +1406,7 @@ }, "ZPosition": { "type": "float", - "value": -1.50000524520874 + "value": -1.5000052452087402 } }, { @@ -1433,9 +1440,10 @@ "value": 0 }, "LocName": { - "id": 67848, "type": "cexolocstring", - "value": {} + "value": { + "id": 67848 + } }, "Looping": { "type": "byte", @@ -1511,7 +1519,7 @@ }, "XPosition": { "type": "float", - "value": 48.06650543212891 + "value": 48.066505432128906 }, "YPosition": { "type": "float", @@ -1519,7 +1527,7 @@ }, "ZPosition": { "type": "float", - "value": 1.500000476837158 + "value": 1.5000004768371582 } }, { @@ -1553,9 +1561,10 @@ "value": 5000 }, "LocName": { - "id": 67889, "type": "cexolocstring", - "value": {} + "value": { + "id": 67889 + } }, "Looping": { "type": "byte", @@ -1571,7 +1580,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.2000000029802322 + "value": 0.20000000298023224 }, "Positional": { "type": "byte", @@ -1649,11 +1658,11 @@ }, "YPosition": { "type": "float", - "value": 14.52048015594482 + "value": 14.520480155944824 }, "ZPosition": { "type": "float", - "value": 1.388710021972656 + "value": 1.3887100219726562 } }, { @@ -1687,9 +1696,10 @@ "value": 0 }, "LocName": { - "id": 67900, "type": "cexolocstring", - "value": {} + "value": { + "id": 67900 + } }, "Looping": { "type": "byte", @@ -1769,11 +1779,11 @@ }, "YPosition": { "type": "float", - "value": 65.12294769287109 + "value": 65.1229476928711 }, "ZPosition": { "type": "float", - "value": 2.100000381469727 + "value": 2.1000003814697266 } }, { @@ -1807,9 +1817,10 @@ "value": 5000 }, "LocName": { - "id": 91303, "type": "cexolocstring", - "value": {} + "value": { + "id": 91303 + } }, "Looping": { "type": "byte", @@ -1825,7 +1836,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -1913,7 +1924,7 @@ }, "XPosition": { "type": "float", - "value": 14.92038059234619 + "value": 14.920380592346191 }, "YPosition": { "type": "float", @@ -1921,7 +1932,7 @@ }, "ZPosition": { "type": "float", - "value": 1.299999833106995 + "value": 1.2999998331069946 } }, { @@ -1955,9 +1966,10 @@ "value": 5000 }, "LocName": { - "id": 91308, "type": "cexolocstring", - "value": {} + "value": { + "id": 91308 + } }, "Looping": { "type": "byte", @@ -1973,7 +1985,7 @@ }, "PitchVariation": { "type": "float", - "value": 0.300000011920929 + "value": 0.30000001192092896 }, "Positional": { "type": "byte", @@ -2082,7 +2094,7 @@ }, "XPosition": { "type": "float", - "value": 14.92793464660645 + "value": 14.927934646606445 }, "YPosition": { "type": "float", @@ -2090,7 +2102,7 @@ }, "ZPosition": { "type": "float", - "value": 1.400000095367432 + "value": 1.4000000953674316 } }, { @@ -2124,9 +2136,10 @@ "value": 0 }, "LocName": { - "id": 91329, "type": "cexolocstring", - "value": {} + "value": { + "id": 91329 + } }, "Looping": { "type": "byte", @@ -2202,7 +2215,7 @@ }, "XPosition": { "type": "float", - "value": 34.48321914672852 + "value": 34.483219146728516 }, "YPosition": { "type": "float", @@ -2210,7 +2223,7 @@ }, "ZPosition": { "type": "float", - "value": 1.899991393089294 + "value": 1.8999913930892944 } }, { @@ -2244,9 +2257,10 @@ "value": 0 }, "LocName": { - "id": 91329, "type": "cexolocstring", - "value": {} + "value": { + "id": 91329 + } }, "Looping": { "type": "byte", @@ -2326,7 +2340,7 @@ }, "YPosition": { "type": "float", - "value": 40.13705444335938 + "value": 40.137054443359375 }, "ZPosition": { "type": "float", @@ -2364,9 +2378,10 @@ "value": 0 }, "LocName": { - "id": 91329, "type": "cexolocstring", - "value": {} + "value": { + "id": 91329 + } }, "Looping": { "type": "byte", @@ -2442,7 +2457,7 @@ }, "XPosition": { "type": "float", - "value": 35.51938629150391 + "value": 35.519386291503906 }, "YPosition": { "type": "float", @@ -2450,7 +2465,7 @@ }, "ZPosition": { "type": "float", - "value": 1.899991393089294 + "value": 1.8999913930892944 } }, { @@ -2484,9 +2499,10 @@ "value": 0 }, "LocName": { - "id": 91329, "type": "cexolocstring", - "value": {} + "value": { + "id": 91329 + } }, "Looping": { "type": "byte", @@ -2570,7 +2586,7 @@ }, "ZPosition": { "type": "float", - "value": 1.900000095367432 + "value": 1.9000000953674316 } }, { @@ -2604,9 +2620,10 @@ "value": 5000 }, "LocName": { - "id": 67959, "type": "cexolocstring", - "value": {} + "value": { + "id": 67959 + } }, "Looping": { "type": "byte", @@ -2704,7 +2721,7 @@ }, "ZPosition": { "type": "float", - "value": 1.830684065818787 + "value": 1.8306840658187866 } } ] diff --git a/_module/git/starting_area.git.json b/_module/git/starting_area.git.json index eca95e2c..b86c29c3 100644 --- a/_module/git/starting_area.git.json +++ b/_module/git/starting_area.git.json @@ -246,9 +246,10 @@ "value": 7 }, "LocalizedName": { - "id": 12839, "type": "cexolocstring", - "value": {} + "value": { + "id": 12839 + } }, "Metal1Color": { "type": "byte", @@ -1042,7 +1043,7 @@ }, "XPosition": { "type": "float", - "value": 15.26881313323975 + "value": 15.268813133239746 }, "YOrientation": { "type": "float", @@ -1054,7 +1055,7 @@ }, "ZPosition": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } } ] @@ -1090,7 +1091,7 @@ }, "Bearing": { "type": "float", - "value": 1.570794224739075 + "value": 1.5707942247390747 }, "BodyBag": { "type": "byte", @@ -1109,10 +1110,10 @@ "value": 15 }, "Description": { - "id": 14687, "type": "cexolocstring", "value": { - "0": "Edit this description to provide instructions for players entering the module.\n\nThis can include things like:\n\n-- Using the Starting Merchant to equip themselves\n\n-- Background information on the module setting \n\n-- Where the players will find themselves once they enter it\n\n-- How to get in the adventure (by talking to an NPC, using a starting portal, going to an area transition, etc.)" + "0": "Edit this description to provide instructions for players entering the module.\n\nThis can include things like:\n\n-- Using the Starting Merchant to equip themselves\n\n-- Background information on the module setting \n\n-- Where the players will find themselves once they enter it\n\n-- How to get in the adventure (by talking to an NPC, using a starting portal, going to an area transition, etc.)", + "id": 14687 } }, "DisarmDC": { @@ -1160,10 +1161,10 @@ "value": 0 }, "LocName": { - "id": 14688, "type": "cexolocstring", "value": { - "0": "Examine me - Intro" + "0": "Examine me - Intro", + "id": 14688 } }, "OnClick": { @@ -1292,15 +1293,15 @@ }, "X": { "type": "float", - "value": 23.10303688049316 + "value": 23.103036880493164 }, "Y": { "type": "float", - "value": 15.01717376708984 + "value": 15.017173767089844 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -1319,7 +1320,7 @@ }, "Bearing": { "type": "float", - "value": 1.570794224739075 + "value": 1.5707942247390747 }, "BodyBag": { "type": "byte", @@ -1338,10 +1339,10 @@ "value": 15 }, "Description": { - "id": 14562, "type": "cexolocstring", "value": { - "0": "Edit this description to describe your module's ruleset to players. This can include things like:\n\nResting rules\n\nBleeding/Death/Respawn rules\n\nAdditional major systems added\n\nSpecial items and their functions" + "0": "Edit this description to describe your module's ruleset to players. This can include things like:\n\nResting rules\n\nBleeding/Death/Respawn rules\n\nAdditional major systems added\n\nSpecial items and their functions", + "id": 14562 } }, "DisarmDC": { @@ -1389,10 +1390,10 @@ "value": 0 }, "LocName": { - "id": 14561, "type": "cexolocstring", "value": { - "0": "Examine me to see the Ruleset" + "0": "Examine me to see the Ruleset", + "id": 14561 } }, "OnClick": { @@ -1521,15 +1522,15 @@ }, "X": { "type": "float", - "value": 14.46738719940186 + "value": 14.467387199401855 }, "Y": { "type": "float", - "value": 14.96477794647217 + "value": 14.964777946472168 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -1548,7 +1549,7 @@ }, "Bearing": { "type": "float", - "value": -1.055378556251526 + "value": -1.0553785562515259 }, "BodyBag": { "type": "byte", @@ -1567,10 +1568,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -1618,10 +1619,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -1750,11 +1751,11 @@ }, "X": { "type": "float", - "value": 23.35244941711426 + "value": 23.352449417114258 }, "Y": { "type": "float", - "value": 24.66805458068848 + "value": 24.668054580688477 }, "Z": { "type": "float", @@ -1777,7 +1778,7 @@ }, "Bearing": { "type": "float", - "value": -1.055378556251526 + "value": -1.0553785562515259 }, "BodyBag": { "type": "byte", @@ -1796,10 +1797,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -1847,10 +1848,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -1979,7 +1980,7 @@ }, "X": { "type": "float", - "value": 24.34877395629883 + "value": 24.348773956298828 }, "Y": { "type": "float", @@ -2006,7 +2007,7 @@ }, "Bearing": { "type": "float", - "value": 0.417241781949997 + "value": 0.41724178194999695 }, "BodyBag": { "type": "byte", @@ -2025,10 +2026,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -2076,10 +2077,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -2212,11 +2213,11 @@ }, "Y": { "type": "float", - "value": 23.24041557312012 + "value": 23.240415573120117 }, "Z": { "type": "float", - "value": 0.6441644430160523 + "value": 0.6441644430160522 } }, { @@ -2254,10 +2255,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -2305,10 +2306,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -2464,7 +2465,7 @@ }, "Bearing": { "type": "float", - "value": 2.037125110626221 + "value": 2.0371251106262207 }, "BodyBag": { "type": "byte", @@ -2483,10 +2484,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -2534,10 +2535,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -2670,7 +2671,7 @@ }, "Y": { "type": "float", - "value": 5.303233146667481 + "value": 5.3032331466674805 }, "Z": { "type": "float", @@ -2693,7 +2694,7 @@ }, "Bearing": { "type": "float", - "value": 2.061669826507568 + "value": 2.0616698265075684 }, "BodyBag": { "type": "byte", @@ -2712,10 +2713,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -2763,10 +2764,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -2922,7 +2923,7 @@ }, "Bearing": { "type": "float", - "value": -2.675251483917236 + "value": -2.6752514839172363 }, "BodyBag": { "type": "byte", @@ -2941,10 +2942,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -2992,10 +2993,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -3124,7 +3125,7 @@ }, "X": { "type": "float", - "value": 24.75380325317383 + "value": 24.753803253173828 }, "Y": { "type": "float", @@ -3170,10 +3171,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -3221,10 +3222,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -3353,7 +3354,7 @@ }, "X": { "type": "float", - "value": 22.80753707885742 + "value": 22.807537078857422 }, "Y": { "type": "float", @@ -3399,9 +3400,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -3448,9 +3450,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -3582,11 +3585,11 @@ }, "Y": { "type": "float", - "value": 18.72430610656738 + "value": 18.724306106567383 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -3624,9 +3627,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -3673,9 +3677,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -3811,7 +3816,7 @@ }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -3830,7 +3835,7 @@ }, "Bearing": { "type": "float", - "value": -1.42353367805481 + "value": -1.4235336780548096 }, "BodyBag": { "type": "byte", @@ -3849,9 +3854,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -3898,9 +3904,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -4032,11 +4039,11 @@ }, "Y": { "type": "float", - "value": 16.87439155578613 + "value": 16.874391555786133 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4074,9 +4081,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -4123,9 +4131,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -4253,15 +4262,15 @@ }, "X": { "type": "float", - "value": 10.68344688415527 + "value": 10.683446884155273 }, "Y": { "type": "float", - "value": 13.47805309295654 + "value": 13.478053092956543 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4280,7 +4289,7 @@ }, "Bearing": { "type": "float", - "value": -2.601631164550781 + "value": -2.6016311645507812 }, "BodyBag": { "type": "byte", @@ -4299,9 +4308,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -4348,9 +4358,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -4482,11 +4493,11 @@ }, "Y": { "type": "float", - "value": 11.57683658599854 + "value": 11.576836585998535 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4505,7 +4516,7 @@ }, "Bearing": { "type": "float", - "value": 2.503453731536865 + "value": 2.5034537315368652 }, "BodyBag": { "type": "byte", @@ -4524,9 +4535,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -4573,9 +4585,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -4707,11 +4720,11 @@ }, "Y": { "type": "float", - "value": 11.12642002105713 + "value": 11.126420021057129 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4730,7 +4743,7 @@ }, "Bearing": { "type": "float", - "value": 1.619882822036743 + "value": 1.6198828220367432 }, "BodyBag": { "type": "byte", @@ -4749,10 +4762,10 @@ "value": 15 }, "Description": { - "id": 14689, "type": "cexolocstring", "value": { - "0": "A place for PCs to sit and talk about their characters' backgrounds and skills, before entering the adventure" + "0": "A place for PCs to sit and talk about their characters' backgrounds and skills, before entering the adventure", + "id": 14689 } }, "DisarmDC": { @@ -4800,10 +4813,10 @@ "value": 0 }, "LocName": { - "id": 14688, "type": "cexolocstring", "value": { - "0": "PC gathering area" + "0": "PC gathering area", + "id": 14688 } }, "OnClick": { @@ -4932,15 +4945,15 @@ }, "X": { "type": "float", - "value": 10.91083335876465 + "value": 10.910833358764648 }, "Y": { "type": "float", - "value": 10.68643474578857 + "value": 10.686434745788574 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -4959,7 +4972,7 @@ }, "Bearing": { "type": "float", - "value": 1.865317225456238 + "value": 1.8653172254562378 }, "BodyBag": { "type": "byte", @@ -4978,9 +4991,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -5027,9 +5041,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -5161,11 +5176,11 @@ }, "Y": { "type": "float", - "value": 13.27003192901611 + "value": 13.270031929016113 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -5184,7 +5199,7 @@ }, "Bearing": { "type": "float", - "value": 1.030834794044495 + "value": 1.0308347940444946 }, "BodyBag": { "type": "byte", @@ -5203,9 +5218,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -5252,9 +5268,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", - "value": {} + "value": { + "id": 5822 + } }, "OnClick": { "type": "resref", @@ -5386,11 +5403,11 @@ }, "Y": { "type": "float", - "value": 16.43094062805176 + "value": 16.430940628051758 }, "Z": { "type": "float", - "value": -5.7220458984375e-006 + "value": -0.0000057220458984375 } }, { @@ -5409,7 +5426,7 @@ }, "Bearing": { "type": "float", - "value": 3.141586065292358 + "value": 3.1415860652923584 }, "BodyBag": { "type": "byte", @@ -5428,10 +5445,10 @@ "value": 15 }, "Description": { - "id": 14689, "type": "cexolocstring", "value": { - "0": "Use this starting merchant to equip your character.\n\nThe merchant buys back items at their sale price, so you can freely exchange them." + "0": "Use this starting merchant to equip your character.\n\nThe merchant buys back items at their sale price, so you can freely exchange them.", + "id": 14689 } }, "DisarmDC": { @@ -5479,10 +5496,10 @@ "value": 0 }, "LocName": { - "id": 14688, "type": "cexolocstring", "value": { - "0": "Starting Merchant instructions" + "0": "Starting Merchant instructions", + "id": 14688 } }, "OnClick": { @@ -5611,7 +5628,7 @@ }, "X": { "type": "float", - "value": 17.38543319702148 + "value": 17.385433197021484 }, "Y": { "type": "float", @@ -5657,10 +5674,10 @@ "value": 15 }, "Description": { - "id": 14718, "type": "cexolocstring", "value": { - "0": "A searing shaft of blue light descends from some unseen place above." + "0": "A searing shaft of blue light descends from some unseen place above.", + "id": 14718 } }, "DisarmDC": { @@ -5708,10 +5725,10 @@ "value": 1 }, "LocName": { - "id": 14719, "type": "cexolocstring", "value": { - "0": "Starting Portal" + "0": "Starting Portal", + "id": 14719 } }, "OnClick": { @@ -5844,11 +5861,11 @@ }, "Y": { "type": "float", - "value": 26.60710525512695 + "value": 26.607105255126953 }, "Z": { "type": "float", - "value": -2.384185791015625e-007 + "value": -0.0000002384185791015625 } }, { @@ -5867,7 +5884,7 @@ }, "Bearing": { "type": "float", - "value": -2.208930969238281 + "value": -2.2089309692382812 }, "BodyBag": { "type": "byte", @@ -5886,10 +5903,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -5937,10 +5954,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { @@ -6073,7 +6090,7 @@ }, "Y": { "type": "float", - "value": 43.96252059936523 + "value": 43.962520599365234 }, "Z": { "type": "float", @@ -6115,9 +6132,10 @@ "value": 15 }, "Description": { - "id": 14623, "type": "cexolocstring", - "value": {} + "value": { + "id": 14623 + } }, "DisarmDC": { "type": "byte", @@ -6164,10 +6182,10 @@ "value": 0 }, "LocName": { - "id": 14616, "type": "cexolocstring", "value": { - "0": "DM Lounge" + "0": "DM Lounge", + "id": 14616 } }, "OnClick": { @@ -6296,7 +6314,7 @@ }, "X": { "type": "float", - "value": 22.17000770568848 + "value": 22.170007705688477 }, "Y": { "type": "float", @@ -6304,7 +6322,7 @@ }, "Z": { "type": "float", - "value": -4.76837158203125e-007 + "value": -0.000000476837158203125 } }, { @@ -6342,10 +6360,10 @@ "value": 15 }, "Description": { - "id": 14665, "type": "cexolocstring", "value": { - "0": "This will allow you to set the different module rulesets. It will also send a message to all DMs with the new ruleset information." + "0": "This will allow you to set the different module rulesets. It will also send a message to all DMs with the new ruleset information.", + "id": 14665 } }, "DisarmDC": { @@ -6393,10 +6411,10 @@ "value": 0 }, "LocName": { - "id": 5716, "type": "cexolocstring", "value": { - "0": "Module Ruleset Controls" + "0": "Module Ruleset Controls", + "id": 5716 } }, "OnClick": { @@ -6533,7 +6551,7 @@ }, "Z": { "type": "float", - "value": -5.222045729169622e-006 + "value": -0.000005222045729169622 } }, { @@ -6571,9 +6589,10 @@ "value": 15 }, "Description": { - "id": 14727, "type": "cexolocstring", - "value": {} + "value": { + "id": 14727 + } }, "DisarmDC": { "type": "byte", @@ -6620,9 +6639,10 @@ "value": 0 }, "LocName": { - "id": 111286, "type": "cexolocstring", - "value": {} + "value": { + "id": 111286 + } }, "OnClick": { "type": "resref", @@ -6754,11 +6774,11 @@ }, "Y": { "type": "float", - "value": 54.78756713867188 + "value": 54.787567138671875 }, "Z": { "type": "float", - "value": -5.222045729169622e-006 + "value": -0.000005222045729169622 } } ] @@ -6865,9 +6885,10 @@ "value": 1 }, "LocalizedName": { - "id": 1550, "type": "cexolocstring", - "value": {} + "value": { + "id": 1550 + } }, "ModelPart1": { "type": "byte", @@ -6965,9 +6986,10 @@ "value": 1 }, "LocalizedName": { - "id": 179, "type": "cexolocstring", - "value": {} + "value": { + "id": 179 + } }, "ModelPart1": { "type": "byte", @@ -7065,9 +7087,10 @@ "value": 1 }, "LocalizedName": { - "id": 1551, "type": "cexolocstring", - "value": {} + "value": { + "id": 1551 + } }, "ModelPart1": { "type": "byte", @@ -7257,9 +7280,10 @@ "value": 43 }, "LocalizedName": { - "id": 12913, "type": "cexolocstring", - "value": {} + "value": { + "id": 12913 + } }, "Metal1Color": { "type": "byte", @@ -7453,9 +7477,10 @@ "value": 25 }, "LocalizedName": { - "id": 12921, "type": "cexolocstring", - "value": {} + "value": { + "id": 12921 + } }, "Metal1Color": { "type": "byte", @@ -7649,9 +7674,10 @@ "value": 14 }, "LocalizedName": { - "id": 12917, "type": "cexolocstring", - "value": {} + "value": { + "id": 12917 + } }, "Metal1Color": { "type": "byte", @@ -7845,9 +7871,10 @@ "value": 22 }, "LocalizedName": { - "id": 12905, "type": "cexolocstring", - "value": {} + "value": { + "id": 12905 + } }, "Metal1Color": { "type": "byte", @@ -8041,9 +8068,10 @@ "value": 46 }, "LocalizedName": { - "id": 12909, "type": "cexolocstring", - "value": {} + "value": { + "id": 12909 + } }, "Metal1Color": { "type": "byte", @@ -8237,9 +8265,10 @@ "value": 7 }, "LocalizedName": { - "id": 12906, "type": "cexolocstring", - "value": {} + "value": { + "id": 12906 + } }, "Metal1Color": { "type": "byte", @@ -8357,9 +8386,10 @@ "value": 7 }, "LocalizedName": { - "id": 12847, "type": "cexolocstring", - "value": {} + "value": { + "id": 12847 + } }, "Metal1Color": { "type": "byte", @@ -8589,10 +8619,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Large" + "0": "Chain Shirt, Large", + "id": 12844 } }, "Metal1Color": { @@ -8819,10 +8849,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Medium" + "0": "Chain Shirt, Medium", + "id": 12844 } }, "Metal1Color": { @@ -9111,10 +9141,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Small" + "0": "Chain Shirt, Small", + "id": 12844 } }, "Metal1Color": { @@ -9341,10 +9371,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Stout" + "0": "Chain Shirt, Stout", + "id": 12844 } }, "Metal1Color": { @@ -9602,10 +9632,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Large" + "0": "Leather Armor, Large", + "id": 12835 } }, "Metal1Color": { @@ -9832,10 +9862,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Medium" + "0": "Leather Armor, Medium", + "id": 12835 } }, "Metal1Color": { @@ -10124,10 +10154,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Small" + "0": "Leather Armor, Small", + "id": 12835 } }, "Metal1Color": { @@ -10354,10 +10384,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Stout" + "0": "Leather Armor, Stout", + "id": 12835 } }, "Metal1Color": { @@ -10615,10 +10645,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Large" + "0": "Studded Leather Armor, Large", + "id": 12836 } }, "Metal1Color": { @@ -10845,10 +10875,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Medium" + "0": "Studded Leather Armor, Medium", + "id": 12836 } }, "Metal1Color": { @@ -11137,10 +11167,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Small" + "0": "Studded Leather Armor, Small", + "id": 12836 } }, "Metal1Color": { @@ -11367,10 +11397,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Stout" + "0": "Studded Leather Armor, Stout", + "id": 12836 } }, "Metal1Color": { @@ -11628,10 +11658,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Large" + "0": "Chainmail, Large", + "id": 184 } }, "Metal1Color": { @@ -11858,10 +11888,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Medium" + "0": "Chainmail, Medium", + "id": 184 } }, "Metal1Color": { @@ -12150,10 +12180,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Small" + "0": "Chainmail, Small", + "id": 184 } }, "Metal1Color": { @@ -12380,10 +12410,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Stout" + "0": "Chainmail, Stout", + "id": 184 } }, "Metal1Color": { @@ -12641,10 +12671,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Large" + "0": "Hide Armor, Large", + "id": 12840 } }, "Metal1Color": { @@ -12871,10 +12901,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Medium" + "0": "Hide Armor, Medium", + "id": 12840 } }, "Metal1Color": { @@ -13163,10 +13193,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Small" + "0": "Hide Armor, Small", + "id": 12840 } }, "Metal1Color": { @@ -13393,10 +13423,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Stout" + "0": "Hide Armor, Stout", + "id": 12840 } }, "Metal1Color": { @@ -13654,10 +13684,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Large" + "0": "Scale Mail, Large", + "id": 12837 } }, "Metal1Color": { @@ -13884,10 +13914,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Medium" + "0": "Scale Mail, Medium", + "id": 12837 } }, "Metal1Color": { @@ -14176,10 +14206,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Small" + "0": "Scale Mail, Small", + "id": 12837 } }, "Metal1Color": { @@ -14406,10 +14436,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Stout" + "0": "Scale Mail, Stout", + "id": 12837 } }, "Metal1Color": { @@ -14665,10 +14695,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Large" + "0": "Banded Mail, Large", + "id": 12843 } }, "Metal1Color": { @@ -14893,10 +14923,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Medium" + "0": "Banded Mail, Medium", + "id": 12843 } }, "Metal1Color": { @@ -15183,10 +15213,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Small" + "0": "Banded Mail, Small", + "id": 12843 } }, "Metal1Color": { @@ -15415,10 +15445,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Stout" + "0": "Banded Mail, Stout", + "id": 12843 } }, "Metal1Color": { @@ -15676,10 +15706,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Large" + "0": "Splint Mail, Large", + "id": 12838 } }, "Metal1Color": { @@ -15906,10 +15936,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Medium" + "0": "Splint Mail, Medium", + "id": 12838 } }, "Metal1Color": { @@ -16198,10 +16228,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Small" + "0": "Splint Mail, Small", + "id": 12838 } }, "Metal1Color": { @@ -16428,10 +16458,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Stout" + "0": "Splint Mail, Stout", + "id": 12838 } }, "Metal1Color": { @@ -16689,9 +16719,10 @@ "value": 45 }, "LocalizedName": { - "id": 12927, "type": "cexolocstring", - "value": {} + "value": { + "id": 12927 + } }, "Metal1Color": { "type": "byte", @@ -16801,9 +16832,10 @@ "value": 1 }, "LocalizedName": { - "id": 1517, "type": "cexolocstring", - "value": {} + "value": { + "id": 1517 + } }, "ModelPart1": { "type": "byte", @@ -16909,9 +16941,10 @@ "value": 1 }, "LocalizedName": { - "id": 1519, "type": "cexolocstring", - "value": {} + "value": { + "id": 1519 + } }, "ModelPart1": { "type": "byte", @@ -17017,9 +17050,10 @@ "value": 1 }, "LocalizedName": { - "id": 1521, "type": "cexolocstring", - "value": {} + "value": { + "id": 1521 + } }, "ModelPart1": { "type": "byte", @@ -17117,9 +17151,10 @@ "value": 1 }, "LocalizedName": { - "id": 1532, "type": "cexolocstring", - "value": {} + "value": { + "id": 1532 + } }, "ModelPart1": { "type": "byte", @@ -17225,9 +17260,10 @@ "value": 1 }, "LocalizedName": { - "id": 169, "type": "cexolocstring", - "value": {} + "value": { + "id": 169 + } }, "ModelPart1": { "type": "byte", @@ -17333,9 +17369,10 @@ "value": 1 }, "LocalizedName": { - "id": 515, "type": "cexolocstring", - "value": {} + "value": { + "id": 515 + } }, "ModelPart1": { "type": "byte", @@ -17441,9 +17478,10 @@ "value": 1 }, "LocalizedName": { - "id": 168, "type": "cexolocstring", - "value": {} + "value": { + "id": 168 + } }, "ModelPart1": { "type": "byte", @@ -17549,9 +17587,10 @@ "value": 1 }, "LocalizedName": { - "id": 191, "type": "cexolocstring", - "value": {} + "value": { + "id": 191 + } }, "ModelPart1": { "type": "byte", @@ -17657,9 +17696,10 @@ "value": 1 }, "LocalizedName": { - "id": 167, "type": "cexolocstring", - "value": {} + "value": { + "id": 167 + } }, "ModelPart1": { "type": "byte", @@ -17765,9 +17805,10 @@ "value": 1 }, "LocalizedName": { - "id": 166, "type": "cexolocstring", - "value": {} + "value": { + "id": 166 + } }, "ModelPart1": { "type": "byte", @@ -17873,9 +17914,10 @@ "value": 1 }, "LocalizedName": { - "id": 1535, "type": "cexolocstring", - "value": {} + "value": { + "id": 1535 + } }, "ModelPart1": { "type": "byte", @@ -17981,9 +18023,10 @@ "value": 1 }, "LocalizedName": { - "id": 1545, "type": "cexolocstring", - "value": {} + "value": { + "id": 1545 + } }, "ModelPart1": { "type": "byte", @@ -18089,9 +18132,10 @@ "value": 1 }, "LocalizedName": { - "id": 1547, "type": "cexolocstring", - "value": {} + "value": { + "id": 1547 + } }, "ModelPart1": { "type": "byte", @@ -18197,9 +18241,10 @@ "value": 1 }, "LocalizedName": { - "id": 106, "type": "cexolocstring", - "value": {} + "value": { + "id": 106 + } }, "ModelPart1": { "type": "byte", @@ -18305,9 +18350,10 @@ "value": 1 }, "LocalizedName": { - "id": 1522, "type": "cexolocstring", - "value": {} + "value": { + "id": 1522 + } }, "ModelPart1": { "type": "byte", @@ -18413,9 +18459,10 @@ "value": 1 }, "LocalizedName": { - "id": 1529, "type": "cexolocstring", - "value": {} + "value": { + "id": 1529 + } }, "ModelPart1": { "type": "byte", @@ -18521,9 +18568,10 @@ "value": 1 }, "LocalizedName": { - "id": 176, "type": "cexolocstring", - "value": {} + "value": { + "id": 176 + } }, "ModelPart1": { "type": "byte", @@ -18629,9 +18677,10 @@ "value": 1 }, "LocalizedName": { - "id": 1531, "type": "cexolocstring", - "value": {} + "value": { + "id": 1531 + } }, "ModelPart1": { "type": "byte", @@ -18737,9 +18786,10 @@ "value": 1 }, "LocalizedName": { - "id": 178, "type": "cexolocstring", - "value": {} + "value": { + "id": 178 + } }, "ModelPart1": { "type": "byte", @@ -18845,9 +18895,10 @@ "value": 1 }, "LocalizedName": { - "id": 177, "type": "cexolocstring", - "value": {} + "value": { + "id": 177 + } }, "ModelPart1": { "type": "byte", @@ -18953,9 +19004,10 @@ "value": 1 }, "LocalizedName": { - "id": 1541, "type": "cexolocstring", - "value": {} + "value": { + "id": 1541 + } }, "ModelPart1": { "type": "byte", @@ -19061,9 +19113,10 @@ "value": 1 }, "LocalizedName": { - "id": 1544, "type": "cexolocstring", - "value": {} + "value": { + "id": 1544 + } }, "ModelPart1": { "type": "byte", @@ -19169,9 +19222,10 @@ "value": 1 }, "LocalizedName": { - "id": 1534, "type": "cexolocstring", - "value": {} + "value": { + "id": 1534 + } }, "ModelPart1": { "type": "byte", @@ -19277,9 +19331,10 @@ "value": 1 }, "LocalizedName": { - "id": 1536, "type": "cexolocstring", - "value": {} + "value": { + "id": 1536 + } }, "ModelPart1": { "type": "byte", @@ -19385,9 +19440,10 @@ "value": 1 }, "LocalizedName": { - "id": 175, "type": "cexolocstring", - "value": {} + "value": { + "id": 175 + } }, "ModelPart1": { "type": "byte", @@ -19493,9 +19549,10 @@ "value": 1 }, "LocalizedName": { - "id": 1552, "type": "cexolocstring", - "value": {} + "value": { + "id": 1552 + } }, "ModelPart1": { "type": "byte", @@ -19601,9 +19658,10 @@ "value": 1 }, "LocalizedName": { - "id": 174, "type": "cexolocstring", - "value": {} + "value": { + "id": 174 + } }, "ModelPart1": { "type": "byte", @@ -19709,9 +19767,10 @@ "value": 1 }, "LocalizedName": { - "id": 173, "type": "cexolocstring", - "value": {} + "value": { + "id": 173 + } }, "ModelPart1": { "type": "byte", @@ -19817,9 +19876,10 @@ "value": 1 }, "LocalizedName": { - "id": 170, "type": "cexolocstring", - "value": {} + "value": { + "id": 170 + } }, "ModelPart1": { "type": "byte", @@ -19925,9 +19985,10 @@ "value": 1 }, "LocalizedName": { - "id": 171, "type": "cexolocstring", - "value": {} + "value": { + "id": 171 + } }, "ModelPart1": { "type": "byte", @@ -20033,9 +20094,10 @@ "value": 1 }, "LocalizedName": { - "id": 1555, "type": "cexolocstring", - "value": {} + "value": { + "id": 1555 + } }, "ModelPart1": { "type": "byte", @@ -20133,9 +20195,10 @@ "value": 1 }, "LocalizedName": { - "id": 1525, "type": "cexolocstring", - "value": {} + "value": { + "id": 1525 + } }, "ModelPart1": { "type": "byte", @@ -20233,9 +20296,10 @@ "value": 1 }, "LocalizedName": { - "id": 1553, "type": "cexolocstring", - "value": {} + "value": { + "id": 1553 + } }, "ModelPart1": { "type": "byte", @@ -20333,9 +20397,10 @@ "value": 1 }, "LocalizedName": { - "id": 1557, "type": "cexolocstring", - "value": {} + "value": { + "id": 1557 + } }, "ModelPart1": { "type": "byte", @@ -20433,9 +20498,10 @@ "value": 0 }, "DescIdentified": { - "id": 13410, "type": "cexolocstring", - "value": {} + "value": { + "id": 13410 + } }, "Description": { "type": "cexolocstring", @@ -20450,9 +20516,10 @@ "value": 1 }, "LocalizedName": { - "id": 13411, "type": "cexolocstring", - "value": {} + "value": { + "id": 13411 + } }, "ModelPart1": { "type": "byte", @@ -20574,9 +20641,10 @@ "value": 0 }, "DescIdentified": { - "id": 13448, "type": "cexolocstring", - "value": {} + "value": { + "id": 13448 + } }, "Description": { "type": "cexolocstring", @@ -20591,9 +20659,10 @@ "value": 1 }, "LocalizedName": { - "id": 13449, "type": "cexolocstring", - "value": {} + "value": { + "id": 13449 + } }, "ModelPart1": { "type": "byte", @@ -20715,9 +20784,10 @@ "value": 0 }, "DescIdentified": { - "id": 13412, "type": "cexolocstring", - "value": {} + "value": { + "id": 13412 + } }, "Description": { "type": "cexolocstring", @@ -20732,9 +20802,10 @@ "value": 1 }, "LocalizedName": { - "id": 13413, "type": "cexolocstring", - "value": {} + "value": { + "id": 13413 + } }, "ModelPart1": { "type": "byte", @@ -20856,9 +20927,10 @@ "value": 0 }, "DescIdentified": { - "id": 13424, "type": "cexolocstring", - "value": {} + "value": { + "id": 13424 + } }, "Description": { "type": "cexolocstring", @@ -20873,9 +20945,10 @@ "value": 1 }, "LocalizedName": { - "id": 13425, "type": "cexolocstring", - "value": {} + "value": { + "id": 13425 + } }, "ModelPart1": { "type": "byte", @@ -20997,9 +21070,10 @@ "value": 0 }, "DescIdentified": { - "id": 13440, "type": "cexolocstring", - "value": {} + "value": { + "id": 13440 + } }, "Description": { "type": "cexolocstring", @@ -21014,9 +21088,10 @@ "value": 1 }, "LocalizedName": { - "id": 13441, "type": "cexolocstring", - "value": {} + "value": { + "id": 13441 + } }, "ModelPart1": { "type": "byte", @@ -21138,9 +21213,10 @@ "value": 0 }, "DescIdentified": { - "id": 13420, "type": "cexolocstring", - "value": {} + "value": { + "id": 13420 + } }, "Description": { "type": "cexolocstring", @@ -21155,9 +21231,10 @@ "value": 1 }, "LocalizedName": { - "id": 13421, "type": "cexolocstring", - "value": {} + "value": { + "id": 13421 + } }, "ModelPart1": { "type": "byte", @@ -21279,9 +21356,10 @@ "value": 0 }, "DescIdentified": { - "id": 13418, "type": "cexolocstring", - "value": {} + "value": { + "id": 13418 + } }, "Description": { "type": "cexolocstring", @@ -21296,9 +21374,10 @@ "value": 1 }, "LocalizedName": { - "id": 13419, "type": "cexolocstring", - "value": {} + "value": { + "id": 13419 + } }, "ModelPart1": { "type": "byte", @@ -21420,9 +21499,10 @@ "value": 0 }, "DescIdentified": { - "id": 13426, "type": "cexolocstring", - "value": {} + "value": { + "id": 13426 + } }, "Description": { "type": "cexolocstring", @@ -21437,9 +21517,10 @@ "value": 1 }, "LocalizedName": { - "id": 13427, "type": "cexolocstring", - "value": {} + "value": { + "id": 13427 + } }, "ModelPart1": { "type": "byte", @@ -21561,9 +21642,10 @@ "value": 0 }, "DescIdentified": { - "id": 13438, "type": "cexolocstring", - "value": {} + "value": { + "id": 13438 + } }, "Description": { "type": "cexolocstring", @@ -21578,9 +21660,10 @@ "value": 1 }, "LocalizedName": { - "id": 13439, "type": "cexolocstring", - "value": {} + "value": { + "id": 13439 + } }, "ModelPart1": { "type": "byte", @@ -21702,9 +21785,10 @@ "value": 0 }, "DescIdentified": { - "id": 13436, "type": "cexolocstring", - "value": {} + "value": { + "id": 13436 + } }, "Description": { "type": "cexolocstring", @@ -21719,9 +21803,10 @@ "value": 1 }, "LocalizedName": { - "id": 13437, "type": "cexolocstring", - "value": {} + "value": { + "id": 13437 + } }, "ModelPart1": { "type": "byte", @@ -21870,9 +21955,10 @@ "value": 1 }, "LocalizedName": { - "id": 13675, "type": "cexolocstring", - "value": {} + "value": { + "id": 13675 + } }, "ModelPart1": { "type": "byte", @@ -22002,9 +22088,10 @@ "value": 1 }, "LocalizedName": { - "id": 13668, "type": "cexolocstring", - "value": {} + "value": { + "id": 13668 + } }, "ModelPart1": { "type": "byte", @@ -22134,9 +22221,10 @@ "value": 1 }, "LocalizedName": { - "id": 180, "type": "cexolocstring", - "value": {} + "value": { + "id": 180 + } }, "ModelPart1": { "type": "byte", @@ -22250,9 +22338,10 @@ "value": 0 }, "DescIdentified": { - "id": 2990, "type": "cexolocstring", - "value": {} + "value": { + "id": 2990 + } }, "Description": { "type": "cexolocstring", @@ -22267,9 +22356,10 @@ "value": 1 }, "LocalizedName": { - "id": 2982, "type": "cexolocstring", - "value": {} + "value": { + "id": 2982 + } }, "ModelPart1": { "type": "byte", @@ -22383,9 +22473,10 @@ "value": 0 }, "DescIdentified": { - "id": 2989, "type": "cexolocstring", - "value": {} + "value": { + "id": 2989 + } }, "Description": { "type": "cexolocstring", @@ -22400,9 +22491,10 @@ "value": 1 }, "LocalizedName": { - "id": 2981, "type": "cexolocstring", - "value": {} + "value": { + "id": 2981 + } }, "ModelPart1": { "type": "byte", @@ -22516,9 +22608,10 @@ "value": 0 }, "DescIdentified": { - "id": 2992, "type": "cexolocstring", - "value": {} + "value": { + "id": 2992 + } }, "Description": { "type": "cexolocstring", @@ -22533,9 +22626,10 @@ "value": 1 }, "LocalizedName": { - "id": 2984, "type": "cexolocstring", - "value": {} + "value": { + "id": 2984 + } }, "ModelPart1": { "type": "byte", @@ -22649,9 +22743,10 @@ "value": 0 }, "DescIdentified": { - "id": 2995, "type": "cexolocstring", - "value": {} + "value": { + "id": 2995 + } }, "Description": { "type": "cexolocstring", @@ -22666,9 +22761,10 @@ "value": 1 }, "LocalizedName": { - "id": 2987, "type": "cexolocstring", - "value": {} + "value": { + "id": 2987 + } }, "ModelPart1": { "type": "byte", @@ -22782,9 +22878,10 @@ "value": 0 }, "DescIdentified": { - "id": 2997, "type": "cexolocstring", - "value": {} + "value": { + "id": 2997 + } }, "Description": { "type": "cexolocstring", @@ -22799,9 +22896,10 @@ "value": 1 }, "LocalizedName": { - "id": 2988, "type": "cexolocstring", - "value": {} + "value": { + "id": 2988 + } }, "ModelPart1": { "type": "byte", @@ -22931,9 +23029,10 @@ "value": 1 }, "LocalizedName": { - "id": 13362, "type": "cexolocstring", - "value": {} + "value": { + "id": 13362 + } }, "ModelPart1": { "type": "byte", @@ -23059,7 +23158,7 @@ }, "ZPosition": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } } ] diff --git a/_module/git/thequietofthemin.git.json b/_module/git/thequietofthemin.git.json index a770cb05..ce2866a0 100644 --- a/_module/git/thequietofthemin.git.json +++ b/_module/git/thequietofthemin.git.json @@ -97,9 +97,10 @@ "value": 15 }, "Description": { - "id": 84173, "type": "cexolocstring", - "value": {} + "value": { + "id": 84173 + } }, "DisarmDC": { "type": "byte", @@ -146,9 +147,10 @@ "value": 0 }, "LocName": { - "id": 83428, "type": "cexolocstring", - "value": {} + "value": { + "id": 83428 + } }, "OnClosed": { "type": "resref", @@ -276,11 +278,11 @@ }, "Y": { "type": "float", - "value": 52.21608734130859 + "value": 52.216087341308594 }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -318,10 +320,10 @@ "value": 15 }, "Description": { - "id": 14586, "type": "cexolocstring", "value": { - "0": "The smell of woodsmoke draws you closer to the dancing fire. The sap of a birch log burns blue at its center." + "0": "The smell of woodsmoke draws you closer to the dancing fire. The sap of a birch log burns blue at its center.", + "id": 14586 } }, "DisarmDC": { @@ -369,9 +371,10 @@ "value": 0 }, "LocName": { - "id": 5700, "type": "cexolocstring", - "value": {} + "value": { + "id": 5700 + } }, "OnClosed": { "type": "resref", @@ -495,7 +498,7 @@ }, "X": { "type": "float", - "value": 41.19637298583984 + "value": 41.196372985839844 }, "Y": { "type": "float", @@ -503,7 +506,7 @@ }, "Z": { "type": "float", - "value": 9.5367431640625e-006 + "value": 0.0000095367431640625 } }, { @@ -541,9 +544,10 @@ "value": 15 }, "Description": { - "id": 68833, "type": "cexolocstring", - "value": {} + "value": { + "id": 68833 + } }, "DisarmDC": { "type": "byte", @@ -590,9 +594,10 @@ "value": 0 }, "LocName": { - "id": 68832, "type": "cexolocstring", - "value": {} + "value": { + "id": 68832 + } }, "OnClosed": { "type": "resref", @@ -720,7 +725,7 @@ }, "Y": { "type": "float", - "value": 48.89194488525391 + "value": 48.891944885253906 }, "Z": { "type": "float", @@ -762,9 +767,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -811,9 +817,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -937,7 +944,7 @@ }, "X": { "type": "float", - "value": 43.33951568603516 + "value": 43.339515686035156 }, "Y": { "type": "float", @@ -983,9 +990,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1032,9 +1040,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1158,11 +1167,11 @@ }, "X": { "type": "float", - "value": 52.57250595092773 + "value": 52.572505950927734 }, "Y": { "type": "float", - "value": 13.78011512756348 + "value": 13.780115127563477 }, "Z": { "type": "float", @@ -1204,9 +1213,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1253,9 +1263,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1383,11 +1394,11 @@ }, "Y": { "type": "float", - "value": 5.94110918045044 + "value": 5.9411091804504395 }, "Z": { "type": "float", - "value": 0.009999930858612061 + "value": 0.00999993085861206 } }, { @@ -1425,9 +1436,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1474,9 +1486,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1604,11 +1617,11 @@ }, "Y": { "type": "float", - "value": 10.84413909912109 + "value": 10.844139099121094 }, "Z": { "type": "float", - "value": -1.192092895507813e-007 + "value": -0.00000011920928955078125 } }, { @@ -1646,9 +1659,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -1695,9 +1709,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -1821,7 +1836,7 @@ }, "X": { "type": "float", - "value": 52.99975967407227 + "value": 52.999759674072266 }, "Y": { "type": "float", @@ -1829,7 +1844,7 @@ }, "Z": { "type": "float", - "value": 2.384185791015625e-007 + "value": 0.0000002384185791015625 } }, { @@ -1867,9 +1882,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -1916,9 +1932,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -2046,7 +2063,7 @@ }, "Y": { "type": "float", - "value": 10.37340545654297 + "value": 10.373405456542969 }, "Z": { "type": "float", @@ -2088,9 +2105,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -2137,9 +2155,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -2271,7 +2290,7 @@ }, "Z": { "type": "float", - "value": 0.0100000100210309 + "value": 0.010000010021030903 } }, { @@ -2309,9 +2328,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -2358,9 +2378,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -2484,11 +2505,11 @@ }, "X": { "type": "float", - "value": 18.31732559204102 + "value": 18.317325592041016 }, "Y": { "type": "float", - "value": 1.762819051742554 + "value": 1.7628190517425537 }, "Z": { "type": "float", @@ -2530,9 +2551,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -2579,9 +2601,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -2705,11 +2728,11 @@ }, "X": { "type": "float", - "value": 23.21756553649902 + "value": 23.217565536499023 }, "Y": { "type": "float", - "value": 2.530272006988525 + "value": 2.5302720069885254 }, "Z": { "type": "float", @@ -2751,9 +2774,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -2800,9 +2824,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -2930,7 +2955,7 @@ }, "Y": { "type": "float", - "value": 19.3975944519043 + "value": 19.397594451904297 }, "Z": { "type": "float", @@ -2972,9 +2997,10 @@ "value": 15 }, "Description": { - "id": 84192, "type": "cexolocstring", - "value": {} + "value": { + "id": 84192 + } }, "DisarmDC": { "type": "byte", @@ -3021,9 +3047,10 @@ "value": 0 }, "LocName": { - "id": 83445, "type": "cexolocstring", - "value": {} + "value": { + "id": 83445 + } }, "OnClosed": { "type": "resref", @@ -3147,7 +3174,7 @@ }, "X": { "type": "float", - "value": 40.07021331787109 + "value": 40.070213317871094 }, "Y": { "type": "float", @@ -3155,7 +3182,7 @@ }, "Z": { "type": "float", - "value": -8.568167686462402e-008 + "value": -8.568167686462402e-8 } }, { @@ -3193,9 +3220,10 @@ "value": 15 }, "Description": { - "id": 14649, "type": "cexolocstring", - "value": {} + "value": { + "id": 14649 + } }, "DisarmDC": { "type": "byte", @@ -3242,9 +3270,10 @@ "value": 0 }, "LocName": { - "id": 14650, "type": "cexolocstring", - "value": {} + "value": { + "id": 14650 + } }, "OnClosed": { "type": "resref", @@ -3372,7 +3401,7 @@ }, "Y": { "type": "float", - "value": 29.61967849731445 + "value": 29.619678497314453 }, "Z": { "type": "float", @@ -3414,9 +3443,10 @@ "value": 15 }, "Description": { - "id": 66749, "type": "cexolocstring", - "value": {} + "value": { + "id": 66749 + } }, "DisarmDC": { "type": "byte", @@ -3463,9 +3493,10 @@ "value": 0 }, "LocName": { - "id": 52999, "type": "cexolocstring", - "value": {} + "value": { + "id": 52999 + } }, "OnClosed": { "type": "resref", @@ -3589,7 +3620,7 @@ }, "X": { "type": "float", - "value": 34.29781341552734 + "value": 34.297813415527344 }, "Y": { "type": "float", @@ -3635,9 +3666,10 @@ "value": 15 }, "Description": { - "id": 66749, "type": "cexolocstring", - "value": {} + "value": { + "id": 66749 + } }, "DisarmDC": { "type": "byte", @@ -3684,9 +3716,10 @@ "value": 0 }, "LocName": { - "id": 52999, "type": "cexolocstring", - "value": {} + "value": { + "id": 52999 + } }, "OnClosed": { "type": "resref", @@ -3818,7 +3851,7 @@ }, "Z": { "type": "float", - "value": 0.01000005286186934 + "value": 0.010000052861869335 } }, { @@ -3856,9 +3889,10 @@ "value": 15 }, "Description": { - "id": 14649, "type": "cexolocstring", - "value": {} + "value": { + "id": 14649 + } }, "DisarmDC": { "type": "byte", @@ -3905,9 +3939,10 @@ "value": 0 }, "LocName": { - "id": 14650, "type": "cexolocstring", - "value": {} + "value": { + "id": 14650 + } }, "OnClosed": { "type": "resref", @@ -4077,9 +4112,10 @@ "value": 15 }, "Description": { - "id": 14649, "type": "cexolocstring", - "value": {} + "value": { + "id": 14649 + } }, "DisarmDC": { "type": "byte", @@ -4126,9 +4162,10 @@ "value": 0 }, "LocName": { - "id": 14650, "type": "cexolocstring", - "value": {} + "value": { + "id": 14650 + } }, "OnClosed": { "type": "resref", @@ -4256,11 +4293,11 @@ }, "Y": { "type": "float", - "value": 31.98800086975098 + "value": 31.988000869750977 }, "Z": { "type": "float", - "value": 0.01000010967254639 + "value": 0.010000109672546387 } }, { @@ -4298,9 +4335,10 @@ "value": 15 }, "Description": { - "id": 14649, "type": "cexolocstring", - "value": {} + "value": { + "id": 14649 + } }, "DisarmDC": { "type": "byte", @@ -4347,9 +4385,10 @@ "value": 0 }, "LocName": { - "id": 14650, "type": "cexolocstring", - "value": {} + "value": { + "id": 14650 + } }, "OnClosed": { "type": "resref", @@ -4473,7 +4512,7 @@ }, "X": { "type": "float", - "value": 42.45475006103516 + "value": 42.454750061035156 }, "Y": { "type": "float", @@ -4500,7 +4539,7 @@ }, "Bearing": { "type": "float", - "value": 1.570795893669128 + "value": 1.5707958936691284 }, "BodyBag": { "type": "byte", @@ -4519,9 +4558,10 @@ "value": 15 }, "Description": { - "id": 68852, "type": "cexolocstring", - "value": {} + "value": { + "id": 68852 + } }, "DisarmDC": { "type": "byte", @@ -4568,9 +4608,10 @@ "value": 0 }, "LocName": { - "id": 9208, "type": "cexolocstring", - "value": {} + "value": { + "id": 9208 + } }, "OnClosed": { "type": "resref", @@ -4740,9 +4781,10 @@ "value": 15 }, "Description": { - "id": 68872, "type": "cexolocstring", - "value": {} + "value": { + "id": 68872 + } }, "DisarmDC": { "type": "byte", @@ -4789,9 +4831,10 @@ "value": 0 }, "LocName": { - "id": 9188, "type": "cexolocstring", - "value": {} + "value": { + "id": 9188 + } }, "OnClosed": { "type": "resref", @@ -4919,7 +4962,7 @@ }, "Y": { "type": "float", - "value": 19.42643356323242 + "value": 19.426433563232422 }, "Z": { "type": "float", @@ -4961,9 +5004,10 @@ "value": 15 }, "Description": { - "id": 67632, "type": "cexolocstring", - "value": {} + "value": { + "id": 67632 + } }, "DisarmDC": { "type": "byte", @@ -5010,9 +5054,10 @@ "value": 0 }, "LocName": { - "id": 5725, "type": "cexolocstring", - "value": {} + "value": { + "id": 5725 + } }, "OnClosed": { "type": "resref", @@ -5136,11 +5181,11 @@ }, "X": { "type": "float", - "value": 18.11355590820313 + "value": 18.113555908203125 }, "Y": { "type": "float", - "value": 21.91219520568848 + "value": 21.912195205688477 }, "Z": { "type": "float", @@ -5182,9 +5227,10 @@ "value": 15 }, "Description": { - "id": 67632, "type": "cexolocstring", - "value": {} + "value": { + "id": 67632 + } }, "DisarmDC": { "type": "byte", @@ -5231,9 +5277,10 @@ "value": 0 }, "LocName": { - "id": 5725, "type": "cexolocstring", - "value": {} + "value": { + "id": 5725 + } }, "OnClosed": { "type": "resref", @@ -5361,7 +5408,7 @@ }, "Y": { "type": "float", - "value": 21.08381080627441 + "value": 21.083810806274414 }, "Z": { "type": "float", @@ -5403,9 +5450,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -5452,9 +5500,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -5582,7 +5631,7 @@ }, "Y": { "type": "float", - "value": 16.62683486938477 + "value": 16.626834869384766 }, "Z": { "type": "float", @@ -5624,9 +5673,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -5673,9 +5723,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -5803,11 +5854,11 @@ }, "Y": { "type": "float", - "value": 18.73380661010742 + "value": 18.733806610107422 }, "Z": { "type": "float", - "value": 5.960464477539063e-008 + "value": 5.960464477539063e-8 } }, { @@ -5845,9 +5896,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -5894,9 +5946,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -6024,7 +6077,7 @@ }, "Y": { "type": "float", - "value": 17.61887168884277 + "value": 17.618871688842773 }, "Z": { "type": "float", @@ -6066,9 +6119,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -6115,9 +6169,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -6245,11 +6300,11 @@ }, "Y": { "type": "float", - "value": 20.75842666625977 + "value": 20.758426666259766 }, "Z": { "type": "float", - "value": -1.192092895507813e-007 + "value": -0.00000011920928955078125 } }, { @@ -6287,9 +6342,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -6336,9 +6392,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -6470,7 +6527,7 @@ }, "Z": { "type": "float", - "value": 1.490116119384766e-008 + "value": 1.4901161193847656e-8 } }, { @@ -6508,9 +6565,10 @@ "value": 15 }, "Description": { - "id": 68944, "type": "cexolocstring", - "value": {} + "value": { + "id": 68944 + } }, "DisarmDC": { "type": "byte", @@ -6557,9 +6615,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -6729,9 +6788,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -6778,9 +6838,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -6912,7 +6973,7 @@ }, "Z": { "type": "float", - "value": 1.127251029014587 + "value": 1.1272510290145874 } }, { @@ -6950,9 +7011,10 @@ "value": 15 }, "Description": { - "id": 14746, "type": "cexolocstring", - "value": {} + "value": { + "id": 14746 + } }, "DisarmDC": { "type": "byte", @@ -6999,9 +7061,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -7171,9 +7234,10 @@ "value": 15 }, "Description": { - "id": 14747, "type": "cexolocstring", - "value": {} + "value": { + "id": 14747 + } }, "DisarmDC": { "type": "byte", @@ -7220,9 +7284,10 @@ "value": 0 }, "LocName": { - "id": 5743, "type": "cexolocstring", - "value": {} + "value": { + "id": 5743 + } }, "OnClosed": { "type": "resref", @@ -7346,7 +7411,7 @@ }, "X": { "type": "float", - "value": 43.41528701782227 + "value": 43.415287017822266 }, "Y": { "type": "float", @@ -7354,7 +7419,7 @@ }, "Z": { "type": "float", - "value": -1.192092895507813e-007 + "value": -0.00000011920928955078125 } }, { @@ -7392,9 +7457,10 @@ "value": 15 }, "Description": { - "id": 76388, "type": "cexolocstring", - "value": {} + "value": { + "id": 76388 + } }, "DisarmDC": { "type": "byte", @@ -7441,9 +7507,10 @@ "value": 0 }, "LocName": { - "id": 68943, "type": "cexolocstring", - "value": {} + "value": { + "id": 68943 + } }, "OnClosed": { "type": "resref", @@ -7613,10 +7680,10 @@ "value": 15 }, "Description": { - "id": 14533, "type": "cexolocstring", "value": { - "0": "A portal glows softly before you. You wonder where it leads." + "0": "A portal glows softly before you. You wonder where it leads.", + "id": 14533 } }, "DisarmDC": { @@ -7664,10 +7731,10 @@ "value": 0 }, "LocName": { - "id": 5670, "type": "cexolocstring", "value": { - "0": "Genesis Exit Portal" + "0": "Genesis Exit Portal", + "id": 5670 } }, "OnClosed": { diff --git a/_module/ifo/module.ifo.json b/_module/ifo/module.ifo.json index d059cc3b..3bbbf9bd 100644 --- a/_module/ifo/module.ifo.json +++ b/_module/ifo/module.ifo.json @@ -179,10 +179,14 @@ "type": "byte", "value": 6 }, + "Mod_DefaultBic": { + "type": "resref", + "value": "" + }, "Mod_Description": { "type": "cexolocstring", "value": { - "0": "Gamma Age v2\n\nPRC 4 + DMFI" + "0": "Gamma Age v2\n\nPRC8 + DMFI" } }, "Mod_DuskHour": { @@ -199,7 +203,7 @@ }, "Mod_Entry_Dir_Y": { "type": "float", - "value": 0.02454137429594994 + "value": 0.024541374295949936 }, "Mod_Entry_X": { "type": "float", @@ -242,70 +246,70 @@ "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_2das" + "value": "prc8_2das" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_scripts" + "value": "prc8_scripts" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_newspellbook" + "value": "prc8_nsb" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_spells" + "value": "prc8_spells" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_epicspells" + "value": "prc8_epicspells" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_psionics" + "value": "prc8_psionics" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_race" + "value": "prc8_race" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_textures" + "value": "prc8_textures" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_misc" + "value": "prc8_craft2das" } }, { "__struct_id": 8, "Mod_Hak": { "type": "cexostring", - "value": "prc_craft2das" + "value": "prc8_misc" } }, { @@ -333,7 +337,7 @@ }, "Mod_ID": { "type": "void", - "value": "c!K*\u0028JmN" + "value64": "Y5yYIapLp+oqHKb6Sm1Ong==" }, "Mod_IsSaveGame": { "type": "byte", @@ -341,7 +345,7 @@ }, "Mod_MinGameVer": { "type": "cexostring", - "value": "1.83" + "value": "1.89" }, "Mod_MinPerHour": { "type": "byte", @@ -385,6 +389,10 @@ "type": "resref", "value": "" }, + "Mod_OnNuiEvent": { + "type": "resref", + "value": "prc_onplayernui" + }, "Mod_OnPlrChat": { "type": "resref", "value": "hif_onplayerchat" @@ -401,6 +409,10 @@ "type": "resref", "value": "hif_onplayerequi" }, + "Mod_OnPlrGuiEvt": { + "type": "resref", + "value": "prc_onplayergui" + }, "Mod_OnPlrLvlUp": { "type": "resref", "value": "prc_levelup" @@ -409,6 +421,14 @@ "type": "resref", "value": "hif_onplayerrest" }, + "Mod_OnPlrTarget": { + "type": "resref", + "value": "prc_onplaytarget" + }, + "Mod_OnPlrTileAct": { + "type": "resref", + "value": "" + }, "Mod_OnPlrUnEqItm": { "type": "resref", "value": "hif_onplayeruneq" @@ -425,6 +445,10 @@ "type": "resref", "value": "prc_onuserdef" }, + "Mod_PartyControl": { + "type": "int", + "value": 0 + }, "Mod_StartDay": { "type": "byte", "value": 1 @@ -449,6 +473,10 @@ "type": "cexostring", "value": "MODULE" }, + "Mod_UUID": { + "type": "cexostring", + "value": "" + }, "Mod_Version": { "type": "dword", "value": 3 diff --git a/_module/itp/creaturepalcus.itp.json b/_module/itp/creaturepalcus.itp.json index d312d3b0..95534b2b 100644 --- a/_module/itp/creaturepalcus.itp.json +++ b/_module/itp/creaturepalcus.itp.json @@ -4779,7 +4779,7 @@ "__struct_id": 0, "CR": { "type": "float", - "value": 17.0 + "value": 16.0 }, "FACTION": { "type": "cexostring", @@ -8051,7 +8051,7 @@ "__struct_id": 0, "CR": { "type": "float", - "value": 0.3333333432674408 + "value": 84.0 }, "FACTION": { "type": "cexostring", diff --git a/_module/itp/itempalcus.itp.json b/_module/itp/itempalcus.itp.json index a4a017a8..d4edecec 100644 --- a/_module/itp/itempalcus.itp.json +++ b/_module/itp/itempalcus.itp.json @@ -5869,7 +5869,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 10 DV" + "value": "Particularités des méphites à 10 DV" }, "RESREF": { "type": "resref", @@ -5880,7 +5880,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 15 DV" + "value": "Particularités des méphites à 15 DV" }, "RESREF": { "type": "resref", @@ -5891,7 +5891,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 20 DV" + "value": "Particularités des méphites à 20 DV" }, "RESREF": { "type": "resref", @@ -5902,7 +5902,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 25 DV" + "value": "Particularités des méphites à 25 DV" }, "RESREF": { "type": "resref", @@ -5913,7 +5913,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 30 DV" + "value": "Particularités des méphites à 30 DV" }, "RESREF": { "type": "resref", @@ -5924,7 +5924,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 5 DV" + "value": "Particularités des méphites à 5 DV" }, "RESREF": { "type": "resref", @@ -5935,7 +5935,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Particularits des mphites 1 DV" + "value": "Particularités des méphitesà 1 DV" }, "RESREF": { "type": "resref", @@ -7662,7 +7662,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": " 0@P`pGenji's Coloring Book" + "value": " 0@P`p€‘¡°ÀÐàðÿGenji's Coloring Book" }, "RESREF": { "type": "resref", diff --git a/_module/itp/placeablepalcus.itp.json b/_module/itp/placeablepalcus.itp.json index 88395323..5abda6cc 100644 --- a/_module/itp/placeablepalcus.itp.json +++ b/_module/itp/placeablepalcus.itp.json @@ -579,7 +579,7 @@ "__struct_id": 0, "NAME": { "type": "cexostring", - "value": "Color Tag Generator" + "value": "Color Tag Generator" }, "RESREF": { "type": "resref", diff --git a/_module/ncs/ab_desctrig_fnf.ncs b/_module/ncs/ab_desctrig_fnf.ncs index c47b1cee..447e1765 100644 Binary files a/_module/ncs/ab_desctrig_fnf.ncs and b/_module/ncs/ab_desctrig_fnf.ncs differ diff --git a/_module/ncs/ab_desctrig_mult.ncs b/_module/ncs/ab_desctrig_mult.ncs index 0e857309..3f590ccb 100644 Binary files a/_module/ncs/ab_desctrig_mult.ncs and b/_module/ncs/ab_desctrig_mult.ncs differ diff --git a/_module/ncs/array_example.ncs b/_module/ncs/array_example.ncs index 4fbc703b..ea9aa657 100644 Binary files a/_module/ncs/array_example.ncs and b/_module/ncs/array_example.ncs differ diff --git a/_module/ncs/autoclose_door.ncs b/_module/ncs/autoclose_door.ncs index 1ef3e2f5..68d6b11a 100644 Binary files a/_module/ncs/autoclose_door.ncs and b/_module/ncs/autoclose_door.ncs differ diff --git a/_module/ncs/dmfi_activate.ncs b/_module/ncs/dmfi_activate.ncs index bf7595be..f238a44a 100644 Binary files a/_module/ncs/dmfi_activate.ncs and b/_module/ncs/dmfi_activate.ncs differ diff --git a/_module/ncs/dmfi_db_biow_inc.ncs b/_module/ncs/dmfi_db_biow_inc.ncs deleted file mode 100644 index ecb1c72d..00000000 Binary files a/_module/ncs/dmfi_db_biow_inc.ncs and /dev/null differ diff --git a/_module/ncs/dmfi_db_inc.ncs b/_module/ncs/dmfi_db_inc.ncs deleted file mode 100644 index ecb1c72d..00000000 Binary files a/_module/ncs/dmfi_db_inc.ncs and /dev/null differ diff --git a/_module/ncs/dmfi_db_nbde_inc.ncs b/_module/ncs/dmfi_db_nbde_inc.ncs deleted file mode 100644 index ecb1c72d..00000000 Binary files a/_module/ncs/dmfi_db_nbde_inc.ncs and /dev/null differ diff --git a/_module/ncs/dmfi_dmw_inc.ncs b/_module/ncs/dmfi_dmw_inc.ncs deleted file mode 100644 index 0a7ef578..00000000 Binary files a/_module/ncs/dmfi_dmw_inc.ncs and /dev/null differ diff --git a/_module/ncs/dmfi_execute.ncs b/_module/ncs/dmfi_execute.ncs index f3b9fd34..1d657c60 100644 Binary files a/_module/ncs/dmfi_execute.ncs and b/_module/ncs/dmfi_execute.ncs differ diff --git a/_module/ncs/dmfi_onclienter.ncs b/_module/ncs/dmfi_onclienter.ncs index db8afe5e..01cb2c99 100644 Binary files a/_module/ncs/dmfi_onclienter.ncs and b/_module/ncs/dmfi_onclienter.ncs differ diff --git a/_module/ncs/dmfi_onplychat.ncs b/_module/ncs/dmfi_onplychat.ncs index 12a8d444..174ee1e4 100644 Binary files a/_module/ncs/dmfi_onplychat.ncs and b/_module/ncs/dmfi_onplychat.ncs differ diff --git a/_module/ncs/dmfi_onrest.ncs b/_module/ncs/dmfi_onrest.ncs index 846c04d3..e64e3189 100644 Binary files a/_module/ncs/dmfi_onrest.ncs and b/_module/ncs/dmfi_onrest.ncs differ diff --git a/_module/ncs/dmfi_plychat_exe.ncs b/_module/ncs/dmfi_plychat_exe.ncs index e203d0dc..2736dc1f 100644 Binary files a/_module/ncs/dmfi_plychat_exe.ncs and b/_module/ncs/dmfi_plychat_exe.ncs differ diff --git a/_module/ncs/dmfi_plychat_inc.ncs b/_module/ncs/dmfi_plychat_inc.ncs deleted file mode 100644 index 8593a337..00000000 Binary files a/_module/ncs/dmfi_plychat_inc.ncs and /dev/null differ diff --git a/_module/ncs/dmfi_unact_nam02.ncs b/_module/ncs/dmfi_unact_nam02.ncs index 5849bef4..d4485abc 100644 Binary files a/_module/ncs/dmfi_unact_nam02.ncs and b/_module/ncs/dmfi_unact_nam02.ncs differ diff --git a/_module/ncs/dmfi_unact_nam04.ncs b/_module/ncs/dmfi_unact_nam04.ncs index 70b1ba75..cd852016 100644 Binary files a/_module/ncs/dmfi_unact_nam04.ncs and b/_module/ncs/dmfi_unact_nam04.ncs differ diff --git a/_module/ncs/dmfi_unact_nam06.ncs b/_module/ncs/dmfi_unact_nam06.ncs index 6e1e2503..7ce8c50b 100644 Binary files a/_module/ncs/dmfi_unact_nam06.ncs and b/_module/ncs/dmfi_unact_nam06.ncs differ diff --git a/_module/ncs/dmfi_unact_nam08.ncs b/_module/ncs/dmfi_unact_nam08.ncs index 70b1ba75..cd852016 100644 Binary files a/_module/ncs/dmfi_unact_nam08.ncs and b/_module/ncs/dmfi_unact_nam08.ncs differ diff --git a/_module/ncs/dmfi_univ_listen.ncs b/_module/ncs/dmfi_univ_listen.ncs index 2b136fd7..24881fe6 100644 Binary files a/_module/ncs/dmfi_univ_listen.ncs and b/_module/ncs/dmfi_univ_listen.ncs differ diff --git a/_module/ncs/dmfi_voice1.ncs b/_module/ncs/dmfi_voice1.ncs index 4c8372e9..fc822453 100644 Binary files a/_module/ncs/dmfi_voice1.ncs and b/_module/ncs/dmfi_voice1.ncs differ diff --git a/_module/ncs/dmfi_x_afflict.ncs b/_module/ncs/dmfi_x_afflict.ncs index 7884102b..7ba360f9 100644 Binary files a/_module/ncs/dmfi_x_afflict.ncs and b/_module/ncs/dmfi_x_afflict.ncs differ diff --git a/_module/ncs/dmfi_x_emote.ncs b/_module/ncs/dmfi_x_emote.ncs index f9395026..9810253a 100644 Binary files a/_module/ncs/dmfi_x_emote.ncs and b/_module/ncs/dmfi_x_emote.ncs differ diff --git a/_module/ncs/dmfi_x_fx.ncs b/_module/ncs/dmfi_x_fx.ncs index b3583c08..42792d22 100644 Binary files a/_module/ncs/dmfi_x_fx.ncs and b/_module/ncs/dmfi_x_fx.ncs differ diff --git a/_module/ncs/gz_chair_use.ncs b/_module/ncs/gz_chair_use.ncs index 7fb555ea..56755b58 100644 Binary files a/_module/ncs/gz_chair_use.ncs and b/_module/ncs/gz_chair_use.ncs differ diff --git a/_module/ncs/habd_include.ncs b/_module/ncs/habd_include.ncs deleted file mode 100644 index 4e2a7e2e..00000000 Binary files a/_module/ncs/habd_include.ncs and /dev/null differ diff --git a/_module/ncs/habd_onpcdeath.ncs b/_module/ncs/habd_onpcdeath.ncs index afd023e7..4e4bd431 100644 Binary files a/_module/ncs/habd_onpcdeath.ncs and b/_module/ncs/habd_onpcdeath.ncs differ diff --git a/_module/ncs/habd_onpcdying.ncs b/_module/ncs/habd_onpcdying.ncs index cd8c57f7..1757ccff 100644 Binary files a/_module/ncs/habd_onpcdying.ncs and b/_module/ncs/habd_onpcdying.ncs differ diff --git a/_module/ncs/habd_onpcrespawn.ncs b/_module/ncs/habd_onpcrespawn.ncs index 23540946..225483fa 100644 Binary files a/_module/ncs/habd_onpcrespawn.ncs and b/_module/ncs/habd_onpcrespawn.ncs differ diff --git a/_module/ncs/nw_c2_default4.ncs b/_module/ncs/nw_c2_default4.ncs index 33ead433..15bb62fd 100644 Binary files a/_module/ncs/nw_c2_default4.ncs and b/_module/ncs/nw_c2_default4.ncs differ diff --git a/_module/ncs/nw_c2_default5.ncs b/_module/ncs/nw_c2_default5.ncs index 7a8b632c..5b0a10c0 100644 Binary files a/_module/ncs/nw_c2_default5.ncs and b/_module/ncs/nw_c2_default5.ncs differ diff --git a/_module/ncs/nw_s0_raisdead.ncs b/_module/ncs/nw_s0_raisdead.ncs index 62be77da..72faa252 100644 Binary files a/_module/ncs/nw_s0_raisdead.ncs and b/_module/ncs/nw_s0_raisdead.ncs differ diff --git a/_module/ncs/nw_s0_resserec.ncs b/_module/ncs/nw_s0_resserec.ncs index 5eff9f24..676a1a7c 100644 Binary files a/_module/ncs/nw_s0_resserec.ncs and b/_module/ncs/nw_s0_resserec.ncs differ diff --git a/_module/ncs/on_pubsub.ncs b/_module/ncs/on_pubsub.ncs index 2c7c3d2b..6b9dd2fb 100644 Binary files a/_module/ncs/on_pubsub.ncs and b/_module/ncs/on_pubsub.ncs differ diff --git a/_module/ncs/re_common_blkd.ncs b/_module/ncs/re_common_blkd.ncs index 8fab3a98..adefd3f1 100644 Binary files a/_module/ncs/re_common_blkd.ncs and b/_module/ncs/re_common_blkd.ncs differ diff --git a/_module/ncs/re_common_spawn.ncs b/_module/ncs/re_common_spawn.ncs index 1b129154..716b26c3 100644 Binary files a/_module/ncs/re_common_spawn.ncs and b/_module/ncs/re_common_spawn.ncs differ diff --git a/_module/ncs/re_commonspwnrhb.ncs b/_module/ncs/re_commonspwnrhb.ncs index cfb4f6d0..db424e74 100644 Binary files a/_module/ncs/re_commonspwnrhb.ncs and b/_module/ncs/re_commonspwnrhb.ncs differ diff --git a/_module/ncs/re_levspawnerhb.ncs b/_module/ncs/re_levspawnerhb.ncs index b66efe5d..3873768e 100644 Binary files a/_module/ncs/re_levspawnerhb.ncs and b/_module/ncs/re_levspawnerhb.ncs differ diff --git a/_module/ncs/re_mmorpghb.ncs b/_module/ncs/re_mmorpghb.ncs index ef345d01..2559a50f 100644 Binary files a/_module/ncs/re_mmorpghb.ncs and b/_module/ncs/re_mmorpghb.ncs differ diff --git a/_module/ncs/re_modulehb.ncs b/_module/ncs/re_modulehb.ncs index 6c74a479..724b5493 100644 Binary files a/_module/ncs/re_modulehb.ncs and b/_module/ncs/re_modulehb.ncs differ diff --git a/_module/ncs/re_onrest.ncs b/_module/ncs/re_onrest.ncs index a6efbce5..a3279b84 100644 Binary files a/_module/ncs/re_onrest.ncs and b/_module/ncs/re_onrest.ncs differ diff --git a/_module/ncs/re_or.ncs b/_module/ncs/re_or.ncs index fbb3bbd5..7b7028ee 100644 Binary files a/_module/ncs/re_or.ncs and b/_module/ncs/re_or.ncs differ diff --git a/_module/ncs/re_pwrespawnerhb.ncs b/_module/ncs/re_pwrespawnerhb.ncs index 6c75c7be..e4e5ad41 100644 Binary files a/_module/ncs/re_pwrespawnerhb.ncs and b/_module/ncs/re_pwrespawnerhb.ncs differ diff --git a/_module/ncs/re_spawnerhb.ncs b/_module/ncs/re_spawnerhb.ncs index c005b9b0..e1091c83 100644 Binary files a/_module/ncs/re_spawnerhb.ncs and b/_module/ncs/re_spawnerhb.ncs differ diff --git a/_module/ncs/re_spawnerhb_v2.ncs b/_module/ncs/re_spawnerhb_v2.ncs index 1d4404d6..40b2ac65 100644 Binary files a/_module/ncs/re_spawnerhb_v2.ncs and b/_module/ncs/re_spawnerhb_v2.ncs differ diff --git a/_module/ncs/re_widget1.ncs b/_module/ncs/re_widget1.ncs index 38c223ad..8a1c619b 100644 Binary files a/_module/ncs/re_widget1.ncs and b/_module/ncs/re_widget1.ncs differ diff --git a/_module/ncs/re_widget12.ncs b/_module/ncs/re_widget12.ncs index 6cf66843..585dc8e6 100644 Binary files a/_module/ncs/re_widget12.ncs and b/_module/ncs/re_widget12.ncs differ diff --git a/_module/ncs/re_widget13.ncs b/_module/ncs/re_widget13.ncs index 84c85045..3acf61b9 100644 Binary files a/_module/ncs/re_widget13.ncs and b/_module/ncs/re_widget13.ncs differ diff --git a/_module/ncs/re_widget18.ncs b/_module/ncs/re_widget18.ncs index 5ba6cfad..95296a66 100644 Binary files a/_module/ncs/re_widget18.ncs and b/_module/ncs/re_widget18.ncs differ diff --git a/_module/ncs/re_widget20.ncs b/_module/ncs/re_widget20.ncs index c49117d6..c7a7d1f5 100644 Binary files a/_module/ncs/re_widget20.ncs and b/_module/ncs/re_widget20.ncs differ diff --git a/_module/ncs/re_widget3.ncs b/_module/ncs/re_widget3.ncs index f9bf496f..495de490 100644 Binary files a/_module/ncs/re_widget3.ncs and b/_module/ncs/re_widget3.ncs differ diff --git a/_module/ncs/sm_on_act.ncs b/_module/ncs/sm_on_act.ncs index a41ad910..435f8202 100644 Binary files a/_module/ncs/sm_on_act.ncs and b/_module/ncs/sm_on_act.ncs differ diff --git a/_module/ncs/sm_on_client_ent.ncs b/_module/ncs/sm_on_client_ent.ncs index 1164a576..326d8960 100644 Binary files a/_module/ncs/sm_on_client_ent.ncs and b/_module/ncs/sm_on_client_ent.ncs differ diff --git a/_module/ncs/sm_on_client_lv.ncs b/_module/ncs/sm_on_client_lv.ncs index 8aedc784..eda485d5 100644 Binary files a/_module/ncs/sm_on_client_lv.ncs and b/_module/ncs/sm_on_client_lv.ncs differ diff --git a/_module/ncs/sm_on_death.ncs b/_module/ncs/sm_on_death.ncs index 09a80bd9..d9b60f91 100644 Binary files a/_module/ncs/sm_on_death.ncs and b/_module/ncs/sm_on_death.ncs differ diff --git a/_module/ncs/sm_on_dying.ncs b/_module/ncs/sm_on_dying.ncs index 944750a6..6e85426d 100644 Binary files a/_module/ncs/sm_on_dying.ncs and b/_module/ncs/sm_on_dying.ncs differ diff --git a/_module/ncs/sm_on_mod_ld.ncs b/_module/ncs/sm_on_mod_ld.ncs index 57659350..2d564a35 100644 Binary files a/_module/ncs/sm_on_mod_ld.ncs and b/_module/ncs/sm_on_mod_ld.ncs differ diff --git a/_module/ncs/sm_on_respawn.ncs b/_module/ncs/sm_on_respawn.ncs index 39650fb5..b301a794 100644 Binary files a/_module/ncs/sm_on_respawn.ncs and b/_module/ncs/sm_on_respawn.ncs differ diff --git a/_module/ncs/sm_on_rest.ncs b/_module/ncs/sm_on_rest.ncs index 8bd7e4bf..79f9cc8f 100644 Binary files a/_module/ncs/sm_on_rest.ncs and b/_module/ncs/sm_on_rest.ncs differ diff --git a/_module/ncs/sm_on_unacquire.ncs b/_module/ncs/sm_on_unacquire.ncs index 2db1cab8..43f0ceef 100644 Binary files a/_module/ncs/sm_on_unacquire.ncs and b/_module/ncs/sm_on_unacquire.ncs differ diff --git a/_module/ncs/tz_ed_ondeath.ncs b/_module/ncs/tz_ed_ondeath.ncs index c6206732..6181dc4d 100644 Binary files a/_module/ncs/tz_ed_ondeath.ncs and b/_module/ncs/tz_ed_ondeath.ncs differ diff --git a/_module/nss/inc_array.nss b/_module/nss/inc_array.nss index 31370c45..7671723d 100644 --- a/_module/nss/inc_array.nss +++ b/_module/nss/inc_array.nss @@ -1,5 +1,3 @@ -#include "nwnx_regex" - /// @addtogroup data Data /// @brief Provides a number of data structures for NWN code to use (simulated arrays) /// @{ @@ -131,7 +129,7 @@ string GetTableName(string tag, object obj=OBJECT_INVALID, int bare=FALSE) { string sName = "array_" + ObjectToString(obj) + "_" + tag; // Remove invalid characters from the tag rather than failing. - string sCleansed = NWNX_Regex_Replace(sName, "[^A-Za-z0-9_\$@#]", ""); + string sCleansed = RegExpReplace("[^A-Za-z0-9_\$@#]", sName, ""); // But provide some feedback. if (GetStringLength(sName) != GetStringLength(sCleansed) || GetStringLength(sCleansed) == 0) { WriteTimestampedLogEntry("WARNING: Invalid table name detected for array with tag <" + tag + ">. Only characters (a-zA-Z0-9), _, @, $ and # are allowed. Using <"+sCleansed+"> instead."); @@ -150,13 +148,13 @@ string GetTableName(string tag, object obj=OBJECT_INVALID, int bare=FALSE) { string GetTableCreateString(string tag, object obj=OBJECT_INVALID) { // for simplicity sake, everything is turned into a string. Possible enhancement // to create specific tables for int/float/whatever. - return "CREATE TABLE IF NOT EXISTS " + GetTableName(tag, obj) + " ( ind INTEGER PRIMARY KEY, value TEXT )"; + return "CREATE TABLE IF NOT EXISTS " + GetTableName(tag, obj) + " ( ind INTEGER, value TEXT )"; } int TableExists(string tag, object obj=OBJECT_INVALID) { - string stmt = "SELECT name FROM sqlite_master WHERE type = 'table' AND name = @tablename"; + string stmt = "SELECT name FROM sqlite_master WHERE type = 'table' AND name = @tablename;"; sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); - SqlBindString(sqlQuery, "@tablename", GetTableName(tag, obj)); + SqlBindString(sqlQuery, "@tablename", GetTableName(tag, obj, TRUE)); return SqlStep(sqlQuery); } @@ -302,8 +300,15 @@ void Array_Erase(string tag, int index, object obj=OBJECT_INVALID) // if not found, return INVALID_INDEX int Array_Find_Str(string tag, string element, object obj=OBJECT_INVALID) { - string stmt = "SELECT IFNULL(MIN(ind),@invalid_index) FROM "+GetTableName(tag, obj)+" WHERE value = @element"; - sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + string stmt; + sqlquery sqlQuery; + + // Just create it before trying to select in case it doesn't exist yet. + CreateArrayTable(tag, obj); + + stmt = "SELECT IFNULL(MIN(ind),@invalid_index) FROM "+GetTableName(tag, obj)+" WHERE value = @element"; + sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); + SqlBindInt(sqlQuery, "@invalid_index", INVALID_INDEX); SqlBindString(sqlQuery, "@element", element); if ( SqlStep(sqlQuery) ) { @@ -369,6 +374,9 @@ void Array_Insert_Obj(string tag, int index, object element, object obj=OBJECT_I // Insert a new element at the end of the array. void Array_PushBack_Str(string tag, string element, object obj=OBJECT_INVALID) { + // Create it before trhing to INSERT into it. If it already exists, this is a no-op. + CreateArrayTable(tag, obj); + // If rowCount = 10, indexes are from 0 to 9, so this becomes the 11th entry at index 10. int rowCount = GetRowCount(tag, obj); @@ -466,7 +474,7 @@ void Array_Set_Str(string tag, int index, string element, object obj=OBJECT_INVA if (index >= 0 && index <= rows) { string stmt = "UPDATE "+GetTableName(tag, obj)+" SET value = @element WHERE ind = @ind"; sqlquery sqlQuery = SqlPrepareQueryObject(GetModule(), stmt); - SqlBindInt(sqlQuery, "@ind", rows); + SqlBindInt(sqlQuery, "@ind", index); SqlBindString(sqlQuery, "@element", element); SqlStep(sqlQuery); } diff --git a/_module/nss/inc_sqlite_time.nss b/_module/nss/inc_sqlite_time.nss new file mode 100644 index 00000000..f8dddeb4 --- /dev/null +++ b/_module/nss/inc_sqlite_time.nss @@ -0,0 +1,68 @@ +/// @addtogroup time Time +/// @brief Provides various time related functions. +/// @{ +/// @file inc_sqlite_time.nss + +/// @brief Returns the current time formatted according to the provided sqlite date time format string. +/// @param format Format string as used by sqlites STRFTIME(). +/// @return The current time in the requested format. Empty string on error. +string SQLite_GetFormattedSystemTime(string format); + +/// @return Returns the number of seconds since midnight on January 1, 1970. +int SQLite_GetTimeStamp(); + +/// @brief A millisecond timestamp +struct SQLite_MillisecondTimeStamp +{ + int seconds; ///< Seconds since epoch + int milliseconds; ///< Milliseconds +}; + +/// @remark For mircosecond timestamps use NWNX_Utility_GetHighResTimeStamp(). +/// @return Returns the number of milliseconds since midnight on January 1, 1970. +struct SQLite_MillisecondTimeStamp SQLite_GetMillisecondTimeStamp(); + +/// @brief Returns the current date. +/// @return The date in the format (mm/dd/yyyy). +string SQLite_GetSystemDate(); + +/// @brief Returns current time. +/// @return The current time in the format (24:mm:ss). +string SQLite_GetSystemTime(); + +/// @} + +string SQLite_GetFormattedSystemTime(string format) +{ + sqlquery query = SqlPrepareQueryObject(GetModule(), "SELECT STRFTIME(@format, 'now', 'localtime')"); + SqlBindString(query, "@format", format); + SqlStep(query); // sqlite returns NULL for invalid format in STRFTIME() + return SqlGetString(query, 0); +} + +int SQLite_GetTimeStamp() +{ + sqlquery query = SqlPrepareQueryObject(GetModule(), "SELECT STRFTIME('%s', 'now')"); + SqlStep(query); + return SqlGetInt(query, 0); +} + +struct SQLite_MillisecondTimeStamp SQLite_GetMillisecondTimeStamp() +{ + sqlquery query = SqlPrepareQueryObject(GetModule(), "SELECT STRFTIME('%s', 'now'), SUBSTR(STRFTIME('%f', 'now'), 4)"); + SqlStep(query); + struct SQLite_MillisecondTimeStamp t; + t.seconds = SqlGetInt(query, 0); + t.milliseconds = SqlGetInt(query, 1); + return t; +} + +string SQLite_GetSystemDate() +{ + return SQLite_GetFormattedSystemTime("%m/%d/%Y"); +} + +string SQLite_GetSystemTime() +{ + return SQLite_GetFormattedSystemTime("%H:%M:%S"); +} diff --git a/_module/nss/nwnx.nss b/_module/nss/nwnx.nss index fe8942cf..f7648213 100644 --- a/_module/nss/nwnx.nss +++ b/_module/nss/nwnx.nss @@ -3,111 +3,135 @@ /// @{ /// @file nwnx.nss +const string NWNX_Core = "NWNX_Core"; ///< @private + /// @brief Scripting interface to NWNX. /// @param pluginName The plugin name. /// @param functionName The function name (do not include NWNX_Plugin_). void NWNX_CallFunction(string pluginName, string functionName); /// @brief Pushes the specified type to the c++ side -/// @param pluginName The plugin name. -/// @param functionName The function name (do not include NWNX_Plugin_). /// @param value The value of specified type to push. -void NWNX_PushArgumentInt(string pluginName, string functionName, int value); +void NWNX_PushArgumentInt(int value); /// @copydoc NWNX_PushArgumentInt() -void NWNX_PushArgumentFloat(string pluginName, string functionName, float value); +void NWNX_PushArgumentFloat(float value); /// @copydoc NWNX_PushArgumentInt() -void NWNX_PushArgumentObject(string pluginName, string functionName, object value); +void NWNX_PushArgumentObject(object value); /// @copydoc NWNX_PushArgumentInt() -void NWNX_PushArgumentString(string pluginName, string functionName, string value); +void NWNX_PushArgumentString(string value); /// @copydoc NWNX_PushArgumentInt() -void NWNX_PushArgumentEffect(string pluginName, string functionName, effect value); +void NWNX_PushArgumentEffect(effect value); /// @copydoc NWNX_PushArgumentInt() -void NWNX_PushArgumentItemProperty(string pluginName, string functionName, itemproperty value); +void NWNX_PushArgumentItemProperty(itemproperty value); +/// @copydoc NWNX_PushArgumentInt() +void NWNX_PushArgumentJson(json value); /// @brief Returns the specified type from the c++ side -/// @param pluginName The plugin name. -/// @param functionName The function name (do not include NWNX_Plugin_). /// @return The value of specified type. -int NWNX_GetReturnValueInt(string pluginName, string functionName); +int NWNX_GetReturnValueInt(); /// @copydoc NWNX_GetReturnValueInt() -float NWNX_GetReturnValueFloat(string pluginName, string functionName); +float NWNX_GetReturnValueFloat(); /// @copydoc NWNX_GetReturnValueInt() -object NWNX_GetReturnValueObject(string pluginName, string functionName); +object NWNX_GetReturnValueObject(); /// @copydoc NWNX_GetReturnValueInt() -string NWNX_GetReturnValueString(string pluginName, string functionName); +string NWNX_GetReturnValueString(); /// @copydoc NWNX_GetReturnValueInt() -effect NWNX_GetReturnValueEffect(string pluginName, string functionName); +effect NWNX_GetReturnValueEffect(); /// @copydoc NWNX_GetReturnValueInt() -itemproperty NWNX_GetReturnValueItemProperty(string pluginName, string functionName); +itemproperty NWNX_GetReturnValueItemProperty(); +/// @copydoc NWNX_GetReturnValueInt() +json NWNX_GetReturnValueJson(); + +/// @brief Determines if the given plugin exists and is enabled. +/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNX_CallFunction, NWNX_PushArgumentX +/// @note Example usage: NWNX_PluginExists("NWNX_Creature"); +/// @return TRUE if the plugin exists and is enabled, otherwise FALSE. +int NWNX_PluginExists(string sPlugin); /// @private -string NWNX_INTERNAL_BuildString(string pluginName, string functionName, string operation) -{ - return "NWNXEE!ABIv2!" + pluginName + "!" + functionName + "!" + operation; -} +const string NWNX_PUSH = "NWNXEE!ABIv2!X!Y!PUSH"; +const string NWNX_POP = "NWNXEE!ABIv2!X!Y!POP"; /// @} void NWNX_CallFunction(string pluginName, string functionName) { - PlaySound(NWNX_INTERNAL_BuildString(pluginName, functionName, "CALL")); + PlaySound("NWNXEE!ABIv2!" + pluginName + "!" + functionName + "!CALL"); } -void NWNX_PushArgumentInt(string pluginName, string functionName, int value) +void NWNX_PushArgumentInt(int value) { - SetLocalInt(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); + SetLocalInt(OBJECT_INVALID, NWNX_PUSH, value); } -void NWNX_PushArgumentFloat(string pluginName, string functionName, float value) +void NWNX_PushArgumentFloat(float value) { - SetLocalFloat(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); + SetLocalFloat(OBJECT_INVALID, NWNX_PUSH, value); } -void NWNX_PushArgumentObject(string pluginName, string functionName, object value) +void NWNX_PushArgumentObject(object value) { - SetLocalObject(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); + SetLocalObject(OBJECT_INVALID, NWNX_PUSH, value); } -void NWNX_PushArgumentString(string pluginName, string functionName, string value) +void NWNX_PushArgumentString(string value) { - SetLocalString(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); + SetLocalString(OBJECT_INVALID, NWNX_PUSH, value); } -void NWNX_PushArgumentEffect(string pluginName, string functionName, effect value) +void NWNX_PushArgumentEffect(effect value) { - TagEffect(value, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH")); + TagEffect(value, NWNX_PUSH); } -void NWNX_PushArgumentItemProperty(string pluginName, string functionName, itemproperty value) +void NWNX_PushArgumentItemProperty(itemproperty value) { - TagItemProperty(value, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH")); + TagItemProperty(value, NWNX_PUSH); } -int NWNX_GetReturnValueInt(string pluginName, string functionName) +void NWNX_PushArgumentJson(json value) { - return GetLocalInt(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + SetLocalJson(OBJECT_INVALID, NWNX_PUSH, value); } -float NWNX_GetReturnValueFloat(string pluginName, string functionName) +int NWNX_GetReturnValueInt() { - return GetLocalFloat(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + return GetLocalInt(OBJECT_INVALID, NWNX_POP); } -object NWNX_GetReturnValueObject(string pluginName, string functionName) +float NWNX_GetReturnValueFloat() { - return GetLocalObject(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + return GetLocalFloat(OBJECT_INVALID, NWNX_POP); } -string NWNX_GetReturnValueString(string pluginName, string functionName) +object NWNX_GetReturnValueObject() { - return GetLocalString(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + return GetLocalObject(OBJECT_INVALID, NWNX_POP); } -effect NWNX_GetReturnValueEffect(string pluginName, string functionName) +string NWNX_GetReturnValueString() +{ + return GetLocalString(OBJECT_INVALID, NWNX_POP); +} + +effect NWNX_GetReturnValueEffect() { effect e; - return TagEffect(e, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + return TagEffect(e, NWNX_POP); } -itemproperty NWNX_GetReturnValueItemProperty(string pluginName, string functionName) +itemproperty NWNX_GetReturnValueItemProperty() { itemproperty ip; - return TagItemProperty(ip, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); + return TagItemProperty(ip, NWNX_POP); +} + +json NWNX_GetReturnValueJson() +{ + return GetLocalJson(OBJECT_INVALID, NWNX_POP); +} + +int NWNX_PluginExists(string sPlugin) +{ + string sFunc = "PluginExists"; + NWNX_PushArgumentString(sPlugin); + NWNX_CallFunction(NWNX_Core, sFunc); + return NWNX_GetReturnValueInt(); } diff --git a/_module/nss/nwnx_admin.nss b/_module/nss/nwnx_admin.nss index bbb43df9..42a17d65 100644 --- a/_module/nss/nwnx_admin.nss +++ b/_module/nss/nwnx_admin.nss @@ -2,7 +2,6 @@ /// @brief Various admin related functions /// @{ /// @file nwnx_admin.nss -#include "nwnx" const string NWNX_Administration = "NWNX_Administration"; ///< @private @@ -10,16 +9,16 @@ const string NWNX_Administration = "NWNX_Administration"; ///< @private /// @anchor admin_opts /// /// @{ -const int NWNX_ADMINISTRATION_OPTION_ALL_KILLABLE = 0; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_NON_PARTY_KILLABLE = 1; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_REQUIRE_RESURRECTION = 2; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_LOSE_STOLEN_ITEMS = 3; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_LOSE_ITEMS = 4; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_LOSE_EXP = 5; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_LOSE_GOLD = 6; // TRUE/FALSE -const int NWNX_ADMINISTRATION_OPTION_LOSE_GOLD_NUM = 7; -const int NWNX_ADMINISTRATION_OPTION_LOSE_EXP_NUM = 8; -const int NWNX_ADMINISTRATION_OPTION_LOSE_ITEMS_NUM = 9; +const int NWNX_ADMINISTRATION_OPTION_ALL_KILLABLE = 0; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_NON_PARTY_KILLABLE = 1; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_REQUIRE_RESURRECTION = 2; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_STOLEN_ITEMS = 3; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_ITEMS = 4; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_EXP = 5; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_GOLD = 6; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_GOLD_NUM = 7; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_EXP_NUM = 8; // DOES NOT DO ANYTHING +const int NWNX_ADMINISTRATION_OPTION_LOSE_ITEMS_NUM = 9; // DOES NOT DO ANYTHING const int NWNX_ADMINISTRATION_OPTION_PVP_SETTING = 10; // 0 = No PVP, 1 = Party PVP, 2 = Full PVP const int NWNX_ADMINISTRATION_OPTION_PAUSE_AND_PLAY = 11; // TRUE/FALSE const int NWNX_ADMINISTRATION_OPTION_ONE_PARTY_ONLY = 12; // TRUE/FALSE @@ -37,6 +36,8 @@ const int NWNX_ADMINISTRATION_OPTION_USE_MAX_HITPOINTS = 23; // TRUE/FA const int NWNX_ADMINISTRATION_OPTION_RESTORE_SPELLS_USES = 24; // TRUE/FALSE const int NWNX_ADMINISTRATION_OPTION_RESET_ENCOUNTER_SPAWN_POOL = 25; // TRUE/FALSE const int NWNX_ADMINISTRATION_OPTION_HIDE_HITPOINTS_GAINED = 26; // TRUE/FALSE +const int NWNX_ADMINISTRATION_OPTION_PLAYER_PARTY_CONTROL = 27; // TRUE/FALSE +const int NWNX_ADMINISTRATION_OPTION_SHOW_PLAYER_JOIN_MESSAGES = 28; // TRUE/FALSE /// @} /// @name Administration Debug Types @@ -139,7 +140,7 @@ void NWNX_Administration_SetPlayOption(int option, int value); /// /// @param playerName The community (login name). /// @param characterName The character name. -/// @return Returns TRUE if successful +/// @return Returns TRUE if successful. int NWNX_Administration_DeleteTURD(string playerName, string characterName); /// @brief Get an @ref admin_debug "Administration Debug Type" value. @@ -156,189 +157,182 @@ void NWNX_Administration_SetDebugValue(int type, int state); /// @warning DANGER, DRAGONS. Bad things may or may not happen. void NWNX_Administration_ReloadRules(); +/// @brief Get the servers minimum level. +/// @return The minimum level for the server. +int NWNX_Administration_GetMinLevel(); + +/// @brief Set the servers minimum level. +/// @param nLevel The minimum level for the server. +void NWNX_Administration_SetMinLevel(int nLevel); + +/// @brief Get the servers maximum level. +/// @return The maximum level for the server. +int NWNX_Administration_GetMaxLevel(); + +/// @brief Set the servers maximum level. +/// @note Attention when using this and the MaxLevel plugin. They both change the same value. +/// @param nLevel The maximum level for the server. +void NWNX_Administration_SetMaxLevel(int nLevel); + /// @} string NWNX_Administration_GetPlayerPassword() { - string sFunc = "GetPlayerPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "GetPlayerPassword"); + return NWNXPopString(); } void NWNX_Administration_SetPlayerPassword(string password) { - string sFunc = "SetPlayerPassword"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, password); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(password); + NWNXCall(NWNX_Administration, "SetPlayerPassword"); } void NWNX_Administration_ClearPlayerPassword() { - string sFunc = "ClearPlayerPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ClearPlayerPassword"); } string NWNX_Administration_GetDMPassword() { - string sFunc = "GetDMPassword"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "GetDMPassword"); + return NWNXPopString(); } void NWNX_Administration_SetDMPassword(string password) { - string sFunc = "SetDMPassword"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, password); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(password); + NWNXCall(NWNX_Administration, "SetDMPassword"); } void NWNX_Administration_ShutdownServer() { - string sFunc = "ShutdownServer"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ShutdownServer"); } void NWNX_Administration_DeletePlayerCharacter(object oPC, int bPreserveBackup = TRUE, string sKickMessage = "") { - string sFunc = "DeletePlayerCharacter"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, sKickMessage); - NWNX_PushArgumentInt(NWNX_Administration, sFunc, bPreserveBackup); - NWNX_PushArgumentObject(NWNX_Administration, sFunc, oPC); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(sKickMessage); + NWNXPushInt(bPreserveBackup); + NWNXPushObject(oPC); + NWNXCall(NWNX_Administration, "DeletePlayerCharacter"); } void NWNX_Administration_AddBannedIP(string ip) { - string sFunc = "AddBannedIP"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, ip); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(ip); + NWNXCall(NWNX_Administration, "AddBannedIP"); } void NWNX_Administration_RemoveBannedIP(string ip) { - string sFunc = "RemoveBannedIP"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, ip); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(ip); + NWNXCall(NWNX_Administration, "RemoveBannedIP"); } void NWNX_Administration_AddBannedCDKey(string key) { - string sFunc = "AddBannedCDKey"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, key); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(key); + NWNXCall(NWNX_Administration, "AddBannedCDKey"); } void NWNX_Administration_RemoveBannedCDKey(string key) { - string sFunc = "RemoveBannedCDKey"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, key); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(key); + NWNXCall(NWNX_Administration, "RemoveBannedCDKey"); } void NWNX_Administration_AddBannedPlayerName(string playerName) { - string sFunc = "AddBannedPlayerName"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "AddBannedPlayerName"); } void NWNX_Administration_RemoveBannedPlayerName(string playerName) { - string sFunc = "RemoveBannedPlayerName"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "RemoveBannedPlayerName"); } string NWNX_Administration_GetBannedList() { - string sFunc = "GetBannedList"; - - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "GetBannedList"); + return NWNXPopString(); } void NWNX_Administration_SetModuleName(string name) { - string sFunc = "SetModuleName"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, name); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Administration, "SetModuleName"); } void NWNX_Administration_SetServerName(string name) { - string sFunc = "SetServerName"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, name); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Administration, "SetServerName"); } string NWNX_Administration_GetServerName() { - string sFunc = "GetServerName"; - NWNX_CallFunction(NWNX_Administration, sFunc); - return NWNX_GetReturnValueString(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "GetServerName"); + return NWNXPopString(); } int NWNX_Administration_GetPlayOption(int option) { - string sFunc = "GetPlayOption"; - - NWNX_PushArgumentInt(NWNX_Administration, sFunc, option); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Administration, sFunc); + NWNXPushInt(option); + NWNXCall(NWNX_Administration, "GetPlayOption"); + return NWNXPopInt(); } void NWNX_Administration_SetPlayOption(int option, int value) { - string sFunc = "SetPlayOption"; - - NWNX_PushArgumentInt(NWNX_Administration, sFunc, value); - NWNX_PushArgumentInt(NWNX_Administration, sFunc, option); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(value); + NWNXPushInt(option); + NWNXCall(NWNX_Administration, "SetPlayOption"); } int NWNX_Administration_DeleteTURD(string playerName, string characterName) { - string sFunc = "DeleteTURD"; - - NWNX_PushArgumentString(NWNX_Administration, sFunc, characterName); - NWNX_PushArgumentString(NWNX_Administration, sFunc, playerName); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Administration, sFunc); + NWNXPushString(characterName); + NWNXPushString(playerName); + NWNXCall(NWNX_Administration, "DeleteTURD"); + return NWNXPopInt(); } int NWNX_Administration_GetDebugValue(int type) { - string sFunc = "GetDebugValue"; - - NWNX_PushArgumentInt(NWNX_Administration, sFunc, type); - NWNX_CallFunction(NWNX_Administration, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Administration, sFunc); + NWNXPushInt(type); + NWNXCall(NWNX_Administration, "GetDebugValue"); + return NWNXPopInt(); } void NWNX_Administration_SetDebugValue(int type, int state) { - string sFunc = "SetDebugValue"; - - NWNX_PushArgumentInt(NWNX_Administration, sFunc, state); - NWNX_PushArgumentInt(NWNX_Administration, sFunc, type); - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXPushInt(state); + NWNXPushInt(type); + NWNXCall(NWNX_Administration, "SetDebugValue"); } void NWNX_Administration_ReloadRules() { - string sFunc = "ReloadRules"; - - NWNX_CallFunction(NWNX_Administration, sFunc); + NWNXCall(NWNX_Administration, "ReloadRules"); +} + +int NWNX_Administration_GetMinLevel() +{ + NWNXCall(NWNX_Administration, "GetMinLevel"); + return NWNXPopInt(); +} + +void NWNX_Administration_SetMinLevel(int nLevel) +{ + NWNXPushInt(nLevel); + NWNXCall(NWNX_Administration, "SetMinLevel"); +} + +int NWNX_Administration_GetMaxLevel() +{ + NWNXCall(NWNX_Administration, "GetMaxLevel"); + return NWNXPopInt(); +} + +void NWNX_Administration_SetMaxLevel(int nLevel) +{ + NWNXPushInt(nLevel); + NWNXCall(NWNX_Administration, "SetMaxLevel"); } diff --git a/_module/nss/nwnx_appearance.nss b/_module/nss/nwnx_appearance.nss index 6f31140a..4c85eb14 100644 --- a/_module/nss/nwnx_appearance.nss +++ b/_module/nss/nwnx_appearance.nss @@ -2,7 +2,6 @@ /// @brief Allows the appearance and some other things of creatures to be overridden per player. /// @{ /// @file nwnx_appearance.nss -#include "nwnx" const string NWNX_Appearance = "NWNX_Appearance"; ///< @private @@ -49,25 +48,18 @@ int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType); void NWNX_Appearance_SetOverride(object oPlayer, object oCreature, int nType, int nValue) { - string sFunc = "SetOverride"; - - NWNX_PushArgumentInt(NWNX_Appearance, sFunc, nValue); - NWNX_PushArgumentInt(NWNX_Appearance, sFunc, nType); - NWNX_PushArgumentObject(NWNX_Appearance, sFunc, oCreature); - NWNX_PushArgumentObject(NWNX_Appearance, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Appearance, sFunc); + NWNXPushInt(nValue); + NWNXPushInt(nType); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Appearance, "SetOverride"); } int NWNX_Appearance_GetOverride(object oPlayer, object oCreature, int nType) { - string sFunc = "GetOverride"; - - NWNX_PushArgumentInt(NWNX_Appearance, sFunc, nType); - NWNX_PushArgumentObject(NWNX_Appearance, sFunc, oCreature); - NWNX_PushArgumentObject(NWNX_Appearance, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Appearance, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Appearance, sFunc); + NWNXPushInt(nType); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Appearance, "GetOverride"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_area.nss b/_module/nss/nwnx_area.nss index f1a9134f..ee261ad5 100644 --- a/_module/nss/nwnx_area.nss +++ b/_module/nss/nwnx_area.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional area properties as well as creating transitions. /// @{ /// @file nwnx_area.nss -#include "nwnx" const string NWNX_Area = "NWNX_Area"; ///< @private @@ -50,6 +49,15 @@ struct NWNX_Area_TileInfo int nGridY; ///< The tile's grid y position }; +/// @brief Area wind info struct +struct NWNX_Area_AreaWind +{ + vector vDirection; ///< Wind's direction + float fMagnitude; ///< Wind's magnitude + float fYaw; ///< Wind's yaw + float fPitch; ///< Wind's pitch +}; + /// @brief Gets the number of players in area. /// @param area The area object. /// @return The player count for the area. @@ -85,7 +93,7 @@ int NWNX_Area_GetAreaSpotModifier(object area); /// @sa NWNX_SkillRanks_SetAreaModifier() to change any skill modifier. void NWNX_Area_SetAreaSpotModifier(object area, int spotModifier); -/// @brief Get the listen modifer of area +/// @brief Get the listen modifier of area /// @param area The area object. /// @return The value of the Listen skill modifier for this area. int NWNX_Area_GetAreaListenModifier(object area); @@ -268,393 +276,472 @@ struct NWNX_Area_TileInfo NWNX_Area_GetTileInfo(object oArea, float fTileX, floa /// @return TRUE if exported successfully, FALSE if not. int NWNX_Area_ExportARE(object oArea, string sFileName, string sNewName = "", string sNewTag = "", string sAlias = "NWNX"); +/// @brief Get the ambient sound playing in an area during the day. +/// @param oArea The area to get the sound of. +/// @return The ambient soundtrack. See ambientsound.2da. +int NWNX_Area_GetAmbientSoundDay(object oArea); + +/// @brief Get the ambient sound playing in an area during the night. +/// @param oArea The area to get the sound of. +/// @return The ambient soundtrack. See ambientsound.2da. +int NWNX_Area_GetAmbientSoundNight(object oArea); + +/// @brief Get the volume of the ambient sound playing in an area during the day. +/// @param oArea The area to get the sound volume of. +/// @return The volume. +int NWNX_Area_GetAmbientSoundDayVolume(object oArea); + +/// @brief Get the volume of the ambient sound playing in an area during the night. +/// @param oArea The area to get the sound volume of. +/// @return The volume. +int NWNX_Area_GetAmbientSoundNightVolume(object oArea); + +/// @brief Create a sound object. +/// @param oArea The area where to create the sound object. +/// @param vPosition The area position where to create the sound object. +/// @param sResRef The ResRef of the sound object. +/// @return The sound object. +object NWNX_Area_CreateSoundObject(object oArea, vector vPosition, string sResRef); + +/// @brief Rotates an existing area, including all objects within (excluding PCs). +/// @note Functions while clients are in the area, but not recommended as tiles/walkmesh only updates on area load, and this may result in unexpected clientside results. +/// @param oArea The area to be rotated +/// @param nRotation How many 90 degrees clockwise to rotate (1-3). +void NWNX_Area_RotateArea(object oArea, int nRotation); + +/// @brief Get the tile info of the tile at nIndex in the tile array. +/// @param oArea The area. +/// @param nIndex The index of the tile. +/// @return A NWNX_Area_TileInfo struct with tile info. +struct NWNX_Area_TileInfo NWNX_Area_GetTileInfoByTileIndex(object oArea, int nIndex); + +/// @brief Check if there is a path between two positions in an area. +/// @note Does not care about doors or placeables, only checks tile path nodes. +/// @param oArea The area. +/// @param vStartPosition The start position. +/// @param vEndPosition The end position. +/// @param nMaxDepth The max depth of the DFS tree. A good value is AreaWidth * AreaHeight. +/// @return TRUE if there is a path between vStartPosition and vEndPosition, FALSE if not or on error. +int NWNX_Area_GetPathExists(object oArea, vector vStartPosition, vector vEndPosition, int nMaxDepth); + +/// @brief Get oArea's flags, interior/underground etc. +/// @param oArea The area. +/// @return The raw flags bitmask or -1 on error. +int NWNX_Area_GetAreaFlags(object oArea); + +/// @brief Set oArea's raw flags bitmask. +/// @note You'll have to do any bitwise operations yourself. +/// @note Requires clients to reload the area to get any updated flags. +/// @param oArea The area. +/// @param nFlags The flags. +void NWNX_Area_SetAreaFlags(object oArea, int nFlags); + +/// @brief Get oArea's detailed win data. +/// @note vDirection returns [0.0, 0.0, 0.0] if not set previously with SetAreaWind nwscript function. +/// @param oArea The area. +struct NWNX_Area_AreaWind NWNX_Area_GetAreaWind(object oArea); + +/// @brief Set the default discoverability mask for objects in an area. +/// @param oArea The area or OBJECT_INVALID to set a global mask for all areas. Per area masks will override the global mask. +/// @param nObjectTypes A mask of OBJECT_TYPE_* constants or OBJECT_TYPE_ALL for all suitable object types. Currently only works on Creatures, Doors (Hilite only), Items and Usable Placeables. +/// @param nMask A mask of OBJECT_UI_DISCOVERY_* +/// @param bForceUpdate If TRUE, will update the discovery mask of ALL objects in the area or module(if oArea == OBJECT_INVALID), according to the current mask. Use with care. +void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, int nMask, int bForceUpdate = FALSE); + /// @} int NWNX_Area_GetNumberOfPlayersInArea(object area) { - string sFunc = "GetNumberOfPlayersInArea"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetNumberOfPlayersInArea"); + return NWNXPopInt(); } object NWNX_Area_GetLastEntered(object area) { - string sFunc = "GetLastEntered"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetLastEntered"); + return NWNXPopObject(); } object NWNX_Area_GetLastLeft(object area) { - string sFunc = "GetLastLeft"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetLastLeft"); + return NWNXPopObject(); } int NWNX_Area_GetPVPSetting(object area) { - string sFunc = "GetPVPSetting"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetPVPSetting"); + return NWNXPopInt(); } void NWNX_Area_SetPVPSetting(object area, int pvpSetting) { - string sFunc = "SetPVPSetting"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, pvpSetting); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(pvpSetting); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetPVPSetting"); } int NWNX_Area_GetAreaSpotModifier(object area) { - string sFunc = "GetAreaSpotModifier"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetAreaSpotModifier"); + return NWNXPopInt(); } void NWNX_Area_SetAreaSpotModifier(object area, int spotModifier) { - string sFunc = "SetAreaSpotModifier"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, spotModifier); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(spotModifier); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetAreaSpotModifier"); } int NWNX_Area_GetAreaListenModifier(object area) { - string sFunc = "GetAreaListenModifier"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetAreaListenModifier"); + return NWNXPopInt(); } void NWNX_Area_SetAreaListenModifier(object area, int listenModifier) { - string sFunc = "SetAreaListenModifier"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, listenModifier); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(listenModifier); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetAreaListenModifier"); } int NWNX_Area_GetNoRestingAllowed(object area) { - string sFunc = "GetNoRestingAllowed"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetNoRestingAllowed"); + return NWNXPopInt(); } void NWNX_Area_SetNoRestingAllowed(object area, int bNoRestingAllowed) { - string sFunc = "SetNoRestingAllowed"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, bNoRestingAllowed); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(bNoRestingAllowed); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetNoRestingAllowed"); } int NWNX_Area_GetWindPower(object area) { - string sFunc = "GetWindPower"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetWindPower"); + return NWNXPopInt(); } void NWNX_Area_SetWindPower(object area, int windPower) { - string sFunc = "SetWindPower"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, windPower); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(windPower); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetWindPower"); } int NWNX_Area_GetWeatherChance(object area, int type) { - string sFunc = "GetWeatherChance"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, type); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetWeatherChance"); + return NWNXPopInt(); } void NWNX_Area_SetWeatherChance(object area, int type, int chance) { - string sFunc = "SetWeatherChance"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, chance); - NWNX_PushArgumentInt(NWNX_Area, sFunc, type); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(chance); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetWeatherChance"); } float NWNX_Area_GetFogClipDistance(object area) { - string sFunc = "GetFogClipDistance"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueFloat(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetFogClipDistance"); + return NWNXPopFloat(); } void NWNX_Area_SetFogClipDistance(object area, float distance) { - string sFunc = "SetFogClipDistance"; - - NWNX_PushArgumentFloat(NWNX_Area, sFunc, distance); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushFloat(distance); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetFogClipDistance"); } int NWNX_Area_GetShadowOpacity(object area) { - string sFunc = "GetShadowOpacity"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetShadowOpacity"); + return NWNXPopInt(); } void NWNX_Area_SetShadowOpacity(object area, int shadowOpacity) { - string sFunc = "SetShadowOpacity"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, shadowOpacity); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(shadowOpacity); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetShadowOpacity"); } int NWNX_Area_GetDayNightCycle(object area) { - string sFunc = "GetDayNightCycle"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetDayNightCycle"); + return NWNXPopInt(); } void NWNX_Area_SetDayNightCycle(object area, int type) { - string sFunc = "SetDayNightCycle"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, type); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetDayNightCycle"); } int NWNX_Area_GetSunMoonColors(object area, int type) { - string sFunc = "GetSunMoonColors"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, type); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "GetSunMoonColors"); + return NWNXPopInt(); } void NWNX_Area_SetSunMoonColors(object area, int type, int color) { - string sFunc = "SetSunMoonColors"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, color); - NWNX_PushArgumentInt(NWNX_Area, sFunc, type); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(color); + NWNXPushInt(type); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "SetSunMoonColors"); } object NWNX_Area_CreateTransition(object area, object target, float x, float y, float z, float size = 2.0f, string tag="") { - string sFunc = "CreateTransition"; - - NWNX_PushArgumentString(NWNX_Area, sFunc, tag); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, size); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, z); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, y); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, x); - NWNX_PushArgumentObject(NWNX_Area, sFunc, target); - NWNX_PushArgumentObject(NWNX_Area, sFunc, area); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Area, sFunc); + NWNXPushString(tag); + NWNXPushFloat(size); + NWNXPushFloat(z); + NWNXPushFloat(y); + NWNXPushFloat(x); + NWNXPushObject(target); + NWNXPushObject(area); + NWNXCall(NWNX_Area, "CreateTransition"); + return NWNXPopObject(); } int NWNX_Area_GetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop) { - string sFunc = "GetTileAnimationLoop"; + NWNXPushInt(nAnimLoop); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); - NWNX_PushArgumentInt(NWNX_Area, sFunc, nAnimLoop); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXCall(NWNX_Area, "GetTileAnimationLoop"); + return NWNXPopInt(); } void NWNX_Area_SetTileAnimationLoop(object oArea, float fTileX, float fTileY, int nAnimLoop, int bEnabled) { - string sFunc = "SetTileAnimationLoop"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, bEnabled); - NWNX_PushArgumentInt(NWNX_Area, sFunc, nAnimLoop); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushInt(bEnabled); + NWNXPushInt(nAnimLoop); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetTileAnimationLoop"); } string NWNX_Area_GetTileModelResRef(object oArea, float fTileX, float fTileY) { - string sFunc = "GetTileModelResRef"; - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueString(NWNX_Area, sFunc); + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileModelResRef"); + return NWNXPopString(); } int NWNX_Area_TestDirectLine(object oArea, float fStartX, float fStartY, float fEndX, float fEndY, float fPerSpace, float fHeight, int bIgnoreDoors=FALSE) { - string sFunc = "TestDirectLine"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, bIgnoreDoors); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fHeight); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fPerSpace); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fEndY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fEndX); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fStartY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fStartX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushInt(bIgnoreDoors); + NWNXPushFloat(fHeight); + NWNXPushFloat(fPerSpace); + NWNXPushFloat(fEndY); + NWNXPushFloat(fEndX); + NWNXPushFloat(fStartY); + NWNXPushFloat(fStartX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "TestDirectLine"); + return NWNXPopInt(); } int NWNX_Area_GetMusicIsPlaying(object oArea, int bBattleMusic = FALSE) { - string sFunc = "GetMusicIsPlaying"; - - NWNX_PushArgumentInt(NWNX_Area, sFunc, bBattleMusic); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushInt(bBattleMusic); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetMusicIsPlaying"); + return NWNXPopInt(); } object NWNX_Area_CreateGenericTrigger(object oArea, float fX, float fY, float fZ, string sTag = "", float fSize = 1.0f) { - string sFunc = "CreateGenericTrigger"; - - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fSize); - NWNX_PushArgumentString(NWNX_Area, sFunc, sTag); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fZ); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Area, sFunc); + NWNXPushFloat(fSize); + NWNXPushString(sTag); + NWNXPushFloat(fZ); + NWNXPushFloat(fY); + NWNXPushFloat(fX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "CreateGenericTrigger"); + return NWNXPopObject(); } void NWNX_Area_AddObjectToExclusionList(object oObject) { - string sFunc = "AddObjectToExclusionList"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, oObject); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Area, "AddObjectToExclusionList"); } void NWNX_Area_RemoveObjectFromExclusionList(object oObject) { - string sFunc = "RemoveObjectFromExclusionList"; - - NWNX_PushArgumentObject(NWNX_Area, sFunc, oObject); - NWNX_CallFunction(NWNX_Area, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Area, "RemoveObjectFromExclusionList"); } int NWNX_Area_ExportGIT(object oArea, string sFileName = "", int bExportVarTable = TRUE, int bExportUUID = TRUE, int nObjectFilter = 0, string sAlias = "NWNX") { - string sFunc = "ExportGIT"; - - NWNX_PushArgumentString(NWNX_Area, sFunc, sAlias); - NWNX_PushArgumentInt(NWNX_Area, sFunc, nObjectFilter); - NWNX_PushArgumentInt(NWNX_Area, sFunc, bExportUUID); - NWNX_PushArgumentInt(NWNX_Area, sFunc, bExportVarTable); - NWNX_PushArgumentString(NWNX_Area, sFunc, sFileName); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushString(sAlias); + NWNXPushInt(nObjectFilter); + NWNXPushInt(bExportUUID); + NWNXPushInt(bExportVarTable); + NWNXPushString(sFileName); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "ExportGIT"); + return NWNXPopInt(); } struct NWNX_Area_TileInfo NWNX_Area_GetTileInfo(object oArea, float fTileX, float fTileY) { - string sFunc = "GetTileInfo"; - - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileY); - NWNX_PushArgumentFloat(NWNX_Area, sFunc, fTileX); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - + NWNXPushFloat(fTileY); + NWNXPushFloat(fTileX); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileInfo"); struct NWNX_Area_TileInfo str; - - str.nGridY = NWNX_GetReturnValueInt(NWNX_Area, sFunc); - str.nGridX = NWNX_GetReturnValueInt(NWNX_Area, sFunc); - str.nOrientation = NWNX_GetReturnValueInt(NWNX_Area, sFunc); - str.nHeight = NWNX_GetReturnValueInt(NWNX_Area, sFunc); - str.nID = NWNX_GetReturnValueInt(NWNX_Area, sFunc); - + str.nGridY = NWNXPopInt(); + str.nGridX = NWNXPopInt(); + str.nOrientation = NWNXPopInt(); + str.nHeight = NWNXPopInt(); + str.nID = NWNXPopInt(); return str; } int NWNX_Area_ExportARE(object oArea, string sFileName, string sNewName = "", string sNewTag = "", string sAlias = "NWNX") { - string sFunc = "ExportARE"; - - NWNX_PushArgumentString(NWNX_Area, sFunc, sAlias); - NWNX_PushArgumentString(NWNX_Area, sFunc, sNewTag); - NWNX_PushArgumentString(NWNX_Area, sFunc, sNewName); - NWNX_PushArgumentString(NWNX_Area, sFunc, sFileName); - NWNX_PushArgumentObject(NWNX_Area, sFunc, oArea); - NWNX_CallFunction(NWNX_Area, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Area, sFunc); + NWNXPushString(sAlias); + NWNXPushString(sNewTag); + NWNXPushString(sNewName); + NWNXPushString(sFileName); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "ExportARE"); + return NWNXPopInt(); +} + +int NWNX_Area_GetAmbientSoundDay(object oArea) +{ + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundDay"); + return NWNXPopInt(); +} + +int NWNX_Area_GetAmbientSoundNight(object oArea) +{ + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundNight"); + return NWNXPopInt(); +} + +int NWNX_Area_GetAmbientSoundDayVolume(object oArea) +{ + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundDayVolume"); + return NWNXPopInt(); +} + +int NWNX_Area_GetAmbientSoundNightVolume(object oArea) +{ + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAmbientSoundNightVolume"); + return NWNXPopInt(); +} + +object NWNX_Area_CreateSoundObject(object oArea, vector vPosition, string sResRef) +{ + NWNXPushString(sResRef); + NWNXPushVector(vPosition); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "CreateSoundObject"); + return NWNXPopObject(); +} + +void NWNX_Area_RotateArea(object oArea, int nRotation) +{ + NWNXPushInt(nRotation); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "RotateArea"); +} + +struct NWNX_Area_TileInfo NWNX_Area_GetTileInfoByTileIndex(object oArea, int nIndex) +{ + NWNXPushInt(nIndex); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetTileInfoByTileIndex"); + struct NWNX_Area_TileInfo str; + str.nGridY = NWNXPopInt(); + str.nGridX = NWNXPopInt(); + str.nOrientation = NWNXPopInt(); + str.nHeight = NWNXPopInt(); + str.nID = NWNXPopInt(); + return str; +} + +int NWNX_Area_GetPathExists(object oArea, vector vStartPosition, vector vEndPosition, int nMaxDepth) +{ + NWNXPushInt(nMaxDepth); + NWNXPushVector(vEndPosition); + NWNXPushVector(vStartPosition); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetPathExists"); + return NWNXPopInt(); +} + +int NWNX_Area_GetAreaFlags(object oArea) +{ + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAreaFlags"); + return NWNXPopInt(); +} + +void NWNX_Area_SetAreaFlags(object oArea, int nFlags) +{ + NWNXPushInt(nFlags); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetAreaFlags"); +} + +struct NWNX_Area_AreaWind NWNX_Area_GetAreaWind(object oArea) +{ + struct NWNX_Area_AreaWind data; + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "GetAreaWind"); + data.fPitch = NWNXPopFloat(); + data.fYaw = NWNXPopFloat(); + data.fMagnitude = NWNXPopFloat(); + data.vDirection = NWNXPopVector(); + return data; +} + +void NWNX_Area_SetDefaultObjectUiDiscoveryMask(object oArea, int nObjectTypes, int nMask, int bForceUpdate = FALSE) +{ + NWNXPushInt(bForceUpdate); + NWNXPushInt(nMask); + NWNXPushInt(nObjectTypes); + NWNXPushObject(oArea); + NWNXCall(NWNX_Area, "SetDefaultObjectUiDiscoveryMask"); } diff --git a/_module/nss/nwnx_chat.nss b/_module/nss/nwnx_chat.nss index 90ca95e4..538fb2b8 100644 --- a/_module/nss/nwnx_chat.nss +++ b/_module/nss/nwnx_chat.nss @@ -2,7 +2,6 @@ /// @brief Functions related to chat. /// @{ /// @file nwnx_chat.nss -#include "nwnx" const string NWNX_Chat = "NWNX_Chat"; ///< @private @@ -80,79 +79,61 @@ float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int cha int NWNX_Chat_SendMessage(int channel, string message, object sender = OBJECT_SELF, object target = OBJECT_INVALID) { - string sFunc = "SendMessage"; - - NWNX_PushArgumentObject(NWNX_Chat, sFunc, target); - NWNX_PushArgumentObject(NWNX_Chat, sFunc, sender); - NWNX_PushArgumentString(NWNX_Chat, sFunc, message); - NWNX_PushArgumentInt(NWNX_Chat, sFunc, channel); - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueInt(NWNX_Chat, sFunc); + NWNXPushObject(target); + NWNXPushObject(sender); + NWNXPushString(message); + NWNXPushInt(channel); + NWNXCall(NWNX_Chat, "SendMessage"); + return NWNXPopInt(); } void NWNX_Chat_RegisterChatScript(string script) { - string sFunc = "RegisterChatScript"; - - NWNX_PushArgumentString(NWNX_Chat, sFunc, script); - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXPushString(script); + NWNXCall(NWNX_Chat, "RegisterChatScript"); } void NWNX_Chat_SkipMessage() { - string sFunc = "SkipMessage"; - - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "SkipMessage"); } int NWNX_Chat_GetChannel() { - string sFunc = "GetChannel"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueInt(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "GetChannel"); + return NWNXPopInt(); } string NWNX_Chat_GetMessage() { - string sFunc = "GetMessage"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueString(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "GetMessage"); + return NWNXPopString(); } object NWNX_Chat_GetSender() { - string sFunc = "GetSender"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueObject(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "GetSender"); + return NWNXPopObject(); } object NWNX_Chat_GetTarget() { - string sFunc = "GetTarget"; - - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueObject(NWNX_Chat, sFunc); + NWNXCall(NWNX_Chat, "GetTarget"); + return NWNXPopObject(); } void NWNX_Chat_SetChatHearingDistance(float distance, object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK) { - string sFunc = "SetChatHearingDistance"; - - NWNX_PushArgumentInt(NWNX_Chat, sFunc, channel); - NWNX_PushArgumentObject(NWNX_Chat, sFunc, listener); - NWNX_PushArgumentFloat(NWNX_Chat, sFunc, distance); - NWNX_CallFunction(NWNX_Chat, sFunc); + NWNXPushInt(channel); + NWNXPushObject(listener); + NWNXPushFloat(distance); + NWNXCall(NWNX_Chat, "SetChatHearingDistance"); } float NWNX_Chat_GetChatHearingDistance(object listener = OBJECT_INVALID, int channel = NWNX_CHAT_CHANNEL_PLAYER_TALK) { - string sFunc = "GetChatHearingDistance"; - - NWNX_PushArgumentInt(NWNX_Chat, sFunc, channel); - NWNX_PushArgumentObject(NWNX_Chat, sFunc, listener); - NWNX_CallFunction(NWNX_Chat, sFunc); - return NWNX_GetReturnValueFloat(NWNX_Chat, sFunc); + NWNXPushInt(channel); + NWNXPushObject(listener); + NWNXCall(NWNX_Chat, "GetChatHearingDistance"); + return NWNXPopFloat(); } diff --git a/_module/nss/nwnx_core.nss b/_module/nss/nwnx_core.nss new file mode 100644 index 00000000..74b02377 --- /dev/null +++ b/_module/nss/nwnx_core.nss @@ -0,0 +1,21 @@ +/// @addtogroup nwnx NWNX +/// @brief Core NWNX Functions. +/// @{ +/// @file nwnx_core.nss + +const string NWNX_Core = "NWNX_Core"; ///< @private + +/// @brief Determines if the given plugin exists and is enabled. +/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNXCall +/// @note Example usage: NWNX_PluginExists("NWNX_Creature"); +/// @return TRUE if the plugin exists and is enabled, otherwise FALSE. +int NWNX_Core_PluginExists(string sPlugin); + +/// @} + +int NWNX_Core_PluginExists(string sPlugin) +{ + NWNXPushString(sPlugin); + NWNXCall(NWNX_Core, "PluginExists"); + return NWNXPopInt(); +} diff --git a/_module/nss/nwnx_creature.nss b/_module/nss/nwnx_creature.nss index 0e3486a1..46154204 100644 --- a/_module/nss/nwnx_creature.nss +++ b/_module/nss/nwnx_creature.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional creature properties. /// @{ /// @file nwnx_creature.nss -#include "nwnx" const string NWNX_Creature = "NWNX_Creature"; ///< @private @@ -34,32 +33,6 @@ const int NWNX_CREATURE_MOVEMENT_TYPE_SIDESTEP = 3; const int NWNX_CREATURE_MOVEMENT_TYPE_WALK_BACKWARDS = 4; /// @} -/// @name Cleric Domains -/// @anchor cleric_domains -/// -/// The clerical domains. -/// @{ -const int NWNX_CREATURE_CLERIC_DOMAIN_AIR = 0; -const int NWNX_CREATURE_CLERIC_DOMAIN_ANIMAL = 1; -const int NWNX_CREATURE_CLERIC_DOMAIN_DEATH = 3; -const int NWNX_CREATURE_CLERIC_DOMAIN_DESTRUCTION = 4; -const int NWNX_CREATURE_CLERIC_DOMAIN_EARTH = 5; -const int NWNX_CREATURE_CLERIC_DOMAIN_EVIL = 6; -const int NWNX_CREATURE_CLERIC_DOMAIN_FIRE = 7; -const int NWNX_CREATURE_CLERIC_DOMAIN_GOOD = 8; -const int NWNX_CREATURE_CLERIC_DOMAIN_HEALING = 9; -const int NWNX_CREATURE_CLERIC_DOMAIN_KNOWLEDGE = 10; -const int NWNX_CREATURE_CLERIC_DOMAIN_MAGIC = 13; -const int NWNX_CREATURE_CLERIC_DOMAIN_PLANT = 14; -const int NWNX_CREATURE_CLERIC_DOMAIN_PROTECTION = 15; -const int NWNX_CREATURE_CLERIC_DOMAIN_STRENGTH = 16; -const int NWNX_CREATURE_CLERIC_DOMAIN_SUN = 17; -const int NWNX_CREATURE_CLERIC_DOMAIN_TRAVEL = 18; -const int NWNX_CREATURE_CLERIC_DOMAIN_TRICKERY = 19; -const int NWNX_CREATURE_CLERIC_DOMAIN_WAR = 20; -const int NWNX_CREATURE_CLERIC_DOMAIN_WATER = 21; -/// @} - /// @name Bonus Types /// @anchor bonus_types /// @@ -73,6 +46,22 @@ const int NWNX_CREATURE_BONUS_TYPE_SKILL = 5; const int NWNX_CREATURE_BONUS_TYPE_TOUCH_ATTACK = 6; /// @} +/// @name Ranged Projectile VFX +/// @anchor ranged_projectile_vfx +/// +/// Used with NWNX_Creature_OverrideRangedProjectileVFX() these are the projectile vfx types. +/// @{ +const int NWNX_CREATURE_PROJECTILE_VFX_NONE = 0; ///< No VFX +const int NWNX_CREATURE_PROJECTILE_VFX_ACID = 1; +const int NWNX_CREATURE_PROJECTILE_VFX_COLD = 2; +const int NWNX_CREATURE_PROJECTILE_VFX_ELECTRICAL = 3; +const int NWNX_CREATURE_PROJECTILE_VFX_FIRE = 4; +const int NWNX_CREATURE_PROJECTILE_VFX_SONIC = 5; +const int NWNX_CREATURE_PROJECTILE_VFX_RANDOM = 6; ///< Random Elemental VFX +/// @} + +const int NWNX_CREATURE_ABILITY_NONE = 6; + /// @struct NWNX_Creature_SpecialAbility /// @brief A creature special ability. struct NWNX_Creature_SpecialAbility @@ -82,16 +71,6 @@ struct NWNX_Creature_SpecialAbility int level; ///< The level of the ability }; -/// @struct NWNX_Creature_MemorisedSpell -/// @brief A memorised spell structure. -struct NWNX_Creature_MemorisedSpell -{ - int id; ///< Spell ID - int ready; ///< Whether the spell can be cast - int meta; ///< Metamagic type, if any - int domain; ///< Clerical domain, if any -}; - /// @brief Gives the creature a feat. /// @param creature The creature object. /// @param feat The feat id. @@ -110,6 +89,14 @@ void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level); /// @param feat The feat id. void NWNX_Creature_RemoveFeat(object creature, int feat); +/// @brief Removes the creature a feat assigned at a level +/// @param creature The creature object. +/// @param feat The feat id. +/// @param level The level they gained the feat. +/// @remark Removes the feat from the stat list at the provided level. Does not remove the feat from the creature, use +/// NWNX_Creature_RemoveFeat for this. +void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level); + /// @brief Determines if the creature knows a feat. /// @note This differs from native @nwn{GetHasFeat} which returns FALSE if the feat has no more uses per day. /// @param creature The creature object. @@ -224,29 +211,6 @@ void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modif /// @return The raw ability score. int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability); -/// @brief Gets the count of memorised spells for a creature's class at a level. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @return The memorised spell count. -int NWNX_Creature_GetMemorisedSpellCountByLevel(object creature, int class, int level); - -/// @brief Gets the memorised spell at a class level's index. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). -/// @return An NWNX_Creature_MemorisedSpell() struct. -struct NWNX_Creature_MemorisedSpell NWNX_Creature_GetMemorisedSpell(object creature, int class, int level, int index); - -/// @brief Sets the memorised spell at a class level's index. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). -/// @param spell An NWNX_Creature_MemorisedSpell() struct. -void NWNX_Creature_SetMemorisedSpell(object creature, int class, int level, int index, struct NWNX_Creature_MemorisedSpell spell); - /// @brief Gets the remaining spell slots (innate casting) at a class level's index. /// @param creature The creature object. /// @param class The class id from classes.2da. (Not class index 0-2) @@ -268,21 +232,6 @@ void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, /// @return The maximum spell slot count. int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level); -/// @brief Gets the known spell count (innate casting) at a class level. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @return The known spell count. -int NWNX_Creature_GetKnownSpellCount(object creature, int class, int level); - -/// @brief Gets the known spell at a class level's index. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetKnownSpellCount(). -/// @return The spell id. -int NWNX_Creature_GetKnownSpell(object creature, int class, int level, int index); - /// @brief Add a spell to a creature's spellbook for class. /// @param creature The creature object. /// @param class The class id from classes.2da. (Not class index 0-2) @@ -297,19 +246,6 @@ void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spel /// @param spellId The spell to remove. void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId); -/// @brief Clear a specific spell from the creature's spellbook for class -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param spellId The spell to clear. -void NWNX_Creature_ClearMemorisedKnownSpells(object creature, int class, int spellId); - -/// @brief Clear the memorised spell of the creature for the class, level and index. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param level The spell level. -/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). -void NWNX_Creature_ClearMemorisedSpell(object creature, int class, int level, int index); - /// @brief Gets the maximum hit points for creature for level. /// @param creature The creature object. /// @param level The level. @@ -339,6 +275,12 @@ float NWNX_Creature_GetMovementRateFactor(object creature); /// @param rate The rate to set. void NWNX_Creature_SetMovementRateFactor(object creature, float rate); +/// @brief Returns the creature's maximum movement rate cap. +/// @remark Default movement rate cap is 1.5. +/// @param creature The creature object. +/// @return The maximum movement rate cap. +float NWNX_Creature_GetMovementRateFactorCap(object creature); + /// @brief Sets the creature's maximum movement rate cap. /// @note Default movement rate cap is 1.5. /// @param creature The creature object. @@ -367,28 +309,35 @@ void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value); /// @param value The value to set. void NWNX_Creature_SetAlignmentLawChaos(object creature, int value); -/// @brief Get the soundset index for creature. -/// @param creature The creature object. -/// @return The soundset used by the creature. -int NWNX_Creature_GetSoundset(object creature); - -/// @brief Set the soundset index for creature. -/// @param creature The creature object. -/// @param soundset The soundset index. -void NWNX_Creature_SetSoundset(object creature, int soundset); - /// @brief Set the base ranks in a skill for creature /// @param creature The creature object. /// @param skill The skill id. /// @param rank The value to set as the skill rank. void NWNX_Creature_SetSkillRank(object creature, int skill, int rank); +/// @brief Get the ranks in a skill for creature assigned at a level. +/// @param creature The creature object. +/// @param skill The skill id. +/// @param level The level they gained skill ranks. +/// @return The rank in a skill assigned at a level (-1 on error). +int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level); + +/// @brief Set the ranks in a skill for creature assigned at a level. +/// @note It only affect the leveling array, to know what to do on level-down. To effectively change the skill rank on the current level, NWNX_Creature_SetSkillRank is also needed. +/// @param creature The creature object. +/// @param skill The skill id. +/// @param level The level they gained skill ranks. +/// @param rank The value to set as the skill rank. +void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level); + /// @brief Set the class ID in a particular position for a creature. /// @param creature The creature object. /// @param position Should be 0, 1, or 2 depending on how many classes the creature /// has and which is to be modified. /// @param classID A valid ID number in classes.2da and between 0 and 255. -void NWNX_Creature_SetClassByPosition(object creature, int position, int classID); +/// @param bUpdateLevels determines whether the method will replace all occurrences +/// of the old class in CNWLevelStats with the new classID. +void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE); /// @brief Set the level at the given position for a creature. /// @note A creature should already have a class in that position. @@ -416,11 +365,6 @@ void NWNX_Creature_SetBaseAttackBonus(object creature, int bab); /// @return The attacks per round. int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE); -/// @brief Sets the creature gender. -/// @param creature The creature object. -/// @param gender The GENDER_ constant. -void NWNX_Creature_SetGender(object creature, int gender); - /// @brief Restore all creature feat uses. /// @param creature The creature object. void NWNX_Creature_RestoreFeats(object creature); @@ -429,11 +373,6 @@ void NWNX_Creature_RestoreFeats(object creature); /// @param creature The creature object. void NWNX_Creature_RestoreSpecialAbilities(object creature); -/// @brief Restore all creature spells per day for given level. -/// @param creature The creature object. -/// @param level The level to restore. If -1, all spells are restored. -void NWNX_Creature_RestoreSpells(object creature, int level = -1); - /// @brief Restore uses for all items carried by the creature. /// @param creature The creature object. void NWNX_Creature_RestoreItems(object creature); @@ -453,6 +392,18 @@ int NWNX_Creature_GetSkillPointsRemaining(object creature); /// @param skillpoints The value to set. void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints); +/// @brief Gets the creature's remaining unspent skill points for level. +/// @param creature The creature object. +/// @param level The level. +/// @return The remaining unspent skill points for level. +int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level); + +/// @brief Sets the creature's remaining unspent skill points for level. +/// @param creature The creature object. +/// @param level The level. +/// @param value The value to set for level. +void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value); + /// @brief Sets the creature's racial type /// @param creature The creature object. /// @param racialtype The racial type to set. @@ -485,8 +436,9 @@ void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value); /// @param creature The creature object. /// @param class The class id. /// @param count The amount of levels of class to add. +/// @param package The class package to use for leveling up (PACKAGE_INVALID = starting package) /// @note This will not work on player characters. -void NWNX_Creature_LevelUp(object creature, int class, int count=1); +void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID); /// @brief Remove last levels from a creature. /// @param creature The creature object. @@ -603,13 +555,6 @@ int NWNX_Creature_GetDisarmable(object creature); /// @param disarmable Set to TRUE if the creature can be disarmed. void NWNX_Creature_SetDisarmable(object creature, int disarmable); -/// @brief Gets one of creature's domains. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @param index The first or second domain. -/// @deprecated Use GetDomain(). This will be removed in future NWNX releases. -int NWNX_Creature_GetDomain(object creature, int class, int index); - /// @brief Sets one of creature's domains. /// @param creature The creature object. /// @param class The class id from classes.2da. (Not class index 0-2) @@ -617,12 +562,6 @@ int NWNX_Creature_GetDomain(object creature, int class, int index); /// @param domain The domain constant to set. void NWNX_Creature_SetDomain(object creature, int class, int index, int domain); -/// @brief Gets the creature's specialist school. -/// @param creature The creature object. -/// @param class The class id from classes.2da. (Not class index 0-2) -/// @deprecated Use GetSpecialization(). This will be removed in future NWNX releases. -int NWNX_Creature_GetSpecialization(object creature, int class); - /// @brief Sets creature's specialist school. /// @param creature The creature object. /// @param class The class id from classes.2da. (Not class index 0-2) @@ -697,7 +636,7 @@ void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier /// @brief Gets the critical hit multiplier modifier for the Creature /// @param oCreature The target creature /// @param nHand 0 for all attacks, 1 for Mainhand, 2 for Offhand -/// @param nBaseItem The baseitem modifer to retrieve. BASE_ITEM_GLOVES for Unarmed, '-1' for all +/// @param nBaseItem The baseitem modifier to retrieve. BASE_ITEM_GLOVES for Unarmed, '-1' for all /// @return the current critical hit multiplier modifier for the creature int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1); @@ -729,7 +668,7 @@ void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int /// @brief Gets the critical hit range modifier for the creature. /// @param oCreature The target creature /// @param nHand 0 for all attacks, 1 for Mainhand, 2 for Offhand -/// @param nBaseItem The baseitem modifer to retrieve. BASE_ITEM_GLOVES for Unarmed, '-1' for all +/// @param nBaseItem The baseitem modifier to retrieve. BASE_ITEM_GLOVES for Unarmed, '-1' for all /// @return the current critical hit range modifier for the creature int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1); @@ -756,12 +695,6 @@ int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int /// @param nAssociateType The associate type, one of ASSOCIATE_TYPE_*, except _NONE void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType); -/// @brief Set whether an effect icon is flashing or not. -/// @param oCreature The target creature. -/// @param nIconId The icon id, see effecticons.2da. -/// @param bFlashing TRUE for flashing, FALSE for not flashing. -void NWNX_Creature_SetEffectIconFlashing(object oCreature, int nIconId, int bFlashing); - /// @brief Override the damage level of oCreature. /// @note Damage levels are the damage state under a creature's name, for example: 'Near Death' /// @param oCreature The target creature. @@ -845,726 +778,752 @@ vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, flo /// @param oTargetCreature The target creature. void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature); +/// @brief Get a creatures personal space (meters from center to non-creature objects). +/// @param oCreature The creature. +/// @return The creatures personal space. +float NWNX_Creature_GetPersonalSpace(object oCreature); + +/// @brief Set a creatures personal space (meters from center to non-creature objects). +/// @param oCreature The creature. +/// @param fPerspace The creatures personal space. +void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace); + +/// @brief Get a creatures creature personal space (meters from center to other creatures). +/// @param oCreature The creature. +/// @return The creatures creature personal space. +float NWNX_Creature_GetCreaturePersonalSpace(object oCreature); + +/// @brief Set a creatures creature personal space (meters from center to other creatures). +/// @param oCreature The creature. +/// @param fCrePerspace The creatures creature personal space. +void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace); + +/// @brief Get a creatures height. +/// @param oCreature The creature. +/// @return The creatures height. +float NWNX_Creature_GetHeight(object oCreature); + +/// @brief Set a creatures height. +/// @param oCreature The creature. +/// @param fHeight The creatures height. +void NWNX_Creature_SetHeight(object oCreature, float fHeight); + +/// @brief Get a creatures hit distance. +/// @param oCreature The creature. +/// @return The creatures hit distance. +float NWNX_Creature_GetHitDistance(object oCreature); + +/// @brief Set a creatures hit distance. +/// @param oCreature The creature. +/// @param fHitDist The creatures hit distance. +void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist); + +/// @brief Get a creatures preferred attack distance. +/// @param oCreature The creature. +/// @return The creatures preferred attack distance. +float NWNX_Creature_GetPreferredAttackDistance(object oCreature); + +/// @brief Set a creatures preferred attack distance. +/// @param oCreature The creature. +/// @param fPrefAtckDist The creatures preferred attack distance. +void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist); + +/// @brief Get the skill penalty from wearing armor. +/// @param oCreature The creature. +int NWNX_Creature_GetArmorCheckPenalty(object oCreature); + +/// @brief Get the skill penalty from wearing a shield. +/// @param oCreature The creature. +int NWNX_Creature_GetShieldCheckPenalty(object oCreature); + +/// @brief Sets a chance for normal Effect Immunities to be bypassed +/// @param oCreature The affected creature +/// @param nImmunityType 'IMMUNITY_TYPE_*' to bypass. By default affects outgoing effects (oCreature -> another creature). Use a negative (-IMMUNITY_TYPE_*) to affect incoming effects instead (another creature -> oCreature) use 255/-255 to bypass ALL Immunities. +/// @param nChance The chance (of 100%) to bypass the immunity check. A Positive chance results in NOT IMMUNE. A Negative chance results in IMMUNE. +/// @param bPersist Whether the modifier should persist to .bic file (for PCs) +/// @note Persistence is enabled after a server reset by the first use of this function. Recommended to trigger on a dummy target OnModuleLoad to enable persistence. +/// @note Where an Outgoing and Incoming bypass both attempt opposing outcomes, both are ignored and the immunity status without bypass will apply. +void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE); + +/// @brief Gets a chance for normal Effect Immunities to be bypassed +/// @param oCreature The target creature +/// @param nImmunityType 'IMMUNITY_TYPE_*' to retrieve the current chance for bypass: Positive gets outgoing effects (oCreature -> another creature). Negative (-IMMUNITY_TYPE_*) gets incoming effects (another creature -> oCreature). +/// @return the current critical hit multiplier modifier for the creature +int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType); + +/// @brief Sets the killer of oCreature to oKiller. +/// @param oCreature The target creature. +/// @param oKiller The killer. +void NWNX_Creature_SetLastKiller(object oCreature, object oKiller); + +/// @brief Instantly cast a spell at a target or location. +/// @note oCreature must be in the same area as oTarget or locTarget. +/// @note Does not care if oCreature can't cast spells or doesn't know the spell. Does not consume spell slots. +/// @param oCreature The caster. +/// @param oTarget The target, use OBJECT_INVALID to cast at a location. +/// @param locTarget The location, only used when oTarget is OBJECT_INVALID. +/// @param nSpellID The spell ID. +/// @param nCasterLevel The caster level of the spell. +/// @param fProjectileTime The time in seconds for the projectile to reach the target. 0.0f for no projectile. +/// @param nProjectilePathType A PROJECTILE_PATH_TYPE_* constant. +/// @param nProjectileSpellID An optional spell ID which to use the projectile vfx of. -1 to use nSpellID's projectile vfx. +/// @param oItem The spell cast item retrieved by GetSpellCastItem(). +/// @param sImpactScript The spell impact script. Set to "****"" to not run any impact script. If left blank, will execute nSpellID's impact script. +void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID = -1, object oItem = OBJECT_INVALID, string sImpactScript = ""); + +/// @brief Have oCreature instantly equip oItem to nInventorySlot. +/// @param oCreature The creature. +/// @param oItem The item, must be possessed by oCreature. +/// @param nInventorySlot An INVENTORY_SLOT_* constant. +/// @return TRUE on success, FALSE on failure. +int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot); + +/// @brief Have oCreature instantly unequip oItem. +/// @param oCreature The creature. +/// @param oItem The item, must be possessed by oCreature. +/// @return TRUE on success, FALSE on failure. +int NWNX_Creature_RunUnequip(object oCreature, object oItem); + +/// @brief Override the elemental projectile visual effect of ranged/throwing weapons. +/// @param oCreature The creature. +/// @param nProjectileVFX A @ref ranged_projectile_vfx "NWNX_CREATURE_PROJECTILE_VFX_*" constant or -1 to remove the override. +/// @param bPersist Whether the vfx should persist to the .bic file (for PCs). +/// @note Persistence is enabled after a server reset by the first use of this function. Recommended to trigger on a dummy target OnModuleLoad to enable persistence. +void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE); + +/// @brief Sets a custom Initiative modifier +/// @param oCreature The affected creature +/// @param nMod The amount to adjust their initiative (+/-). +/// @param bPersist Whether the modifier should persist to .bic file (for PCs) +/// @note Persistence is enabled after a server reset by the first use of this function. Recommended to trigger on a dummy target OnModuleLoad to enable persistence. +/// @warning This modifier takes precedence over an NWNX_Race Initiative modifier; they're not additive +void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE); + +/// @brief Gets the custom Initiative modifier. +/// @param oCreature The target creature +/// @return the current custom initiative modifier for the creature +int NWNX_Creature_GetInitiativeModifier(object oCreature); + +/// @brief Gets the Body Bag of a creature +/// @param oCreature The target creature +/// @return The creatures assigned Body Bag +object NWNX_Creature_GetBodyBag(object oCreature); + +/// @brief Add a cast spell action to oCreature's action queue. +/// @param oCreature The creature casting the spell. +/// @param oTarget The target, to cast at a location use the area as target. +/// @param vTargetLocation The target location. +/// @param nSpellID The spell ID. +/// @param nMultiClass The character class position to cast the spell as. 0 = First Class, 1 = Second Class, 3 = Third Class. To cast a cheat spell use 255 and to cast a special ability use 254. +/// @param nMetaMagic A METAMAGIC_* constant, except METAMAGIC_ANY. +/// @param nDomainLevel The domain level if casting a domain spell. +/// @param nProjectilePathType A PROJECTILE_PATH_TYPE_* constant. +/// @param bInstant TRUE to instantly cast the spell. +/// @param bClearActions TRUE to clear all actions. +/// @param bAddToFront TRUE to add the cast spell action to the front of the action queue. +/// @return TRUE if the action was successfully added to oCreature's action queue. +int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstant = FALSE, int bClearActions = FALSE, int bAddToFront = FALSE); + +/// @brief Get whether oCreature is flanking oTargetCreature. +/// @param oCreature The creature object. +/// @param oTargetCreature The target creature object. +/// @return TRUE if oCreature is flanking oTargetCreature. +int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature); + +/// @brief Decrements the remaining spell slots (innate casting) at a class level. +/// @param oCreature The creature object. +/// @param nClass The class id from classes.2da. (Not class index 0-2) +/// @param nSpellLevel The spell level. +void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel); + +/// @brief Increments the remaining spell slots (innate casting) at a class level. +/// @param oCreature The creature object. +/// @param nClass The class id from classes.2da. (Not class index 0-2) +/// @param nSpellLevel The spell level. +void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel); + +/// @brief Gets the maximum number of bonus attacks a creature can have from EffectModifyAttacks(). +/// @param oCreature The creature. +/// @return The maximum number of bonus attacks or 0 on error. +int NWNX_Creature_GetMaximumBonusAttacks(object oCreature); + +/// @brief Sets the maximum number of bonus attacks a creature can have from EffectModifyAttacks(). +/// @note This function also removes the limit of 5 bonus attacks from EffectModifyAttacks(). +/// @param oCreature The creature. +/// @param nMaxBonusAttacks The maximum number of bonus attacks. Values < 0 will set the limit back to the default of 5. +/// @param bPersist Whether the modifier should persist to .bic file (for PCs). +/// @note Persistence is enabled after a server reset by the first use of this function. Recommended to trigger on a dummy target OnModuleLoad to enable persistence. +void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE); + +/// @brief Inserts a cleave or great cleave attack into oCreature's current attack round against the nearest enemy within melee reach. +/// @param oCreature The creature object. +/// @note oCreature must have the cleave or great cleave feats, must be in combat, and must have available attacks remaining in their combat round to use for cleave attack. +void NWNX_Creature_DoCleaveAttack(object oCreature); + +/// @brief Gets the current object oCreature's orientation is locked to. +/// @param oCreature The creature object. +/// @return The object oCreature's orientation is locked to, or OBJECT_INVALID if oCreature's orientation is not locked. +object NWNX_Creature_GetLockOrientationToObject(object oCreature); + +/// @brief Locks oCreature's orientation to always face oTarget. +/// @param oCreature The creature object. +/// @param oTarget The target to lock oCreature's orientation to. Use OBJECT_INVALID to remove the orientation lock. +void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget); + +/// @brief Causes oCreature to broadcast an Attack of Opportunity against themself. +/// @param oCreature The creature object. +/// @param oSingleCreature A single creature to broadcast the Attack of Opporunity to. Use OBJECT_INVALID to broadcast to all nearby enemies. +/// @param bMovement Whether the Attack of Opportunity was caused by movement. +void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE); + +/// @brief Returns the maximum price oStore will buy items from oCreature for. +/// @param oCreature The creature object. +/// @param oStore The store object. +/// @return The max buy price override. -1 = No maximum buy price, -2 = No override set. +int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore); + +/// @brief Overrides the maximum price oStore will buy items from oCreature for. +/// @param oCreature The creature object. +/// @param oStore The store object. +/// @param nMaxSellToPrice The maximum buy price override. -1 = No maximum buy price, -2 = Remove the override. +void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice); + +/// @brief Returns the creature's ability increase for nLevel. +/// @param oCreature The creature object. +/// @param nLevel The level. +/// @return An ABILITY_* constant, NWNX_CREATURE_ABILITY_NONE or -1 on error +int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel); + +/// @brief Sets the creature's ability increase for nLevel. +/// @param oCreature The creature object. +/// @param nLevel The level. +/// @param nAbility ABILITY_* constant or NWNX_CREATURE_ABILITY_NONE +void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility); + +/// @brief Returns the creature's maximum attack range to a target +/// @param oCreature The creature object. +/// @param oTarget The target to get the maximum attack range to +/// @return The maximum attack range for oCreature to oTarget +float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget); + +/// @brief Returns the creature's multiclass limit. +/// @note Only works on player characters. +/// @param oCreature The creature object. Has to be a player character. +/// @return The PCs multiclass limit. Returns 0 if no limit is set. +int NWNX_Creature_GetMulticlassLimit(object oCreature); + +/// @brief Sets the creature's multiclass limit. +/// @note Only works on player characters and only for future level ups. +/// Classes already taken will continue to be available on level up. +/// The limit must be lower than the server limit set in ruleset.2da MULTICLASS_LIMIT. +/// Setting a value of 0 will remove the limit. +/// @param oCreature The creature object. Has to be a player character. +/// @param nLimit The multiclass limit. +/// @param bPersist Whether the limit should persist to the .bic file. +/// @note Persistence is enabled after a server reset by the first use of this function. +void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE); + +/// @brief Gets the creature's number of bonus spells. +/// @param oCreature The creature object. +/// @param nMultiClass The character class position, starting at 0. +/// @param nSpellLevel The spell level, 0 to 9. +int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel); + +/// @brief Modifies the creature's number of bonus spells. +/// @param oCreature The creature object. +/// @param nMultiClass The character class position, starting at 0. +/// @param nSpellLevel The spell level, 0 to 9. +/// @param nDelta The value to change the number of bonus spells by. Can be negative. +void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta); + /// @} void NWNX_Creature_AddFeat(object creature, int feat) { - string sFunc = "AddFeat"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddFeat"); } void NWNX_Creature_AddFeatByLevel(object creature, int feat, int level) { - string sFunc = "AddFeatByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddFeatByLevel"); } void NWNX_Creature_RemoveFeat(object creature, int feat) { - string sFunc = "RemoveFeat"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveFeat"); +} - NWNX_CallFunction(NWNX_Creature, sFunc); +void NWNX_Creature_RemoveFeatByLevel(object creature, int feat, int level) +{ + NWNXPushInt(level); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveFeatByLevel"); } int NWNX_Creature_GetKnowsFeat(object creature, int feat) { - string sFunc = "GetKnowsFeat"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetKnowsFeat"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatCountByLevel(object creature, int level) { - string sFunc = "GetFeatCountByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatCountByLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatByLevel(object creature, int level, int index) { - string sFunc = "GetFeatByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(index); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatByLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatCount(object creature) { - string sFunc = "GetFeatCount"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatCount"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatGrantLevel(object creature, int feat) { - string sFunc = "GetFeatGrantLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatGrantLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatByIndex(object creature, int index) { - string sFunc = "GetFeatByIndex"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatByIndex"); + return NWNXPopInt(); } int NWNX_Creature_GetMeetsFeatRequirements(object creature, int feat) { - string sFunc = "GetMeetsFeatRequirements"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMeetsFeatRequirements"); + return NWNXPopInt(); } struct NWNX_Creature_SpecialAbility NWNX_Creature_GetSpecialAbility(object creature, int index) { - string sFunc = "GetSpecialAbility"; - struct NWNX_Creature_SpecialAbility ability; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - - ability.level = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - ability.ready = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - ability.id = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSpecialAbility"); + ability.level = NWNXPopInt(); + ability.ready = NWNXPopInt(); + ability.id = NWNXPopInt(); return ability; } int NWNX_Creature_GetSpecialAbilityCount(object creature) { - string sFunc = "GetSpecialAbilityCount"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSpecialAbilityCount"); + return NWNXPopInt(); } void NWNX_Creature_AddSpecialAbility(object creature, struct NWNX_Creature_SpecialAbility ability) { - string sFunc = "AddSpecialAbility"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.id); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.ready); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ability.id); + NWNXPushInt(ability.ready); + NWNXPushInt(ability.level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddSpecialAbility"); } void NWNX_Creature_RemoveSpecialAbility(object creature, int index) { - string sFunc = "RemoveSpecialAbility"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RemoveSpecialAbility"); } void NWNX_Creature_SetSpecialAbility(object creature, int index, struct NWNX_Creature_SpecialAbility ability) { - string sFunc = "SetSpecialAbility"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.id); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.ready); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability.level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ability.id); + NWNXPushInt(ability.ready); + NWNXPushInt(ability.level); + NWNXPushInt(index); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpecialAbility"); } int NWNX_Creature_GetClassByLevel(object creature, int level) { - string sFunc = "GetClassByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetClassByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetBaseAC(object creature, int ac) { - string sFunc = "SetBaseAC"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ac); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ac); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseAC"); } int NWNX_Creature_GetBaseAC(object creature) { - string sFunc = "GetBaseAC"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetBaseAC"); + return NWNXPopInt(); } void NWNX_Creature_SetRawAbilityScore(object creature, int ability, int value) { - string sFunc = "SetRawAbilityScore"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, value); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRawAbilityScore"); } int NWNX_Creature_GetRawAbilityScore(object creature, int ability) { - string sFunc = "GetRawAbilityScore"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetRawAbilityScore"); + return NWNXPopInt(); } void NWNX_Creature_ModifyRawAbilityScore(object creature, int ability, int modifier) { - string sFunc = "ModifyRawAbilityScore"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, modifier); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(modifier); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "ModifyRawAbilityScore"); } int NWNX_Creature_GetPrePolymorphAbilityScore(object creature, int ability) { - string sFunc = "GetPrePolymorphAbilityScore"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, ability); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); -} - -struct NWNX_Creature_MemorisedSpell NWNX_Creature_GetMemorisedSpell(object creature, int class, int level, int index) -{ - string sFunc = "GetMemorisedSpell"; - struct NWNX_Creature_MemorisedSpell spell; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - - spell.domain = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - spell.meta = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - spell.ready = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - spell.id = NWNX_GetReturnValueInt(NWNX_Creature, sFunc); - return spell; -} - -int NWNX_Creature_GetMemorisedSpellCountByLevel(object creature, int class, int level) -{ - string sFunc = "GetMemorisedSpellCountByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); -} - -void NWNX_Creature_SetMemorisedSpell(object creature, int class, int level, int index, struct NWNX_Creature_MemorisedSpell spell) -{ - string sFunc = "SetMemorisedSpell"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spell.id); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spell.ready); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spell.meta); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spell.domain); - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(ability); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetPrePolymorphAbilityScore"); + return NWNXPopInt(); } int NWNX_Creature_GetRemainingSpellSlots(object creature, int class, int level) { - string sFunc = "GetRemainingSpellSlots"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetRemainingSpellSlots"); + return NWNXPopInt(); } void NWNX_Creature_SetRemainingSpellSlots(object creature, int class, int level, int slots) { - string sFunc = "SetRemainingSpellSlots"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, slots); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -int NWNX_Creature_GetKnownSpell(object creature, int class, int level, int index) -{ - string sFunc = "GetKnownSpell"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); -} - -int NWNX_Creature_GetKnownSpellCount(object creature, int class, int level) -{ - string sFunc = "GetKnownSpellCount"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(slots); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRemainingSpellSlots"); } void NWNX_Creature_RemoveKnownSpell(object creature, int class, int level, int spellId) { - string sFunc = "RemoveKnownSpell"; + NWNXPushInt(spellId); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spellId); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "RemoveKnownSpell"); } void NWNX_Creature_AddKnownSpell(object creature, int class, int level, int spellId) { - string sFunc = "AddKnownSpell"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spellId); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -void NWNX_Creature_ClearMemorisedKnownSpells(object creature, int class, int spellId) -{ - string sFunc = "ClearMemorisedKnownSpells"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, spellId); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -void NWNX_Creature_ClearMemorisedSpell(object creature, int class, int level, int index) -{ - string sFunc = "ClearMemorisedSpell"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(spellId); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "AddKnownSpell"); } int NWNX_Creature_GetMaxSpellSlots(object creature, int class, int level) { - string sFunc = "GetMaxSpellSlots"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMaxSpellSlots"); + return NWNXPopInt(); } int NWNX_Creature_GetMaxHitPointsByLevel(object creature, int level) { - string sFunc = "GetMaxHitPointsByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMaxHitPointsByLevel"); + return NWNXPopInt(); } void NWNX_Creature_SetMaxHitPointsByLevel(object creature, int level, int value) { - string sFunc = "SetMaxHitPointsByLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, value); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMaxHitPointsByLevel"); } void NWNX_Creature_SetMovementRate(object creature, int rate) { - string sFunc = "SetMovementRate"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, rate); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(rate); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRate"); } float NWNX_Creature_GetMovementRateFactor(object creature) { - string sFunc = "GetMovementRateFactor"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueFloat(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementRateFactor"); + return NWNXPopFloat(); } void NWNX_Creature_SetMovementRateFactor(object creature, float factor) { - string sFunc = "SetMovementRateFactor"; + NWNXPushFloat(factor); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRateFactor"); +} - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, factor); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); +float NWNX_Creature_GetMovementRateFactorCap(object creature) +{ + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementRateFactorCap"); + return NWNXPopFloat(); } void NWNX_Creature_SetMovementRateFactorCap(object creature, float cap) { - string sFunc = "SetMovementRateFactorCap"; - - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, cap); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(cap); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetMovementRateFactorCap"); } void NWNX_Creature_SetAlignmentGoodEvil(object creature, int value) { - string sFunc = "SetAlignmentGoodEvil"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, value); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAlignmentGoodEvil"); } void NWNX_Creature_SetAlignmentLawChaos(object creature, int value) { - string sFunc = "SetAlignmentLawChaos"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, value); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -int NWNX_Creature_GetSoundset(object creature) -{ - string sFunc = "GetSoundset"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); -} - -void NWNX_Creature_SetSoundset(object creature, int soundset) -{ - string sFunc = "SetSoundset"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, soundset); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAlignmentLawChaos"); } void NWNX_Creature_SetSkillRank(object creature, int skill, int rank) { - string sFunc = "SetSkillRank"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, rank); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, skill); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(rank); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillRank"); } -void NWNX_Creature_SetClassByPosition(object creature, int position, int classID) +int NWNX_Creature_GetSkillRankByLevel(object creature, int skill, int level) { - string sFunc = "SetClassByPosition"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, classID); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, position); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); + NWNXPushInt(level); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillRankByLevel"); + return NWNXPopInt(); +} - NWNX_CallFunction(NWNX_Creature, sFunc); +void NWNX_Creature_SetSkillRankByLevel(object creature, int skill, int rank, int level) +{ + NWNXPushInt(level); + NWNXPushInt(rank); + NWNXPushInt(skill); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillRankByLevel"); +} + +void NWNX_Creature_SetClassByPosition(object creature, int position, int classID, int bUpdateLevels = TRUE) +{ + NWNXPushInt(bUpdateLevels); + NWNXPushInt(classID); + NWNXPushInt(position); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetClassByPosition"); } void NWNX_Creature_SetLevelByPosition(object creature, int position, int level) { - string sFunc = "SetLevelByPosition"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, position); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(level); + NWNXPushInt(position); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetLevelByPosition"); } void NWNX_Creature_SetBaseAttackBonus(object creature, int bab) { - string sFunc = "SetBaseAttackBonus"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bab); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bab); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseAttackBonus"); } int NWNX_Creature_GetAttacksPerRound(object creature, int bBaseAPR = FALSE) { - string sFunc = "GetAttacksPerRound"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bBaseAPR); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); -} - -void NWNX_Creature_SetGender(object creature, int gender) -{ - string sFunc = "SetGender"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, gender); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bBaseAPR); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetAttacksPerRound"); + return NWNXPopInt(); } void NWNX_Creature_RestoreFeats(object creature) { - string sFunc = "RestoreFeats"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreFeats"); } void NWNX_Creature_RestoreSpecialAbilities(object creature) { - string sFunc = "RestoreSpecialAbilities"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -void NWNX_Creature_RestoreSpells(object creature, int level = -1) -{ - string sFunc = "RestoreSpells"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, level); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreSpecialAbilities"); } void NWNX_Creature_RestoreItems(object creature) { - string sFunc = "RestoreItems"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "RestoreItems"); } void NWNX_Creature_SetSize(object creature, int size) { - string sFunc = "SetSize"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, size); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(size); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSize"); } int NWNX_Creature_GetSkillPointsRemaining(object creature) { - string sFunc = "GetSkillPointsRemaining"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillPointsRemaining"); + return NWNXPopInt(); } - void NWNX_Creature_SetSkillPointsRemaining(object creature, int skillpoints) { - string sFunc = "SetSkillPointsRemaining"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, skillpoints); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); + NWNXPushInt(skillpoints); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillPointsRemaining"); +} - NWNX_CallFunction(NWNX_Creature, sFunc); +int NWNX_Creature_GetSkillPointsRemainingByLevel(object creature, int level) +{ + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetSkillPointsRemainingByLevel"); + return NWNXPopInt(); +} + +void NWNX_Creature_SetSkillPointsRemainingByLevel(object creature, int level, int value) +{ + NWNXPushInt(value); + NWNXPushInt(level); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSkillPointsRemainingByLevel"); } void NWNX_Creature_SetRacialType(object creature, int racialtype) { - string sFunc = "SetRacialType"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, racialtype); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(racialtype); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetRacialType"); } int NWNX_Creature_GetMovementType(object creature) { - string sFunc = "GetMovementType"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetMovementType"); + return NWNXPopInt(); } void NWNX_Creature_SetWalkRateCap(object creature, float fWalkRate = 2000.0f) { - string sFunc = "SetWalkRateCap"; - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, fWalkRate); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fWalkRate); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetWalkRateCap"); } void NWNX_Creature_SetGold(object creature, int gold) { - string sFunc = "SetGold"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, gold); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(gold); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetGold"); } void NWNX_Creature_SetCorpseDecayTime(object creature, int nDecayTime) { - string sFunc = "SetCorpseDecayTime"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nDecayTime); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nDecayTime); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetCorpseDecayTime"); } - int NWNX_Creature_GetBaseSavingThrow(object creature, int which) { - string sFunc = "GetBaseSavingThrow"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, which); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(which); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetBaseSavingThrow"); + return NWNXPopInt(); } void NWNX_Creature_SetBaseSavingThrow(object creature, int which, int value) { - string sFunc = "SetBaseSavingThrow"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, value); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, which); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(value); + NWNXPushInt(which); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetBaseSavingThrow"); } -void NWNX_Creature_LevelUp(object creature, int class, int count=1) +void NWNX_Creature_LevelUp(object creature, int class, int count = 1, int package = PACKAGE_INVALID) { - string sFunc = "LevelUp"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, count); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(package); + NWNXPushInt(count); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "LevelUp"); } void NWNX_Creature_LevelDown(object creature, int count=1) { - string sFunc = "LevelDown"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, count); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(count); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "LevelDown"); } void NWNX_Creature_SetChallengeRating(object creature, float fCR) { - string sFunc = "SetChallengeRating"; - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, fCR); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushFloat(fCR); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetChallengeRating"); } int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchAttack = FALSE, int isOffhand = FALSE, int includeBaseAttackBonus = TRUE) { - string sFunc = "GetAttackBonus"; - if (isMelee == -1) { object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, creature); @@ -1578,573 +1537,745 @@ int NWNX_Creature_GetAttackBonus(object creature, int isMelee = -1, int isTouchA isMelee = TRUE; } } - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, includeBaseAttackBonus); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isOffhand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isTouchAttack); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isMelee); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(includeBaseAttackBonus); + NWNXPushInt(isOffhand); + NWNXPushInt(isTouchAttack); + NWNXPushInt(isMelee); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetAttackBonus"); + return NWNXPopInt(); } int NWNX_Creature_GetHighestLevelOfFeat(object creature, int feat) { - string sFunc = "GetHighestLevelOfFeat"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetHighestLevelOfFeat"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatRemainingUses(object creature, int feat) { - string sFunc = "GetFeatRemainingUses"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatRemainingUses"); + return NWNXPopInt(); } int NWNX_Creature_GetFeatTotalUses(object creature, int feat) { - string sFunc = "GetFeatTotalUses"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetFeatTotalUses"); + return NWNXPopInt(); } void NWNX_Creature_SetFeatRemainingUses(object creature, int feat, int uses) { - string sFunc = "SetFeatRemainingUses"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, uses); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, feat); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(uses); + NWNXPushInt(feat); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFeatRemainingUses"); } int NWNX_Creature_GetTotalEffectBonus(object creature, int bonusType=NWNX_CREATURE_BONUS_TYPE_ATTACK, object target=OBJECT_INVALID, int isElemental=0, int isForceMax=0, int savetype=-1, int saveSpecificType=-1, int skill=-1, int abilityScore=-1, int isOffhand=FALSE) { - string sFunc = "GetTotalEffectBonus"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isOffhand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, abilityScore); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, skill); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, saveSpecificType); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, savetype); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isForceMax); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isElemental); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, target); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bonusType); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(isOffhand); + NWNXPushInt(abilityScore); + NWNXPushInt(skill); + NWNXPushInt(saveSpecificType); + NWNXPushInt(savetype); + NWNXPushInt(isForceMax); + NWNXPushInt(isElemental); + NWNXPushObject(target); + NWNXPushInt(bonusType); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetTotalEffectBonus"); + return NWNXPopInt(); } void NWNX_Creature_SetOriginalName(object creature, string name, int isLastName) { - string sFunc = "SetOriginalName"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isLastName); - NWNX_PushArgumentString(NWNX_Creature, sFunc, name); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(isLastName); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetOriginalName"); } string NWNX_Creature_GetOriginalName(object creature, int isLastName) { - string sFunc = "GetOriginalName"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, isLastName); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueString(NWNX_Creature, sFunc); + NWNXPushInt(isLastName); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetOriginalName"); + return NWNXPopString(); } void NWNX_Creature_SetSpellResistance(object creature, int sr) { - string sFunc = "SetSpellResistance"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, sr); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(sr); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpellResistance"); } void NWNX_Creature_SetAnimalCompanionCreatureType(object creature, int type) { - string sFunc = "SetAnimalCompanionCreatureType"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, type); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(type); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAnimalCompanionCreatureType"); } void NWNX_Creature_SetFamiliarCreatureType(object creature, int type) { - string sFunc = "SetFamiliarCreatureType"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, type); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(type); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFamiliarCreatureType"); } void NWNX_Creature_SetAnimalCompanionName(object creature, string name) { - string sFunc = "SetAnimalCompanionName"; - - NWNX_PushArgumentString(NWNX_Creature, sFunc, name); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetAnimalCompanionName"); } void NWNX_Creature_SetFamiliarName(object creature, string name) { - string sFunc = "SetFamiliarName"; - - NWNX_PushArgumentString(NWNX_Creature, sFunc, name); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushString(name); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetFamiliarName"); } int NWNX_Creature_GetDisarmable(object creature) { - string sFunc = "GetDisarmable"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "GetDisarmable"); + return NWNXPopInt(); } void NWNX_Creature_SetDisarmable(object creature, int disarmable) { - string sFunc = "SetDisarmable"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, disarmable); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -int NWNX_Creature_GetDomain(object creature, int class, int index) -{ - WriteTimestampedLogEntry("NWNX_Creature: GetDomain() is deprecated. Please use the basegame's GetDomain() instead"); - - return GetDomain(creature, index, class); + NWNXPushInt(disarmable); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetDisarmable"); } void NWNX_Creature_SetDomain(object creature, int class, int index, int domain) { - string sFunc = "SetDomain"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, domain); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, index); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -int NWNX_Creature_GetSpecialization(object creature, int class) -{ - WriteTimestampedLogEntry("NWNX_Creature: GetSpecialization() is deprecated. Please use the basegame's GetSpecialization() instead"); - - return GetSpecialization(creature, class); + NWNXPushInt(domain); + NWNXPushInt(index); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetDomain"); } void NWNX_Creature_SetSpecialization(object creature, int class, int school) { - string sFunc = "SetSpecialization"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, school); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, class); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, creature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(school); + NWNXPushInt(class); + NWNXPushObject(creature); + NWNXCall(NWNX_Creature, "SetSpecialization"); } void NWNX_Creature_SetFaction(object oCreature, int nFactionId) { - string sFunc = "SetFaction"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nFactionId); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nFactionId); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetFaction"); } int NWNX_Creature_GetFaction(object oCreature) { - string sFunc = "GetFaction"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetFaction"); + return NWNXPopInt(); } int NWNX_Creature_GetFlatFooted(object oCreature) { - string sFunc = "GetFlatFooted"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetFlatFooted"); + return NWNXPopInt(); } string NWNX_Creature_SerializeQuickbar(object oCreature) { - string sFunc = "SerializeQuickbar"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueString(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SerializeQuickbar"); + return NWNXPopString(); } int NWNX_Creature_DeserializeQuickbar(object oCreature, string sSerializedQuickbar) { - string sFunc = "DeserializeQuickbar"; - - NWNX_PushArgumentString(NWNX_Creature, sFunc, sSerializedQuickbar); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushString(sSerializedQuickbar); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DeserializeQuickbar"); + return NWNXPopInt(); } void NWNX_Creature_SetCasterLevelModifier(object oCreature, int nClass, int nModifier, int bPersist = FALSE) { - string sFunc = "SetCasterLevelModifier"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nModifier); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nClass); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nModifier); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCasterLevelModifier"); } int NWNX_Creature_GetCasterLevelModifier(object oCreature, int nClass) { - string sFunc = "GetCasterLevelModifier"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nClass); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCasterLevelModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCasterLevelOverride(object oCreature, int nClass, int nCasterLevel, int bPersist = FALSE) { - string sFunc = "SetCasterLevelOverride"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nCasterLevel); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nClass); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nCasterLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCasterLevelOverride"); } int NWNX_Creature_GetCasterLevelOverride(object oCreature, int nClass) { - string sFunc = "GetCasterLevelOverride"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nClass); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCasterLevelOverride"); + return NWNXPopInt(); } void NWNX_Creature_JumpToLimbo(object oCreature) { - string sFunc = "JumpToLimbo"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "JumpToLimbo"); } void NWNX_Creature_SetCriticalMultiplierModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalMultiplierModifier"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nModifier); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nModifier); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalMultiplierModifier"); } int NWNX_Creature_GetCriticalMultiplierModifier(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalMultiplierModifier"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCriticalMultiplierModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalMultiplierOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalMultiplierOverride"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nOverride); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nOverride); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalMultiplierOverride"); } int NWNX_Creature_GetCriticalMultiplierOverride(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalMultiplierOverride"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCriticalMultiplierOverride"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalRangeModifier(object oCreature, int nModifier, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalRangeModifier"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nModifier); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nModifier); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalRangeModifier"); } int NWNX_Creature_GetCriticalRangeModifier(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalRangeModifier"; + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "GetCriticalRangeModifier"); + return NWNXPopInt(); } void NWNX_Creature_SetCriticalRangeOverride(object oCreature, int nOverride, int nHand = 0, int bPersist = FALSE, int nBaseItem = -1) { - string sFunc = "SetCriticalRangeOverride"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nOverride); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushInt(bPersist); + NWNXPushInt(nHand); + NWNXPushInt(nOverride); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCriticalRangeOverride"); } int NWNX_Creature_GetCriticalRangeOverride(object oCreature, int nHand = 0, int nBaseItem = -1) { - string sFunc = "GetCriticalRangeOverride"; + NWNXPushInt(nBaseItem); + NWNXPushInt(nHand); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nBaseItem); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nHand); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "GetCriticalRangeOverride"); + return NWNXPopInt(); } void NWNX_Creature_AddAssociate(object oCreature, object oAssociate, int nAssociateType) { - string sFunc = "AddAssociate"; + NWNXPushInt(nAssociateType); + NWNXPushObject(oAssociate); + NWNXPushObject(oCreature); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nAssociateType); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oAssociate); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - - NWNX_CallFunction(NWNX_Creature, sFunc); -} - -void NWNX_Creature_SetEffectIconFlashing(object oCreature, int nIconId, int bFlashing) -{ - string sFunc = "SetEffectIconFlashing"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bFlashing); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nIconId); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXCall(NWNX_Creature, "AddAssociate"); } void NWNX_Creature_OverrideDamageLevel(object oCreature, int nDamageLevel) { - string sFunc = "OverrideDamageLevel"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nDamageLevel); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nDamageLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "OverrideDamageLevel"); } void NWNX_Creature_SetEncounter(object oCreature, object oEncounter) { - string sFunc = "SetEncounter"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oEncounter); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oEncounter); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetEncounter"); } object NWNX_Creature_GetEncounter(object oCreature) { - string sFunc = "GetEncounter"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetEncounter"); + return NWNXPopObject(); } int NWNX_Creature_GetIsBartering(object oCreature) { - string sFunc = "GetIsBartering"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetIsBartering"); + return NWNXPopInt(); } void NWNX_Creature_SetLastItemCasterLevel(object oCreature, int nCasterLvl) { - string sFunc = "SetLastItemCasterLevel"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nCasterLvl); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nCasterLvl); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLastItemCasterLevel"); } int NWNX_Creature_GetLastItemCasterLevel(object oCreature) { - string sFunc = "GetLastItemCasterLevel"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetLastItemCasterLevel"); + return NWNXPopInt(); } int NWNX_Creature_GetArmorClassVersus(object oAttacked, object oVersus, int nTouch=FALSE) { - string sFunc = "GetArmorClassVersus"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nTouch); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oVersus); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oAttacked); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushInt(nTouch); + NWNXPushObject(oVersus); + NWNXPushObject(oAttacked); + NWNXCall(NWNX_Creature, "GetArmorClassVersus"); + return NWNXPopInt(); } int NWNX_Creature_GetWalkAnimation(object oCreature) { - string sFunc = "GetWalkAnimation"; - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetWalkAnimation"); + return NWNXPopInt(); } void NWNX_Creature_SetWalkAnimation(object oCreature, int nAnimation) { - string sFunc = "SetWalkAnimation"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nAnimation); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nAnimation); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetWalkAnimation"); } void NWNX_Creature_SetAttackRollOverride(object oCreature, int nRoll, int nModifier) { - string sFunc = "SetAttackRollOverride"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nModifier); - NWNX_PushArgumentInt(NWNX_Creature, sFunc, nRoll); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(nModifier); + NWNXPushInt(nRoll); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetAttackRollOverride"); } void NWNX_Creature_SetParryAllAttacks(object oCreature, int bParry) { - string sFunc = "SetParryAllAttacks"; - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bParry); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bParry); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetParryAllAttacks"); } int NWNX_Creature_GetNoPermanentDeath(object oCreature) { - string sFunc = "GetNoPermanentDeath"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Creature, sFunc); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetNoPermanentDeath"); + return NWNXPopInt(); } void NWNX_Creature_SetNoPermanentDeath(object oCreature, int bNoPermanentDeath) { - string sFunc = "SetNoPermanentDeath"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bNoPermanentDeath); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushInt(bNoPermanentDeath); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetNoPermanentDeath"); } vector NWNX_Creature_ComputeSafeLocation(object oCreature, vector vPosition, float fRadius = 20.0f, int bWalkStraightLineRequired = TRUE) { - string sFunc = "ComputeSafeLocation"; - - NWNX_PushArgumentInt(NWNX_Creature, sFunc, bWalkStraightLineRequired); - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, fRadius); - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, vPosition.x); - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, vPosition.y); - NWNX_PushArgumentFloat(NWNX_Creature, sFunc, vPosition.z); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); - - vector v; - v.z = NWNX_GetReturnValueFloat(NWNX_Creature, sFunc); - v.y = NWNX_GetReturnValueFloat(NWNX_Creature, sFunc); - v.x = NWNX_GetReturnValueFloat(NWNX_Creature, sFunc); - - return v; + NWNXPushInt(bWalkStraightLineRequired); + NWNXPushFloat(fRadius); + NWNXPushVector(vPosition); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "ComputeSafeLocation"); + return NWNXPopVector(); } void NWNX_Creature_DoPerceptionUpdateOnCreature(object oCreature, object oTargetCreature) { - string sFunc = "DoPerceptionUpdateOnCreature"; - - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oTargetCreature); - NWNX_PushArgumentObject(NWNX_Creature, sFunc, oCreature); - NWNX_CallFunction(NWNX_Creature, sFunc); + NWNXPushObject(oTargetCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoPerceptionUpdateOnCreature"); +} + +float NWNX_Creature_GetPersonalSpace(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetPersonalSpace"); + return NWNXPopFloat(); +} + +void NWNX_Creature_SetPersonalSpace(object oCreature, float fPerspace) +{ + NWNXPushFloat(fPerspace); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetPersonalSpace"); +} + +float NWNX_Creature_GetCreaturePersonalSpace(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetCreaturePersonalSpace"); + return NWNXPopFloat(); +} + +void NWNX_Creature_SetCreaturePersonalSpace(object oCreature, float fCrePerspace) +{ + NWNXPushFloat(fCrePerspace); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetCreaturePersonalSpace"); +} + +float NWNX_Creature_GetHeight(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetHeight"); + return NWNXPopFloat(); +} + +void NWNX_Creature_SetHeight(object oCreature, float fHeight) +{ + NWNXPushFloat(fHeight); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetHeight"); +} + +float NWNX_Creature_GetHitDistance(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetHitDistance"); + return NWNXPopFloat(); +} + +void NWNX_Creature_SetHitDistance(object oCreature, float fHitDist) +{ + NWNXPushFloat(fHitDist); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetHitDistance"); +} + +float NWNX_Creature_GetPreferredAttackDistance(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetPreferredAttackDistance"); + return NWNXPopFloat(); +} + +void NWNX_Creature_SetPreferredAttackDistance(object oCreature, float fPrefAtckDist) +{ + NWNXPushFloat(fPrefAtckDist); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetPreferredAttackDistance"); +} + +int NWNX_Creature_GetArmorCheckPenalty(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetArmorCheckPenalty"); + return NWNXPopInt(); +} + +int NWNX_Creature_GetShieldCheckPenalty(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetShieldCheckPenalty"); + return NWNXPopInt(); +} + +void NWNX_Creature_SetBypassEffectImmunity(object oCreature, int nImmunityType, int nChance = 100, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nChance); + NWNXPushInt(nImmunityType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetBypassEffectImmunity"); +} + +int NWNX_Creature_GetBypassEffectImmunity(object oCreature, int nImmunityType) +{ + NWNXPushInt(nImmunityType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetBypassEffectImmunity"); + return NWNXPopInt(); +} + +void NWNX_Creature_SetLastKiller(object oCreature, object oKiller) +{ + NWNXPushObject(oKiller); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLastKiller"); +} + +void NWNX_Creature_DoItemCastSpell(object oCreature, object oTarget, location locTarget, int nSpellID, int nCasterLevel, float fProjectileTime, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int nProjectileSpellID = -1, object oItem = OBJECT_INVALID, string sImpactScript = "") +{ + NWNXPushString(sImpactScript); + NWNXPushObject(oItem); + NWNXPushInt(nProjectileSpellID); + NWNXPushInt(nProjectilePathType); + NWNXPushFloat(fProjectileTime); + NWNXPushInt(nCasterLevel); + NWNXPushInt(nSpellID); + NWNXPushLocation(locTarget); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoItemCastSpell"); +} + +int NWNX_Creature_RunEquip(object oCreature, object oItem, int nInventorySlot) +{ + NWNXPushInt(nInventorySlot); + NWNXPushObject(oItem); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "RunEquip"); + return NWNXPopInt(); +} + +int NWNX_Creature_RunUnequip(object oCreature, object oItem) +{ + NWNXPushObject(oItem); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "RunUnequip"); + return NWNXPopInt(); +} + +void NWNX_Creature_OverrideRangedProjectileVFX(object oCreature, int nProjectileVFX, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nProjectileVFX); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "OverrideRangedProjectileVFX"); +} + +void NWNX_Creature_SetInitiativeModifier(object oCreature, int nMod, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nMod); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetInitiativeModifier"); +} + +int NWNX_Creature_GetInitiativeModifier(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetInitiativeModifier"); + return NWNXPopInt(); +} + +object NWNX_Creature_GetBodyBag(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetBodyBag"); + return NWNXPopObject(); +} + +int NWNX_Creature_AddCastSpellActions(object oCreature, object oTarget, vector vTargetLocation, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE, int nDomainLevel = 0, int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT, int bInstant = FALSE, int bClearActions = FALSE, int bAddToFront = FALSE) +{ + NWNXPushInt(bAddToFront); + NWNXPushInt(bClearActions); + NWNXPushInt(bInstant); + NWNXPushInt(nProjectilePathType); + NWNXPushInt(nDomainLevel); + NWNXPushInt(nMetaMagic); + NWNXPushInt(nMultiClass); + NWNXPushInt(nSpellID); + NWNXPushVector(vTargetLocation); + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "AddCastSpellActions"); + return NWNXPopInt(); +} + +int NWNX_Creature_GetIsFlanking(object oCreature, object oTargetCreature) +{ + NWNXPushObject(oTargetCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetIsFlanking"); + return NWNXPopInt(); +} + +void NWNX_Creature_DecrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel) +{ + NWNXPushInt(nSpellLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DecrementRemainingSpellSlots"); +} + +void NWNX_Creature_IncrementRemainingSpellSlots(object oCreature, int nClass, int nSpellLevel) +{ + NWNXPushInt(nSpellLevel); + NWNXPushInt(nClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "IncrementRemainingSpellSlots"); +} + +int NWNX_Creature_GetMaximumBonusAttacks(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaximumBonusAttacks"); + return NWNXPopInt(); +} + +void NWNX_Creature_SetMaximumBonusAttacks(object oCreature, int nMaxBonusAttacks, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nMaxBonusAttacks); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMaximumBonusAttacks"); +} + +void NWNX_Creature_DoCleaveAttack(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "DoCleaveAttack"); +} + +object NWNX_Creature_GetLockOrientationToObject(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetLockOrientationToObject"); + return NWNXPopObject(); +} + +void NWNX_Creature_SetLockOrientationToObject(object oCreature, object oTarget) +{ + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetLockOrientationToObject"); +} + +void NWNX_Creature_BroadcastAttackOfOpportunity(object oCreature, object oSingleCreature = OBJECT_INVALID, int bMovement = FALSE) +{ + NWNXPushInt(bMovement); + NWNXPushObject(oSingleCreature); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "BroadcastAttackOfOpportunity"); +} + +int NWNX_Creature_GetMaxSellToStorePriceOverride(object oCreature, object oStore) +{ + NWNXPushObject(oStore); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaxSellToStorePriceOverride"); + + return NWNXPopInt(); +} + +void NWNX_Creature_SetMaxSellToStorePriceOverride(object oCreature, object oStore, int nMaxSellToPrice) +{ + NWNXPushInt(nMaxSellToPrice); + NWNXPushObject(oStore); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMaxSellToStorePriceOverride"); +} + +int NWNX_Creature_GetAbilityIncreaseByLevel(object oCreature, int nLevel) +{ + NWNXPushInt(nLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetAbilityIncreaseByLevel"); + return NWNXPopInt(); +} + +void NWNX_Creature_SetAbilityIncreaseByLevel(object oCreature, int nLevel, int nAbility) +{ + NWNXPushInt(nAbility); + NWNXPushInt(nLevel); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetAbilityIncreaseByLevel"); +} + +float NWNX_Creature_GetMaxAttackRange(object oCreature, object oTarget) +{ + NWNXPushObject(oTarget); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMaxAttackRange"); + return NWNXPopFloat(); +} + +int NWNX_Creature_GetMulticlassLimit(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetMulticlassLimit"); + return NWNXPopInt(); +} + + +void NWNX_Creature_SetMulticlassLimit(object oCreature, int nLimit, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nLimit); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "SetMulticlassLimit"); +} + +int NWNX_Creature_GetNumberOfBonusSpells(object oCreature, int nMultiClass, int nSpellLevel) +{ + NWNXPushInt(nSpellLevel); + NWNXPushInt(nMultiClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "GetNumberOfBonusSpells"); + return NWNXPopInt(); +} + +void NWNX_Creature_ModifyNumberBonusSpells(object oCreature, int nMultiClass, int nSpellLevel, int nDelta) +{ + NWNXPushInt(nDelta); + NWNXPushInt(nSpellLevel); + NWNXPushInt(nMultiClass); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Creature, "ModifyNumberBonusSpells"); } diff --git a/_module/nss/nwnx_damage.nss b/_module/nss/nwnx_damage.nss index 3e206ea2..a8bdc048 100644 --- a/_module/nss/nwnx_damage.nss +++ b/_module/nss/nwnx_damage.nss @@ -2,7 +2,6 @@ /// @brief Run a script before damage and attack events allowing for modification. Includes function to arbitrarily apply damage. /// @{ /// @file nwnx_damage.nss -#include "nwnx" const string NWNX_Damage = "NWNX_Damage"; ///< @private @@ -24,6 +23,26 @@ struct NWNX_Damage_DamageEventData int iPositive; ///< Positive damage int iSonic; ///< Sonic damage int iBase; ///< Base damage + int iCustom1; ///< Custom1 damage + int iCustom2; ///< Custom2 damage + int iCustom3; ///< Custom3 damage + int iCustom4; ///< Custom4 damage + int iCustom5; ///< Custom5 damage + int iCustom6; ///< Custom6 damage + int iCustom7; ///< Custom7 damage + int iCustom8; ///< Custom8 damage + int iCustom9; ///< Custom9 damage + int iCustom10; ///< Custom10 damage + int iCustom11; ///< Custom11 damage + int iCustom12; ///< Custom12 damage + int iCustom13; ///< Custom13 damage + int iCustom14; ///< Custom14 damage + int iCustom15; ///< Custom15 damage + int iCustom16; ///< Custom16 damage + int iCustom17; ///< Custom17 damage + int iCustom18; ///< Custom18 damage + int iCustom19; ///< Custom19 damage + int iSpellId; ///< The spell id associated with the damage or -1 if not known. }; /// @struct NWNX_Damage_AttackEventData @@ -44,10 +63,34 @@ struct NWNX_Damage_AttackEventData int iPositive; ///< Positive damage int iSonic; ///< Sonic damage int iBase; ///< Base damage + int iCustom1; ///< Custom1 damage + int iCustom2; ///< Custom2 damage + int iCustom3; ///< Custom3 damage + int iCustom4; ///< Custom4 damage + int iCustom5; ///< Custom5 damage + int iCustom6; ///< Custom6 damage + int iCustom7; ///< Custom7 damage + int iCustom8; ///< Custom8 damage + int iCustom9; ///< Custom9 damage + int iCustom10; ///< Custom10 damage + int iCustom11; ///< Custom11 damage + int iCustom12; ///< Custom12 damage + int iCustom13; ///< Custom13 damage + int iCustom14; ///< Custom14 damage + int iCustom15; ///< Custom15 damage + int iCustom16; ///< Custom16 damage + int iCustom17; ///< Custom17 damage + int iCustom18; ///< Custom18 damage + int iCustom19; ///< Custom19 damage int iAttackNumber; ///< 1-based index of the attack in current combat round - int iAttackResult; ///< 1=hit, 3=critical hit, 4=miss, 8=concealed - int iAttackType; ///< 1=main hand, 2=offhand, 3-5=creature, 6=haste - int iSneakAttack; ///< 0=neither, 1=sneak attack, 2=death attack, 3=both + int iAttackResult; ///< 1=hit, 2=parried, 3=critical hit, 4=miss, 5=resisted, 7=automatic hit, 8=concealed, 9=miss chance, 10=devastating crit + int iWeaponAttackType; ///< 1=main hand, 2=offhand, 3-5=creature, 6=extra(haste), 7=unarmed, 8=unarmed extra + int iSneakAttack; ///< 0=neither, 1=sneak attack, 2=death attack, 3=both + int bRangedAttack; /// TRUE if it is a ranged attack + int bKillingBlow; ///< TRUE if the hit is a killing blow + int iAttackType; ///< 65002=Attack of Opportunity, 65003=Riposte or a FeatID like KnockDown or some other special attack. + int iToHitRoll; ///< The to hit roll of the attack + int iToHitModifier; ///< The to hit modifier of the attack }; /// @struct NWNX_Damage_DamageData @@ -66,13 +109,32 @@ struct NWNX_Damage_DamageData int iNegative; ///< Negative damage int iPositive; ///< Positive damage int iSonic; ///< Sonic damage + int iCustom1; ///< Custom1 damage + int iCustom2; ///< Custom2 damage + int iCustom3; ///< Custom3 damage + int iCustom4; ///< Custom4 damage + int iCustom5; ///< Custom5 damage + int iCustom6; ///< Custom6 damage + int iCustom7; ///< Custom7 damage + int iCustom8; ///< Custom8 damage + int iCustom9; ///< Custom9 damage + int iCustom10; ///< Custom10 damage + int iCustom11; ///< Custom11 damage + int iCustom12; ///< Custom12 damage + int iCustom13; ///< Custom13 damage + int iCustom14; ///< Custom14 damage + int iCustom15; ///< Custom15 damage + int iCustom16; ///< Custom16 damage + int iCustom17; ///< Custom17 damage + int iCustom18; ///< Custom18 damage + int iCustom19; ///< Custom19 damage int iPower; ///< For overcoming DR }; /// @brief Sets the script to run with a damage event. /// @param sScript The script that will handle the damage event. /// @param oOwner An object if only executing for a specific object or OBJECT_INVALID for global. -void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVALID); +void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner = OBJECT_INVALID); /// @brief Get Damage Event Data /// @return A NWNX_Damage_DamageEventData struct. @@ -87,7 +149,7 @@ void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data); /// @brief Sets the script to run with an attack event. /// @param sScript The script that will handle the attack event. /// @param oOwner An object if only executing for a specific object or OBJECT_INVALID for global. -void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVALID); +void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner = OBJECT_INVALID); /// @brief Get Attack Event Data /// @return A NWNX_Damage_AttackEventData struct. @@ -97,6 +159,7 @@ struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData(); /// @brief Set Attack Event Data /// @param data A NWNX_Damage_AttackEventData struct. /// @note To use only in the Attack Event Script. +/// @note Setting iSneakAttack will only change the attack roll message and floating text feedback. Immunities and damage will have already been resolved by the time the attack event script is ran. void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data); /// @brief Deal damage to a target. @@ -105,149 +168,230 @@ void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data); /// @param oTarget The target object on whom the damage is dealt. /// @param oSource The source of the damage. /// @param iRanged Whether the attack should be treated as ranged by the engine (for example when considering damage inflicted by Acid Sheath and other such effects) -void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource=OBJECT_SELF, int iRanged = FALSE); +void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource = OBJECT_SELF, int iRanged = FALSE); /// @} void NWNX_Damage_SetDamageEventScript(string sScript, object oOwner=OBJECT_INVALID) { - string sFunc = "SetEventScript"; - - NWNX_PushArgumentObject(NWNX_Damage, sFunc, oOwner); - NWNX_PushArgumentString(NWNX_Damage, sFunc, sScript); - NWNX_PushArgumentString(NWNX_Damage, sFunc, "DAMAGE"); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushObject(oOwner); + NWNXPushString(sScript); + NWNXPushString("DAMAGE"); + NWNXCall(NWNX_Damage, "SetEventScript"); } struct NWNX_Damage_DamageEventData NWNX_Damage_GetDamageEventData() { - string sFunc = "GetDamageEventData"; struct NWNX_Damage_DamageEventData data; - - NWNX_CallFunction(NWNX_Damage, sFunc); - - data.oDamager = NWNX_GetReturnValueObject(NWNX_Damage, sFunc); - data.iBludgeoning = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iPierce = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iSlash = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iMagical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iAcid = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iCold = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iDivine = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iElectrical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iFire = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iNegative = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iPositive = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iSonic = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iBase = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - + NWNXCall(NWNX_Damage, "GetDamageEventData"); + data.oDamager = NWNXPopObject(); + data.iBludgeoning = NWNXPopInt(); + data.iPierce = NWNXPopInt(); + data.iSlash = NWNXPopInt(); + data.iMagical = NWNXPopInt(); + data.iAcid = NWNXPopInt(); + data.iCold = NWNXPopInt(); + data.iDivine = NWNXPopInt(); + data.iElectrical = NWNXPopInt(); + data.iFire = NWNXPopInt(); + data.iNegative = NWNXPopInt(); + data.iPositive = NWNXPopInt(); + data.iSonic = NWNXPopInt(); + data.iBase = NWNXPopInt(); + data.iCustom1 = NWNXPopInt(); + data.iCustom2 = NWNXPopInt(); + data.iCustom3 = NWNXPopInt(); + data.iCustom4 = NWNXPopInt(); + data.iCustom5 = NWNXPopInt(); + data.iCustom6 = NWNXPopInt(); + data.iCustom7 = NWNXPopInt(); + data.iCustom8 = NWNXPopInt(); + data.iCustom9 = NWNXPopInt(); + data.iCustom10 = NWNXPopInt(); + data.iCustom11 = NWNXPopInt(); + data.iCustom12 = NWNXPopInt(); + data.iCustom13 = NWNXPopInt(); + data.iCustom14 = NWNXPopInt(); + data.iCustom15 = NWNXPopInt(); + data.iCustom16 = NWNXPopInt(); + data.iCustom17 = NWNXPopInt(); + data.iCustom18 = NWNXPopInt(); + data.iCustom19 = NWNXPopInt(); + data.iSpellId = NWNXPopInt(); return data; } void NWNX_Damage_SetDamageEventData(struct NWNX_Damage_DamageEventData data) { - string sFunc = "SetDamageEventData"; + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(data.iBase); + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBase); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXCall(NWNX_Damage, "SetDamageEventData"); } void NWNX_Damage_SetAttackEventScript(string sScript, object oOwner=OBJECT_INVALID) { - string sFunc = "SetEventScript"; - - NWNX_PushArgumentObject(NWNX_Damage, sFunc, oOwner); - NWNX_PushArgumentString(NWNX_Damage, sFunc, sScript); - NWNX_PushArgumentString(NWNX_Damage, sFunc, "ATTACK"); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushObject(oOwner); + NWNXPushString(sScript); + NWNXPushString("ATTACK"); + NWNXCall(NWNX_Damage, "SetEventScript"); } struct NWNX_Damage_AttackEventData NWNX_Damage_GetAttackEventData() { - string sFunc = "GetAttackEventData"; struct NWNX_Damage_AttackEventData data; - - NWNX_CallFunction(NWNX_Damage, sFunc); - - data.oTarget = NWNX_GetReturnValueObject(NWNX_Damage, sFunc); - data.iBludgeoning = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iPierce = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iSlash = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iMagical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iAcid = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iCold = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iDivine = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iElectrical = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iFire = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iNegative = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iPositive = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iSonic = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iBase = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iAttackNumber = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iAttackResult = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iAttackType = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - data.iSneakAttack = NWNX_GetReturnValueInt(NWNX_Damage, sFunc); - + NWNXCall(NWNX_Damage, "GetAttackEventData"); + data.oTarget = NWNXPopObject(); + data.iBludgeoning = NWNXPopInt(); + data.iPierce = NWNXPopInt(); + data.iSlash = NWNXPopInt(); + data.iMagical = NWNXPopInt(); + data.iAcid = NWNXPopInt(); + data.iCold = NWNXPopInt(); + data.iDivine = NWNXPopInt(); + data.iElectrical = NWNXPopInt(); + data.iFire = NWNXPopInt(); + data.iNegative = NWNXPopInt(); + data.iPositive = NWNXPopInt(); + data.iSonic = NWNXPopInt(); + data.iBase = NWNXPopInt(); + data.iCustom1 = NWNXPopInt(); + data.iCustom2 = NWNXPopInt(); + data.iCustom3 = NWNXPopInt(); + data.iCustom4 = NWNXPopInt(); + data.iCustom5 = NWNXPopInt(); + data.iCustom6 = NWNXPopInt(); + data.iCustom7 = NWNXPopInt(); + data.iCustom8 = NWNXPopInt(); + data.iCustom9 = NWNXPopInt(); + data.iCustom10 = NWNXPopInt(); + data.iCustom11 = NWNXPopInt(); + data.iCustom12 = NWNXPopInt(); + data.iCustom13 = NWNXPopInt(); + data.iCustom14 = NWNXPopInt(); + data.iCustom15 = NWNXPopInt(); + data.iCustom16 = NWNXPopInt(); + data.iCustom17 = NWNXPopInt(); + data.iCustom18 = NWNXPopInt(); + data.iCustom19 = NWNXPopInt(); + data.iAttackNumber = NWNXPopInt(); + data.iAttackResult = NWNXPopInt(); + data.iWeaponAttackType = NWNXPopInt(); + data.iSneakAttack = NWNXPopInt(); + data.bKillingBlow = NWNXPopInt(); + data.iAttackType = NWNXPopInt(); + data.iToHitRoll = NWNXPopInt(); + data.iToHitModifier = NWNXPopInt(); + data.bRangedAttack = NWNXPopInt(); return data; } void NWNX_Damage_SetAttackEventData(struct NWNX_Damage_AttackEventData data) { - string sFunc = "SetAttackEventData"; - - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAttackResult); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBase); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushInt(data.iSneakAttack); + NWNXPushInt(data.iAttackResult); + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(data.iBase); + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); + NWNXCall(NWNX_Damage, "SetAttackEventData"); } void NWNX_Damage_DealDamage(struct NWNX_Damage_DamageData data, object oTarget, object oSource, int iRanged = FALSE) { - string sFunc = "DealDamage"; - - NWNX_PushArgumentInt(NWNX_Damage, sFunc, iRanged); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPower); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSonic); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPositive); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iNegative); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iFire); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iElectrical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iDivine); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iCold); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iAcid); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iMagical); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iSlash); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iPierce); - NWNX_PushArgumentInt(NWNX_Damage, sFunc, data.iBludgeoning); - NWNX_PushArgumentObject(NWNX_Damage, sFunc, oTarget); - NWNX_PushArgumentObject(NWNX_Damage, sFunc, oSource); - - NWNX_CallFunction(NWNX_Damage, sFunc); + NWNXPushInt(iRanged); + NWNXPushInt(data.iPower); + NWNXPushInt(data.iCustom19); + NWNXPushInt(data.iCustom18); + NWNXPushInt(data.iCustom17); + NWNXPushInt(data.iCustom16); + NWNXPushInt(data.iCustom15); + NWNXPushInt(data.iCustom14); + NWNXPushInt(data.iCustom13); + NWNXPushInt(data.iCustom12); + NWNXPushInt(data.iCustom11); + NWNXPushInt(data.iCustom10); + NWNXPushInt(data.iCustom9); + NWNXPushInt(data.iCustom8); + NWNXPushInt(data.iCustom7); + NWNXPushInt(data.iCustom6); + NWNXPushInt(data.iCustom5); + NWNXPushInt(data.iCustom4); + NWNXPushInt(data.iCustom3); + NWNXPushInt(data.iCustom2); + NWNXPushInt(data.iCustom1); + NWNXPushInt(0);// Padding for Base Damage + NWNXPushInt(data.iSonic); + NWNXPushInt(data.iPositive); + NWNXPushInt(data.iNegative); + NWNXPushInt(data.iFire); + NWNXPushInt(data.iElectrical); + NWNXPushInt(data.iDivine); + NWNXPushInt(data.iCold); + NWNXPushInt(data.iAcid); + NWNXPushInt(data.iMagical); + NWNXPushInt(data.iSlash); + NWNXPushInt(data.iPierce); + NWNXPushInt(data.iBludgeoning); + NWNXPushObject(oTarget); + NWNXPushObject(oSource); + NWNXCall(NWNX_Damage, "DealDamage"); } diff --git a/_module/nss/nwnx_deprecated.nss b/_module/nss/nwnx_deprecated.nss new file mode 100644 index 00000000..f3be16cf --- /dev/null +++ b/_module/nss/nwnx_deprecated.nss @@ -0,0 +1,483 @@ +// The following functions have been removed from NWNX, please replace them with their basegame implementation! +// To use this file, include it to nwnx.nss and recompile all your scripts. + +// *** NWNX_Creature + +/// @name Cleric Domains +/// @anchor cleric_domains +/// +/// The clerical domains. +/// @{ +const int NWNX_CREATURE_CLERIC_DOMAIN_AIR = 0; +const int NWNX_CREATURE_CLERIC_DOMAIN_ANIMAL = 1; +const int NWNX_CREATURE_CLERIC_DOMAIN_DEATH = 3; +const int NWNX_CREATURE_CLERIC_DOMAIN_DESTRUCTION = 4; +const int NWNX_CREATURE_CLERIC_DOMAIN_EARTH = 5; +const int NWNX_CREATURE_CLERIC_DOMAIN_EVIL = 6; +const int NWNX_CREATURE_CLERIC_DOMAIN_FIRE = 7; +const int NWNX_CREATURE_CLERIC_DOMAIN_GOOD = 8; +const int NWNX_CREATURE_CLERIC_DOMAIN_HEALING = 9; +const int NWNX_CREATURE_CLERIC_DOMAIN_KNOWLEDGE = 10; +const int NWNX_CREATURE_CLERIC_DOMAIN_MAGIC = 13; +const int NWNX_CREATURE_CLERIC_DOMAIN_PLANT = 14; +const int NWNX_CREATURE_CLERIC_DOMAIN_PROTECTION = 15; +const int NWNX_CREATURE_CLERIC_DOMAIN_STRENGTH = 16; +const int NWNX_CREATURE_CLERIC_DOMAIN_SUN = 17; +const int NWNX_CREATURE_CLERIC_DOMAIN_TRAVEL = 18; +const int NWNX_CREATURE_CLERIC_DOMAIN_TRICKERY = 19; +const int NWNX_CREATURE_CLERIC_DOMAIN_WAR = 20; +const int NWNX_CREATURE_CLERIC_DOMAIN_WATER = 21; +/// @} + +/// @struct NWNX_Creature_MemorisedSpell +/// @brief A memorised spell structure. +struct NWNX_Creature_MemorisedSpell +{ + int id; ///< Spell ID + int ready; ///< Whether the spell can be cast + int meta; ///< Metamagic type, if any + int domain; ///< Clerical domain, if any +}; + +/// @brief Gets the count of memorised spells for a creature's class at a level. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @return The memorised spell count. +int NWNX_Creature_GetMemorisedSpellCountByLevel(object creature, int class, int level); + +/// @brief Gets the memorised spell at a class level's index. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). +/// @return An NWNX_Creature_MemorisedSpell() struct. +struct NWNX_Creature_MemorisedSpell NWNX_Creature_GetMemorisedSpell(object creature, int class, int level, int index); + +/// @brief Sets the memorised spell at a class level's index. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). +/// @param spell An NWNX_Creature_MemorisedSpell() struct. +void NWNX_Creature_SetMemorisedSpell(object creature, int class, int level, int index, struct NWNX_Creature_MemorisedSpell spell); + +/// @brief Gets the known spell count (innate casting) at a class level. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @return The known spell count. +int NWNX_Creature_GetKnownSpellCount(object creature, int class, int level); + +/// @brief Gets the known spell at a class level's index. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetKnownSpellCount(). +/// @return The spell id. +int NWNX_Creature_GetKnownSpell(object creature, int class, int level, int index); + +/// @brief Clear a specific spell from the creature's spellbook for class +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param spellId The spell to clear. +void NWNX_Creature_ClearMemorisedKnownSpells(object creature, int class, int spellId); + +/// @brief Clear the memorised spell of the creature for the class, level and index. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param level The spell level. +/// @param index The index. Index bounds: 0 <= index < NWNX_Creature_GetMemorisedSpellCountByLevel(). +void NWNX_Creature_ClearMemorisedSpell(object creature, int class, int level, int index); + +/// @brief Get the soundset index for creature. +/// @param creature The creature object. +/// @return The soundset used by the creature. +int NWNX_Creature_GetSoundset(object creature); + +/// @brief Set the soundset index for creature. +/// @param creature The creature object. +/// @param soundset The soundset index. +void NWNX_Creature_SetSoundset(object creature, int soundset); + +/// @brief Sets the creature gender. +/// @param creature The creature object. +/// @param gender The GENDER_ constant. +void NWNX_Creature_SetGender(object creature, int gender); + +/// @brief Restore all creature spells per day for given level. +/// @param creature The creature object. +/// @param level The level to restore. If -1, all spells are restored. +void NWNX_Creature_RestoreSpells(object creature, int level = -1); + +/// @brief Gets one of creature's domains. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @param index The first or second domain. +/// @deprecated Use GetDomain(). This will be removed in future NWNX releases. +int NWNX_Creature_GetDomain(object creature, int class, int index); + +/// @brief Gets the creature's specialist school. +/// @param creature The creature object. +/// @param class The class id from classes.2da. (Not class index 0-2) +/// @deprecated Use GetSpecialization(). This will be removed in future NWNX releases. +int NWNX_Creature_GetSpecialization(object creature, int class); + +/// @brief Get the number of uses left of a spell. +/// @note This function is for caster classes that don't need to memorize spells. +/// @param oCreature The creature. +/// @param nSpellID The spell ID. +/// @param nMultiClass The position of the class to check, 0-2 +/// @param nDomainLevel The domain level if checking a domain spell. +/// @param nMetaMagic A METAMAGIC_* constant. +/// @return The number of spell uses left or 0 on error. +int NWNX_Creature_GetSpellUsesLeft(object oCreature, int nSpellID, int nMultiClass, int nDomainLevel = 0, int nMetaMagic = METAMAGIC_NONE); + +/// @brief Get the number of memorized ready spells by spellid. +/// @note This function is for caster classes that need to memorize spells. +/// @param oCreature The creature. +/// @param nSpellID The spell ID. +/// @param nMultiClass The position of the class to check, 0-2 +/// @param nMetaMagic A METAMAGIC_* constant. +/// @return The number of spell uses left or 0 on error. +int NWNX_Creature_GetMemorizedSpellReadyCount(object oCreature, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE); + +/// @brief Set whether an effect icon is flashing or not. +/// @param oCreature The target creature. +/// @param nIconId The icon id, see effecticons.2da. +/// @param bFlashing TRUE for flashing, FALSE for not flashing. +void NWNX_Creature_SetEffectIconFlashing(object oCreature, int nIconId, int bFlashing); + +int NWNX_Creature_GetMemorisedSpellCountByLevel(object creature, int class, int level) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetMemorisedSpellCountByLevel"); + return GetMemorizedSpellCountByLevel(creature, class, level); +} + +struct NWNX_Creature_MemorisedSpell NWNX_Creature_GetMemorisedSpell(object creature, int class, int level, int index) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetMemorisedSpell"); + struct NWNX_Creature_MemorisedSpell spell; + spell.domain = GetMemorizedSpellIsDomainSpell(creature, class, level, index); + spell.meta = GetMemorizedSpellMetaMagic(creature, class, level, index); + spell.ready = GetMemorizedSpellReady(creature, class, level, index); + spell.id = GetMemorizedSpellId(creature, class, level, index); + return spell; +} + +void NWNX_Creature_SetMemorisedSpell(object creature, int class, int level, int index, struct NWNX_Creature_MemorisedSpell spell) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_SetMemorisedSpell"); + SetMemorizedSpell(creature, class, level, index, spell.id, spell.ready, spell.meta, spell.domain); +} + +int NWNX_Creature_GetKnownSpellCount(object creature, int class, int level) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetKnownSpellCount"); + return GetKnownSpellCount(creature, class, level); +} + +int NWNX_Creature_GetKnownSpell(object creature, int class, int level, int index) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetKnownSpell"); + return GetKnownSpellId(creature, class, level, index); +} + +void NWNX_Creature_ClearMemorisedKnownSpells(object creature, int class, int spellId) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_ClearMemorisedKnownSpells"); + ClearMemorizedSpellBySpellId(creature, class, spellId); +} + +void NWNX_Creature_ClearMemorisedSpell(object creature, int class, int level, int index) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_ClearMemorisedSpell"); + ClearMemorizedSpell(creature, class, level, index); +} + +int NWNX_Creature_GetSoundset(object creature) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetSoundset"); + return GetSoundset(creature); +} + +void NWNX_Creature_SetSoundset(object creature, int soundset) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_SetSoundset"); + SetSoundset(creature, soundset); +} + +void NWNX_Creature_SetGender(object creature, int gender) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_SetGender"); + SetGender(creature, gender); +} + +void NWNX_Creature_RestoreSpells(object creature, int level = -1) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_RestoreSpells"); + if (level == -1) + { + int i; + for (i = 0; i < 10; i++) + { + ReadySpellLevel(creature, i); + } + } + else + ReadySpellLevel(creature, level); + +} + +int NWNX_Creature_GetDomain(object creature, int class, int index) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetDomain"); + return GetDomain(creature, index, class); +} + +int NWNX_Creature_GetSpecialization(object creature, int class) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetSpecialization"); + return GetSpecialization(creature, class); +} + +int NWNX_Creature_GetSpellUsesLeft(object oCreature, int nSpellID, int nMultiClass, int nDomainLevel = 0, int nMetaMagic = METAMAGIC_NONE) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetSpellUsesLeft"); + return GetSpellUsesLeft(oCreature, GetClassByPosition(nMultiClass + 1), nSpellID, nMetaMagic, nDomainLevel); +} + +int NWNX_Creature_GetMemorizedSpellReadyCount(object oCreature, int nSpellID, int nMultiClass, int nMetaMagic = METAMAGIC_NONE) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_GetMemorizedSpellReadyCount"); + return GetSpellUsesLeft(oCreature, GetClassByPosition(nMultiClass + 1), nSpellID, nMetaMagic); +} + +void NWNX_Creature_SetEffectIconFlashing(object oCreature, int nIconId, int bFlashing) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Creature_SetEffectIconFlashing"); + SetEffectIconFlashing(oCreature, nIconId, bFlashing); +} + +// *** NWNX_Effect + +/// @brief Set a script with optional data that runs when an effect expires +/// @param e The effect. +/// @param script The script to run when the effect expires. +/// @param data Any other data you wish to send back to the script. +/// @remark OBJECT_SELF in the script is the object the effect is applied to. +/// @note Only works for TEMPORARY and PERMANENT effects applied to an object. +effect NWNX_Effect_SetEffectExpiredScript(effect e, string script, string data = ""); + +/// @brief Get the data set with NWNX_Effect_SetEffectExpiredScript() +/// @note Should only be called from a script set with NWNX_Effect_SetEffectExpiredScript(). +/// @return The data attached to the effect. +string NWNX_Effect_GetEffectExpiredData(); + +/// @brief Get the effect creator. +/// @note Should only be called from a script set with NWNX_Effect_SetEffectExpiredScript(). +/// @return The object from which the effect originated. +object NWNX_Effect_GetEffectExpiredCreator(); + +/// @brief Accessorize an EffectVisualEffect(), making it undispellable and unable to be removed by resting or death. +/// @note If linked with a non-visualeffect or a non-accessorized visualeffect it *will* get removed. +/// @param eEffect An EffectVisualEffect(), does not work for other effect types. +/// @return The accessorized effect or an unchanged effect if not an EffectVisualEffect(). +effect NWNX_Effect_AccessorizeVisualEffect(effect eEffect); + +effect NWNX_Effect_SetEffectExpiredScript(effect e, string script, string data = "") +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Effect_SetEffectExpiredScript"); + return EffectLinkEffects(EffectRunScript("", script, "", 0.0f, data), e); +} + +string NWNX_Effect_GetEffectExpiredData() +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Effect_GetEffectExpiredData"); + return GetEffectString(GetLastRunScriptEffect(), 0); +} + +object NWNX_Effect_GetEffectExpiredCreator() +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Effect_GetEffectExpiredCreator"); + return GetEffectCreator(GetLastRunScriptEffect()); +} + +effect NWNX_Effect_AccessorizeVisualEffect(effect eEffect) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Effect_AccessorizeVisualEffect"); + if (GetEffectType(eEffect) == EFFECT_TYPE_VISUALEFFECT) + return UnyieldingEffect(eEffect); + else + return eEffect; +} + +// *** NWNX_Object + +/// @brief Convert an object id to the actual object. +/// @param id The object id. +/// @return An object from the provided object ID. +/// @remark This is the counterpart to ObjectToString. +/// @deprecated Use the basegame StringToObject() function. This will be removed in a future NWNX release. +object NWNX_Object_StringToObject(string id); + +/// @brief Check if an item can fit in an object's inventory. +/// @param obj The object with an inventory. +/// @param baseitem The base item id to check for a fit. +/// @return TRUE if an item of base item type can fit in object's inventory +int NWNX_Object_CheckFit(object obj, int baseitem); + +/// @brief Add an effect to an object that displays an icon and has no other effect. +/// @remark See effecticons.2da for a list of possible effect icons. +/// @param obj The object to apply the effect. +/// @param nIcon The icon id. +/// @param fDuration If specified the effect will be temporary and last this length in seconds, otherwise the effect +/// will be permanent. +void NWNX_Object_AddIconEffect(object obj, int nIcon, float fDuration=0.0); + +/// @brief Remove an icon effect from an object that was added by the NWNX_Object_AddIconEffect() function. +/// @param obj The object. +/// @param nIcon The icon id. +void NWNX_Object_RemoveIconEffect(object obj, int nIcon); + +/// @brief Cause oObject to face fDirection. +/// @note This function is almost identical to SetFacing(), the only difference being that it allows you to specify +/// the target object without the use of AssignCommand(). This is useful when you want to change the facing of an object +/// in an ExecuteScriptChunk() call where AssignCommand() does not work. +/// @param oObject The object to change its facing of +/// @param fDirection The direction the object should face +void NWNX_Object_SetFacing(object oObject, float fDirection); + +object NWNX_Object_StringToObject(string id) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Object_StringToObject"); + return StringToObject(id); +} + +int NWNX_Object_CheckFit(object obj, int baseitem) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Object_CheckFit"); + return GetBaseItemFitsInInventory(baseitem, obj); +} + +void NWNX_Object_AddIconEffect(object obj, int nIcon, float fDuration=0.0) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Object_AddIconEffect"); + effect eEffect = GetFirstEffect(obj); + while (GetIsEffectValid(eEffect)) + { + if (GetEffectTag(eEffect) == "NWNX_Object_IconEffect" && GetEffectInteger(eEffect, 0) == nIcon) + RemoveEffect(obj, eEffect); + eEffect = GetNextEffect(obj); + } + + effect eIcon = TagEffect(SupernaturalEffect(EffectIcon(nIcon)), "NWNX_Object_IconEffect"); + ApplyEffectToObject(fDuration == 0.0 ? DURATION_TYPE_PERMANENT : DURATION_TYPE_TEMPORARY, eIcon, obj, fDuration); +} + +void NWNX_Object_RemoveIconEffect(object obj, int nIcon) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Object_RemoveIconEffect"); + effect eEffect = GetFirstEffect(obj); + while (GetIsEffectValid(eEffect)) + { + if (GetEffectTag(eEffect) == "NWNX_Object_IconEffect" && GetEffectInteger(eEffect, 0) == nIcon) + RemoveEffect(obj, eEffect); + eEffect = GetNextEffect(obj); + } +} + +void NWNX_Object_SetFacing(object oObject, float fDirection) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Object_SetFacing"); + AssignCommand(oObject, SetFacing(fDirection)); +} + +// *** NWNX_Regex + +/// @param str The string to search. +/// @param regex The regular expression to use when searching. +/// @return TRUE if string matches the regular expression. +int NWNX_Regex_Search(string str, string regex); + +/// @brief Replaces any matches of the regular expression with a string. +/// @param str The string to search. +/// @param regex The regular expression to use when searching. +/// @param replace The string to replace the matches with. +/// @param firstOnly Set to TRUE to only replace the first match. +/// @return A new string with any replacements made. +string NWNX_Regex_Replace(string str, string regex, string replace = "", int firstOnly = FALSE); + +/// @brief Returns all matches in a string that match the regular expression. +/// @param str The string to search. +/// @param regex The regular expression to use. +/// @return A json array with json arrays of all (sub)matches. Returns JsonNull() on error. +json NWNX_Regex_Match(string str, string regex); + +int NWNX_Regex_Search(string str, string regex) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Regex_Search"); + return JsonGetLength(RegExpMatch(regex, str)); +} + +string NWNX_Regex_Replace(string str, string regex, string replace="", int firstOnly=0) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Regex_Replace"); + return RegExpReplace(regex, str, replace, firstOnly ? REGEXP_FORMAT_FIRST_ONLY : REGEXP_FORMAT_DEFAULT); +} + +json NWNX_Regex_Match(string str, string regex) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Regex_Match"); + return RegExpIterate(regex, str); +} + +// *** NWNX_Util + +/// @brief Determines if the supplied resref exists. +/// @param resref The resref to check. +/// @param type The @ref resref_types "Resref Type". +/// @return TRUE/FALSE +int NWNX_Util_IsValidResRef(string resref, int type = RESTYPE_UTC); + +/// @anchor twoda_row_count +/// @brief Gets the row count for a 2da. +/// @param str The 2da to check (do not include the .2da). +/// @return The amount of rows in the 2da. +int NWNX_Util_Get2DARowCount(string str); + +/// @brief Gets the contents of a .nss script file as a string. +/// @param sScriptName The name of the script to get the contents of. +/// @param nMaxLength The max length of the return string, -1 to get everything +/// @return The script file contents or "" on error. +string NWNX_Util_GetNSSContents(string sScriptName, int nMaxLength = -1); + +/// @brief Get the ticks per second of the server. +/// @remark Useful to dynamically detect lag and adjust behavior accordingly. +/// @return The ticks per second. +int NWNX_Util_GetServerTicksPerSecond(); + +int NWNX_Util_IsValidResRef(string resref, int type = RESTYPE_UTC) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Util_IsValidResRef"); + return ResManGetAliasFor(resref, type) != ""; +} + +int NWNX_Util_Get2DARowCount(string str) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Util_Get2DARowCount"); + return Get2DARowCount(str); +} + +string NWNX_Util_GetNSSContents(string sScriptName, int nMaxLength = -1) +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Util_GetNSSContents"); + string s = ResManGetFileContents(sScriptName, RESTYPE_NSS); + return nMaxLength == -1 ? s : GetStringLeft(s, nMaxLength); +} + +int NWNX_Util_GetServerTicksPerSecond() +{ + WriteTimestampedLogEntry("WARNING: Calling deprecated NWNX Function: NWNX_Util_GetServerTicksPerSecond"); + return GetTickRate(); +} diff --git a/_module/nss/nwnx_dialog.nss b/_module/nss/nwnx_dialog.nss index 744943b5..f270c5cc 100644 --- a/_module/nss/nwnx_dialog.nss +++ b/_module/nss/nwnx_dialog.nss @@ -3,8 +3,6 @@ /// @{ /// @file nwnx_dialog.nss -#include "nwnx" - const string NWNX_Dialog = "NWNX_Dialog"; ///< @private /// @name Dialog Node Types @@ -80,60 +78,46 @@ void NWNX_Dialog_End(object oObject); int NWNX_Dialog_GetCurrentNodeType() { - string sFunc = "GetCurrentNodeType"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(NWNX_Dialog, sFunc); + NWNXCall(NWNX_Dialog, "GetCurrentNodeType"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentScriptType() { - string sFunc = "GetCurrentScriptType"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(NWNX_Dialog, sFunc); + NWNXCall(NWNX_Dialog, "GetCurrentScriptType"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentNodeID() { - string sFunc = "GetCurrentNodeID"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(NWNX_Dialog, sFunc); + NWNXCall(NWNX_Dialog, "GetCurrentNodeID"); + return NWNXPopInt(); } int NWNX_Dialog_GetCurrentNodeIndex() { - string sFunc = "GetCurrentNodeIndex"; - - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueInt(NWNX_Dialog, sFunc); + NWNXCall(NWNX_Dialog, "GetCurrentNodeIndex"); + return NWNXPopInt(); } string NWNX_Dialog_GetCurrentNodeText(int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE) { - string sFunc = "GetCurrentNodeText"; - - NWNX_PushArgumentInt(NWNX_Dialog, sFunc, gender); - NWNX_PushArgumentInt(NWNX_Dialog, sFunc, language); - NWNX_CallFunction(NWNX_Dialog, sFunc); - return NWNX_GetReturnValueString(NWNX_Dialog, sFunc); + NWNXPushInt(gender); + NWNXPushInt(language); + NWNXCall(NWNX_Dialog, "GetCurrentNodeText"); + return NWNXPopString(); } void NWNX_Dialog_SetCurrentNodeText(string text, int language=NWNX_DIALOG_LANGUAGE_ENGLISH, int gender=GENDER_MALE) { - string sFunc = "SetCurrentNodeText"; - - NWNX_PushArgumentInt(NWNX_Dialog, sFunc, gender); - NWNX_PushArgumentInt(NWNX_Dialog, sFunc, language); - NWNX_PushArgumentString(NWNX_Dialog, sFunc, text); - NWNX_CallFunction(NWNX_Dialog, sFunc); + NWNXPushInt(gender); + NWNXPushInt(language); + NWNXPushString(text); + NWNXCall(NWNX_Dialog, "SetCurrentNodeText"); } void NWNX_Dialog_End(object oObject) { - string sFunc = "End"; - - NWNX_PushArgumentObject(NWNX_Dialog, sFunc, oObject); - NWNX_CallFunction(NWNX_Dialog, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Dialog, "End"); } diff --git a/_module/nss/nwnx_effect.nss b/_module/nss/nwnx_effect.nss index fdc61035..566b0b63 100644 --- a/_module/nss/nwnx_effect.nss +++ b/_module/nss/nwnx_effect.nss @@ -2,13 +2,27 @@ /// @brief Utility functions to manipulate the builtin effect type. /// @{ /// @file nwnx_effect.nss -#include "nwnx" const string NWNX_Effect = "NWNX_Effect"; ///< @private +/// EQUIPPED effects are always associated with a slotted item: +/// Setting this duration type requires the effect creator +/// to be set to the (already equipped) item that should remove +/// this effect when unequipped. +/// Removal behaviour for effects where the creator is NOT a equipped +/// item is undefined. +/// They are not removed by resting, cannot be dispelled, etc. +const int DURATION_TYPE_EQUIPPED = 3; + +/// These are feat/racial effects used internally by the game to +/// implement things like movement speed changes and darkvision. +/// They cannot be removed by resting, dispelling, etc. +const int DURATION_TYPE_INNATE = 4; + /// An unpacked effect struct NWNX_EffectUnpacked { + string sID; ///< @todo Describe int nType; ///< @todo Describe int nSubType; ///< @todo Describe @@ -54,6 +68,8 @@ struct NWNX_EffectUnpacked vector vParam1; ///< @todo Describe string sTag; ///< @todo Describe + + string sItemProp; ///< @todo Describe }; /// @brief Convert native effect type to unpacked structure. @@ -66,194 +82,273 @@ struct NWNX_EffectUnpacked NWNX_Effect_UnpackEffect(effect e); /// @return The effect. effect NWNX_Effect_PackEffect(struct NWNX_EffectUnpacked e); -/// @brief Set a script with optional data that runs when an effect expires -/// @param e The effect. -/// @param script The script to run when the effect expires. -/// @param data Any other data you wish to send back to the script. -/// @remark OBJECT_SELF in the script is the object the effect is applied to. -/// @note Only works for TEMPORARY and PERMANENT effects applied to an object. -effect NWNX_Effect_SetEffectExpiredScript(effect e, string script, string data = ""); - -/// @brief Get the data set with NWNX_Effect_SetEffectExpiredScript() -/// @note Should only be called from a script set with NWNX_Effect_SetEffectExpiredScript(). -/// @return The data attached to the effect. -string NWNX_Effect_GetEffectExpiredData(); - -/// @brief Get the effect creator. -/// @note Should only be called from a script set with NWNX_Effect_SetEffectExpiredScript(). -/// @return The object from which the effect originated. -object NWNX_Effect_GetEffectExpiredCreator(); - /// @brief replace an already applied effect on an object /// Only duration, subtype, tag and spell related fields can be overwritten. /// @note eNew and eOld need to have the same type. /// @return Number of internal effects updated. int NWNX_Effect_ReplaceEffect(object obj, effect eOld, effect eNew); +/// @brief Gets the true effect count +/// @param oObject The object to get the count of. +/// @return the number of effects (item properties and other non-exposed effects included) +int NWNX_Effect_GetTrueEffectCount(object oObject); + +/// @brief Gets a specific effect on an object. This can grab effects normally hidden from developers, such as item properties. +/// @param oObject The object with the effect +/// @param nIndex The point in the array to retrieve (0 to GetTrueEffectCount()) +/// @return A constructed NWNX_EffectUnpacked. +struct NWNX_EffectUnpacked NWNX_Effect_GetTrueEffect(object oObject, int nIndex); + +/// @brief Replaces an already applied effect with another. +/// @param oObject The object with the effect to replace +/// @param nIndex The array element to be replaced +/// @param e The unpacked effect to replace it with. +/// @note Cannot replace an effect with a different type or ID. +void NWNX_Effect_ReplaceEffectByIndex(object oObject, int nIndex, struct NWNX_EffectUnpacked e); + +/// @brief Removes effect by ID +/// @param oObject The object to remove the effect from +/// @param sID The id of the effect, can be retrieved by unpacking effects. +/// @return FALSE/0 on failure TRUE/1 on success. +int NWNX_Effect_RemoveEffectById(object oObject, string sID); + +/// @brief Applies an effect, bypassing any processing done by ApplyEffectToObject +/// @param eEffect The effect to be applied. +/// @param oObject The object to apply it to. +void NWNX_Effect_Apply(effect eEffect, object oObject); + +/// @brief Sets an effect creator. +/// @param eEffect The effect to be modified. +/// @param oObject The effect creator. +/// @return The effect with creator field set. +effect NWNX_Effect_SetEffectCreator(effect eEffect, object oObject); + +/// @brief Checks if the given effect is valid. Unlike the game builtin, this call considers internal types too. +/// @param eEffect The effect to check +/// @return TRUE if the effect is valid (including internal types). +int NWNX_Effect_GetIsEffectValid(effect eEffect); + +/// @brief Returns the number of applied effects on the given object. +/// @param oObject The object to get the applied effect count for. +/// @return The number of applied effects, including internal. +int NWNX_Effect_GetAppliedEffectCount(object oObject); + +/// @brief Returns the nNth applied effect on a object. +/// @param oObject The object to get the applied effect copy for. +/// @param nNth The effect index to get. +/// @note Make sure to check with NWNX_Effect_GetIsEffectValid, as this iterator also includes internal effects. +/// @return A copy of the applied game effect, or a invalid effect. +effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth); + /// @} -struct NWNX_EffectUnpacked NWNX_Effect_UnpackEffect(effect e) +struct NWNX_EffectUnpacked __NWNX_Effect_ResolveUnpack(int bLink=TRUE) { - string sFunc = "UnpackEffect"; - - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, e); - NWNX_CallFunction(NWNX_Effect, sFunc); - struct NWNX_EffectUnpacked n; - n.sTag = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - float fZ = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - float fY = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - float fX = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.vParam1 = Vector(fX, fY, fZ); - fZ = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - fY = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - fX = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.vParam0 = Vector(fX, fY, fZ); - n.oParam3 = NWNX_GetReturnValueObject(NWNX_Effect, sFunc); - n.oParam2 = NWNX_GetReturnValueObject(NWNX_Effect, sFunc); - n.oParam1 = NWNX_GetReturnValueObject(NWNX_Effect, sFunc); - n.oParam0 = NWNX_GetReturnValueObject(NWNX_Effect, sFunc); - n.sParam5 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.sParam4 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.sParam3 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.sParam2 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.sParam1 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.sParam0 = NWNX_GetReturnValueString(NWNX_Effect, sFunc); - n.fParam3 = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.fParam2 = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.fParam1 = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.fParam0 = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); - n.nParam7 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam6 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam5 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam4 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam3 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam2 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam1 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nParam0 = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nNumIntegers = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); + n.sItemProp = NWNXPopString(); - n.bLinkRightValid = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.eLinkRight = NWNX_GetReturnValueEffect(NWNX_Effect, sFunc); - n.bLinkLeftValid = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.eLinkLeft = NWNX_GetReturnValueEffect(NWNX_Effect, sFunc); + n.sTag = NWNXPopString(); - n.nCasterLevel = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.bShowIcon = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.bExpose = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nSpellId = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.oCreator = NWNX_GetReturnValueObject(NWNX_Effect, sFunc); + n.vParam1 = NWNXPopVector(); + n.vParam0 = NWNXPopVector(); + n.oParam3 = NWNXPopObject(); + n.oParam2 = NWNXPopObject(); + n.oParam1 = NWNXPopObject(); + n.oParam0 = NWNXPopObject(); + n.sParam5 = NWNXPopString(); + n.sParam4 = NWNXPopString(); + n.sParam3 = NWNXPopString(); + n.sParam2 = NWNXPopString(); + n.sParam1 = NWNXPopString(); + n.sParam0 = NWNXPopString(); + n.fParam3 = NWNXPopFloat(); + n.fParam2 = NWNXPopFloat(); + n.fParam1 = NWNXPopFloat(); + n.fParam0 = NWNXPopFloat(); + n.nParam7 = NWNXPopInt(); + n.nParam6 = NWNXPopInt(); + n.nParam5 = NWNXPopInt(); + n.nParam4 = NWNXPopInt(); + n.nParam3 = NWNXPopInt(); + n.nParam2 = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam0 = NWNXPopInt(); + n.nNumIntegers = NWNXPopInt(); - n.nExpiryTimeOfDay = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nExpiryCalendarDay = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.fDuration = NWNX_GetReturnValueFloat(NWNX_Effect, sFunc); + if(bLink) + { + n.bLinkRightValid = NWNXPopInt(); + n.eLinkRight = NWNXPopEffect(); + n.bLinkLeftValid = NWNXPopInt(); + n.eLinkLeft = NWNXPopEffect(); + } + else + { + n.bLinkRightValid = FALSE; + n.bLinkLeftValid = FALSE; + } - n.nSubType = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); - n.nType = NWNX_GetReturnValueInt(NWNX_Effect, sFunc); + n.nCasterLevel = NWNXPopInt(); + n.bShowIcon = NWNXPopInt(); + n.bExpose = NWNXPopInt(); + n.nSpellId = NWNXPopInt(); + n.oCreator = NWNXPopObject(); + + n.nExpiryTimeOfDay = NWNXPopInt(); + n.nExpiryCalendarDay = NWNXPopInt(); + n.fDuration = NWNXPopFloat(); + + n.nSubType = NWNXPopInt(); + n.nType = NWNXPopInt(); + n.sID = NWNXPopString(); return n; } + +void __NWNX_Effect_ResolvePack(struct NWNX_EffectUnpacked e, int bReplace=FALSE) +{ + if(!bReplace) + NWNXPushInt(e.nType); + + NWNXPushInt(e.nSubType); + + NWNXPushFloat(e.fDuration); + NWNXPushInt(e.nExpiryCalendarDay); + NWNXPushInt(e.nExpiryTimeOfDay); + + NWNXPushObject(e.oCreator); + NWNXPushInt(e.nSpellId); + NWNXPushInt(e.bExpose); + NWNXPushInt(e.bShowIcon); + NWNXPushInt(e.nCasterLevel); + + if(!bReplace) + { + NWNXPushEffect(e.eLinkLeft); + NWNXPushInt(e.bLinkLeftValid); + NWNXPushEffect(e.eLinkRight); + NWNXPushInt(e.bLinkRightValid); + } + + NWNXPushInt(e.nNumIntegers); + NWNXPushInt(e.nParam0); + NWNXPushInt(e.nParam1); + NWNXPushInt(e.nParam2); + NWNXPushInt(e.nParam3); + NWNXPushInt(e.nParam4); + NWNXPushInt(e.nParam5); + NWNXPushInt(e.nParam6); + NWNXPushInt(e.nParam7); + NWNXPushFloat(e.fParam0); + NWNXPushFloat(e.fParam1); + NWNXPushFloat(e.fParam2); + NWNXPushFloat(e.fParam3); + NWNXPushString(e.sParam0); + NWNXPushString(e.sParam1); + NWNXPushString(e.sParam2); + NWNXPushString(e.sParam3); + NWNXPushString(e.sParam4); + NWNXPushString(e.sParam5); + NWNXPushObject(e.oParam0); + NWNXPushObject(e.oParam1); + NWNXPushObject(e.oParam2); + NWNXPushObject(e.oParam3); + + NWNXPushVector(e.vParam0); + NWNXPushVector(e.vParam1); + + NWNXPushString(e.sTag); + + NWNXPushString(e.sItemProp); +} + +struct NWNX_EffectUnpacked NWNX_Effect_UnpackEffect(effect e) +{ + NWNXPushEffect(e); + NWNXCall(NWNX_Effect, "UnpackEffect"); + return __NWNX_Effect_ResolveUnpack(); +} effect NWNX_Effect_PackEffect(struct NWNX_EffectUnpacked e) { - string sFunc = "PackEffect"; - - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nType); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nSubType); - - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.fDuration); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nExpiryCalendarDay); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nExpiryTimeOfDay); - - NWNX_PushArgumentObject(NWNX_Effect, sFunc, e.oCreator); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nSpellId); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.bExpose); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.bShowIcon); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nCasterLevel); - - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, e.eLinkLeft); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.bLinkLeftValid); - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, e.eLinkRight); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.bLinkRightValid); - - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nNumIntegers); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam0); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam1); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam2); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam3); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam4); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam5); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam6); - NWNX_PushArgumentInt(NWNX_Effect, sFunc, e.nParam7); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.fParam0); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.fParam1); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.fParam2); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.fParam3); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam0); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam1); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam2); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam3); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam4); - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sParam5); - NWNX_PushArgumentObject(NWNX_Effect, sFunc, e.oParam0); - NWNX_PushArgumentObject(NWNX_Effect, sFunc, e.oParam1); - NWNX_PushArgumentObject(NWNX_Effect, sFunc, e.oParam2); - NWNX_PushArgumentObject(NWNX_Effect, sFunc, e.oParam3); - - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam0.x); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam0.y); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam0.z); - - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam1.x); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam1.y); - NWNX_PushArgumentFloat(NWNX_Effect, sFunc, e.vParam1.z); - - NWNX_PushArgumentString(NWNX_Effect, sFunc, e.sTag); - - NWNX_CallFunction(NWNX_Effect, sFunc); - return NWNX_GetReturnValueEffect(NWNX_Effect, sFunc); -} - -effect NWNX_Effect_SetEffectExpiredScript(effect e, string script, string data = "") -{ - string sFunc = "SetEffectExpiredScript"; - - NWNX_PushArgumentString(NWNX_Effect, sFunc, data); - NWNX_PushArgumentString(NWNX_Effect, sFunc, script); - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, e); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueEffect(NWNX_Effect, sFunc); -} - -string NWNX_Effect_GetEffectExpiredData() -{ - string sFunc = "GetEffectExpiredData"; - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueString(NWNX_Effect, sFunc); -} - -object NWNX_Effect_GetEffectExpiredCreator() -{ - string sFunc = "GetEffectExpiredCreator"; - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Effect, sFunc); + __NWNX_Effect_ResolvePack(e); + NWNXCall(NWNX_Effect, "PackEffect"); + return NWNXPopEffect(); } int NWNX_Effect_ReplaceEffect(object obj, effect eOld, effect eNew) { - string sFunc = "ReplaceEffect"; - - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, eNew); - NWNX_PushArgumentEffect(NWNX_Effect, sFunc, eOld); - NWNX_PushArgumentObject(NWNX_Effect, sFunc, obj); - - NWNX_CallFunction(NWNX_Effect, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Effect, sFunc); + NWNXPushEffect(eNew); + NWNXPushEffect(eOld); + NWNXPushObject(obj); + NWNXCall(NWNX_Effect, "ReplaceEffect"); + return NWNXPopInt(); +} + +int NWNX_Effect_GetTrueEffectCount(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetTrueEffectCount"); + return NWNXPopInt(); +} + +struct NWNX_EffectUnpacked NWNX_Effect_GetTrueEffect(object oObject, int nIndex) +{ + NWNXPushInt(nIndex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetTrueEffect"); + return __NWNX_Effect_ResolveUnpack(FALSE); +} + +void NWNX_Effect_ReplaceEffectByIndex(object oObject, int nIndex, struct NWNX_EffectUnpacked e) +{ + __NWNX_Effect_ResolvePack(e, TRUE); + NWNXPushInt(nIndex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "ReplaceEffectByIndex"); +} + +int NWNX_Effect_RemoveEffectById(object oObject, string sID) +{ + NWNXPushString(sID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "RemoveEffectById"); + return NWNXPopInt(); +} + +void NWNX_Effect_Apply(effect eEffect, object oObject) +{ + NWNXPushObject(oObject); + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "Apply"); +} + +effect NWNX_Effect_SetEffectCreator(effect eEffect, object oObject) +{ + NWNXPushObject(oObject); + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "SetEffectCreator"); + return NWNXPopEffect(); +} + +int NWNX_Effect_GetIsEffectValid(effect eEffect) +{ + NWNXPushEffect(eEffect); + NWNXCall(NWNX_Effect, "GetIsEffectValid"); + return NWNXPopInt(); +} + +int NWNX_Effect_GetAppliedEffectCount(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetAppliedEffectCount"); + return NWNXPopInt(); +} + +effect NWNX_Effect_GetAppliedEffect(object oObject, int nNth) +{ + NWNXPushInt(nNth); + NWNXPushObject(oObject); + NWNXCall(NWNX_Effect, "GetAppliedEffect"); + return NWNXPopEffect(); } diff --git a/_module/nss/nwnx_elc.nss b/_module/nss/nwnx_elc.nss index 05049633..57bb7fbf 100644 --- a/_module/nss/nwnx_elc.nss +++ b/_module/nss/nwnx_elc.nss @@ -2,7 +2,6 @@ /// @brief Replacement for ValidateCharacter: ELC & ILR /// @{ /// @file nwnx_elc.nss -#include "nwnx" const string NWNX_ELC = "NWNX_ELC"; ///< @private @@ -21,11 +20,8 @@ const int NWNX_ELC_VALIDATION_FAILURE_TYPE_CUSTOM = 6; /// @anchor elc_fail_subtype /// @name ELC Failure Subtypes -/// @note By default these constants are commented out to avoid a -/// limitation on constants. Uncomment them as needed. /// @{ const int NWNX_ELC_SUBTYPE_NONE = 0; -/* const int NWNX_ELC_SUBTYPE_SERVER_LEVEL_RESTRICTION = 1; const int NWNX_ELC_SUBTYPE_LEVEL_HACK = 2; const int NWNX_ELC_SUBTYPE_COLORED_NAME = 3; @@ -75,7 +71,7 @@ const int NWNX_ELC_SUBTYPE_SKILL_LIST_COMPARISON = 48; const int NWNX_ELC_SUBTYPE_FEAT_LIST_COMPARISON = 49; const int NWNX_ELC_SUBTYPE_MISC_SAVING_THROW = 50; const int NWNX_ELC_SUBTYPE_NUM_FEAT_COMPARISON = 51; - */ +const int NWNX_ELC_SUBTYPE_NUM_MULTICLASS = 52; /// @} /// @brief Sets the script that runs whenever an ELC validation failure happens @@ -150,95 +146,71 @@ int NWNX_ELC_GetValidationFailureSpellID(); void NWNX_ELC_SetELCScript(string sScript) { - string sFunc = "SetELCScript"; - - NWNX_PushArgumentString(NWNX_ELC, sFunc, sScript); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushString(sScript); + NWNXCall(NWNX_ELC, "SetELCScript"); } void NWNX_ELC_EnableCustomELCCheck(int bEnabled) { - string sFunc = "EnableCustomELCCheck"; - - NWNX_PushArgumentInt(NWNX_ELC, sFunc, bEnabled); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushInt(bEnabled); + NWNXCall(NWNX_ELC, "EnableCustomELCCheck"); } void NWNX_ELC_SkipValidationFailure() { - string sFunc = "SkipValidationFailure"; - - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "SkipValidationFailure"); } int NWNX_ELC_GetValidationFailureType() { - string sFunc = "GetValidationFailureType"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureType"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSubType() { - string sFunc = "GetValidationFailureSubType"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureSubType"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureMessageStrRef() { - string sFunc = "GetValidationFailureMessageStrRef"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureMessageStrRef"); + return NWNXPopInt(); } void NWNX_ELC_SetValidationFailureMessageStrRef(int nStrRef) { - string sFunc = "SetValidationFailureMessageStrRef"; - - NWNX_PushArgumentInt(NWNX_ELC, sFunc, nStrRef); - NWNX_CallFunction(NWNX_ELC, sFunc); + NWNXPushInt(nStrRef); + NWNXCall(NWNX_ELC, "SetValidationFailureMessageStrRef"); } object NWNX_ELC_GetValidationFailureItem() { - string sFunc = "GetValidationFailureItem"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueObject(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureItem"); + return NWNXPopObject(); } int NWNX_ELC_GetValidationFailureLevel() { - string sFunc = "GetValidationFailureLevel"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureLevel"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSkillID() { - string sFunc = "GetValidationFailureSkillID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureSkillID"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureFeatID() { - string sFunc = "GetValidationFailureFeatID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureFeatID"); + return NWNXPopInt(); } int NWNX_ELC_GetValidationFailureSpellID() { - string sFunc = "GetValidationFailureSpellID"; - - NWNX_CallFunction(NWNX_ELC, sFunc); - return NWNX_GetReturnValueInt(NWNX_ELC, sFunc); + NWNXCall(NWNX_ELC, "GetValidationFailureSpellID"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_encounter.nss b/_module/nss/nwnx_encounter.nss index 8857184f..8aadcabe 100644 --- a/_module/nss/nwnx_encounter.nss +++ b/_module/nss/nwnx_encounter.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional encounter properties. /// @{ /// @file nwnx_encounter.nss -#include "nwnx" const string NWNX_Encounter = "NWNX_Encounter"; ///< @private @@ -15,6 +14,9 @@ struct NWNX_Encounter_CreatureListEntry int alreadyUsed; //< Creature has already been used. }; +/// @brief Immediately destroys the specified encounter object. +/// @param encounter The encounter object. +void NWNX_Encounter_Destroy(object encounter); /// @brief Get the number of creatures in the encounter list /// @param encounter The encounter object. @@ -53,6 +55,16 @@ int NWNX_Encounter_GetPlayerTriggeredOnly(object encounter); /// @param playerTriggeredOnly TRUE/FALSE void NWNX_Encounter_SetPlayerTriggeredOnly(object encounter, int playerTriggeredOnly); +/// @brief Get if the encounter respawns or not. +/// @param encounter The encounter object. +/// @return TRUE if the encounter does respawn, FALSE otherwise. +int NWNX_Encounter_GetCanReset(object encounter); + +/// @brief Set if the encounter respawns or not. +/// @param encounter The encounter object. +/// @param reset Does the encounter respawn TRUE or FALSE. +void NWNX_Encounter_SetCanReset(object encounter, int reset); + /// @brief Get the reset time of encounter. /// @param encounter The encounter object. /// @return The seconds the encounter is defined to reset. @@ -107,179 +119,148 @@ void NWNX_Encounter_SetGeometry(object oTrigger, string sGeometry); /// @} +void NWNX_Encounter_Destroy(object encounter) +{ + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "Destroy"); +} + int NWNX_Encounter_GetNumberOfCreaturesInEncounterList(object encounter) { - string sFunc = "GetNumberOfCreaturesInEncounterList"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetNumberOfCreaturesInEncounterList"); + return NWNXPopInt(); } struct NWNX_Encounter_CreatureListEntry NWNX_Encounter_GetEncounterCreatureByIndex(object encounter, int index) { - string sFunc = "GetEncounterCreatureByIndex"; struct NWNX_Encounter_CreatureListEntry creatureEntry; - - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, index); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); - - creatureEntry.alreadyUsed = NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); - creatureEntry.unique = NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); - creatureEntry.challengeRating = NWNX_GetReturnValueFloat(NWNX_Encounter, sFunc); - creatureEntry.resref = NWNX_GetReturnValueString(NWNX_Encounter, sFunc); - + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetEncounterCreatureByIndex"); + creatureEntry.alreadyUsed = NWNXPopInt(); + creatureEntry.unique = NWNXPopInt(); + creatureEntry.challengeRating = NWNXPopFloat(); + creatureEntry.resref = NWNXPopString(); return creatureEntry; } void NWNX_Encounter_SetEncounterCreatureByIndex(object encounter, int index, struct NWNX_Encounter_CreatureListEntry creatureEntry) { - string sFunc = "SetEncounterCreatureByIndex"; - - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, creatureEntry.alreadyUsed); - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, creatureEntry.unique); - NWNX_PushArgumentFloat(NWNX_Encounter, sFunc, creatureEntry.challengeRating); - NWNX_PushArgumentString(NWNX_Encounter, sFunc, creatureEntry.resref); - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, index); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(creatureEntry.alreadyUsed); + NWNXPushInt(creatureEntry.unique); + NWNXPushFloat(creatureEntry.challengeRating); + NWNXPushString(creatureEntry.resref); + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetEncounterCreatureByIndex"); } int NWNX_Encounter_GetFactionId(object encounter) { - string sFunc = "GetFactionId"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetFactionId"); + return NWNXPopInt(); } void NWNX_Encounter_SetFactionId(object encounter, int factionId) { - string sFunc = "SetFactionId"; - - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, factionId); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(factionId); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetFactionId"); } int NWNX_Encounter_GetPlayerTriggeredOnly(object encounter) { - string sFunc = "GetPlayerTriggeredOnly"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetPlayerTriggeredOnly"); + return NWNXPopInt(); } void NWNX_Encounter_SetPlayerTriggeredOnly(object encounter, int playerTriggeredOnly) { - string sFunc = "SetPlayerTriggeredOnly"; - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, playerTriggeredOnly); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); + NWNXPushInt(playerTriggeredOnly); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetPlayerTriggeredOnly"); +} - NWNX_CallFunction(NWNX_Encounter, sFunc); +int NWNX_Encounter_GetCanReset(object encounter) +{ + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetCanReset"); + return NWNXPopInt(); +} + +void NWNX_Encounter_SetCanReset(object encounter, int reset) +{ + NWNXPushInt(reset); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetCanReset"); } int NWNX_Encounter_GetResetTime(object encounter) { - string sFunc = "GetResetTime"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetResetTime"); + return NWNXPopInt(); } void NWNX_Encounter_SetResetTime(object encounter, int resetTime) { - string sFunc = "SetResetTime"; - - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, resetTime); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushInt(resetTime); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "SetResetTime"); } int NWNX_Encounter_GetNumberOfSpawnPoints(object encounter) { - string sFunc = "GetNumberOfSpawnPoints"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetNumberOfSpawnPoints"); + return NWNXPopInt(); } location NWNX_Encounter_GetSpawnPointByIndex(object encounter, int index) { - string sFunc = "GetSpawnPointByIndex"; - - NWNX_PushArgumentInt(NWNX_Encounter, sFunc, index); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - float o = NWNX_GetReturnValueFloat(NWNX_Encounter, sFunc); - float z = NWNX_GetReturnValueFloat(NWNX_Encounter, sFunc); - float y = NWNX_GetReturnValueFloat(NWNX_Encounter, sFunc); - float x = NWNX_GetReturnValueFloat(NWNX_Encounter, sFunc); - - return Location(GetArea(encounter), Vector(x, y, z), o); + NWNXPushInt(index); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetSpawnPointByIndex"); + float fOrientation = NWNXPopFloat(); + vector vPosition = NWNXPopVector(); + return Location(GetArea(encounter), vPosition, fOrientation); } int NWNX_Encounter_GetMinNumSpawned(object encounter) { - string sFunc = "GetMinNumSpawned"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetMinNumSpawned"); + return NWNXPopInt(); } int NWNX_Encounter_GetMaxNumSpawned(object encounter) { - string sFunc = "GetMaxNumSpawned"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetMaxNumSpawned"); + return NWNXPopInt(); } int NWNX_Encounter_GetCurrentNumSpawned(object encounter) { - string sFunc = "GetCurrentNumSpawned"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, encounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Encounter, sFunc); + NWNXPushObject(encounter); + NWNXCall(NWNX_Encounter, "GetCurrentNumSpawned"); + return NWNXPopInt(); } string NWNX_Encounter_GetGeometry(object oEncounter) { - string sFunc = "GetGeometry"; - - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, oEncounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); - - return NWNX_GetReturnValueString(NWNX_Encounter, sFunc); + NWNXPushObject(oEncounter); + NWNXCall(NWNX_Encounter, "GetGeometry"); + return NWNXPopString(); } void NWNX_Encounter_SetGeometry(object oEncounter, string sGeometry) { - string sFunc = "SetGeometry"; - - NWNX_PushArgumentString(NWNX_Encounter, sFunc, sGeometry); - NWNX_PushArgumentObject(NWNX_Encounter, sFunc, oEncounter); - NWNX_CallFunction(NWNX_Encounter, sFunc); + NWNXPushString(sGeometry); + NWNXPushObject(oEncounter); + NWNXCall(NWNX_Encounter, "SetGeometry"); } diff --git a/_module/nss/nwnx_events.nss b/_module/nss/nwnx_events.nss index cd22c034..0a15cde7 100644 --- a/_module/nss/nwnx_events.nss +++ b/_module/nss/nwnx_events.nss @@ -2,7 +2,6 @@ /// @brief Provides an interface for plugins to create event-based systems, and exposes some events through that interface. /// @{ /// @file nwnx_events.nss -#include "nwnx" const string NWNX_Events = "NWNX_Events"; ///< @private @@ -61,10 +60,10 @@ _______________________________________ Event Data Tag | Type | Notes ----------------------|--------|------- - FACTION_ID | int | Not the STANDARD_FACTION_* constants. See nwnx_creature->GetFaction(). - SUBJECT_FACTION_ID | int | Not the STANDARD_FACTION_* constants. See nwnx_creature->GetFaction(). - PREVIOUS_REPUTATION | int | - NEW_REPUTATION | int | Not yet clamped between 0-100. In the AFTER event, this will equal the EventResult set in the BEFORE event. + FACTION_ID | int | Not the STANDARD_FACTION_* constants. See nwnx_creature->GetFaction(). | + SUBJECT_FACTION_ID | int | Not the STANDARD_FACTION_* constants. See nwnx_creature->GetFaction(). | + PREVIOUS_REPUTATION | int | | + NEW_REPUTATION | int | Not yet clamped between 0-100. In the AFTER event, this will equal the EventResult set in the BEFORE event. | _______________________________________ ## Validate Use Item Events @@ -174,6 +173,9 @@ _______________________________________ ITEM | object | Convert to object with StringToObject()| SLOT | int | | + @note This event does not run on login as the base game OnPlayerEquipItem event does. (Because this event hooks CNWSCreature::RunEquip which calls CNWSCreature::EquipItem. When the player character is first loaded, EquipItem is called directly.) + @note If the goal is to prevent items from being equipped under certain conditions, and since this event does not run on login, it could be helpful to additionally use NWNX_Creature_RunUnequip() in the OnClientEnter (or similar) event. + _______________________________________ ## Item Unequip Events - NWNX_ON_ITEM_UNEQUIP_BEFORE @@ -232,6 +234,18 @@ _______________________________________ ITEM | object | Convert to object with StringToObject()| NUMBER_SPLIT_OFF | int | | +_______________________________________ + ## Item Merge Events + - NWNX_ON_ITEM_MERGE_BEFORE + - NWNX_ON_ITEM_MERGE_AFTER + + `OBJECT_SELF` = The player attempting to merge an item + + Event Data Tag | Type | Notes | + ----------------------|--------|-----------------------------------------------------------------------------------| + ITEM_TO_MERGE_INTO | object | Convert to object with StringToObject() | + ITEM_TO_MERGE | object | Convert to object with StringToObject() (May be OBJECT_INVALID in the AFTER event)| + _______________________________________ ## Acquire Item Events - NWNX_ON_ITEM_ACQUIRE_BEFORE @@ -265,9 +279,23 @@ _______________________________________ TARGET_POSITION_Z | float | | ACTION_RESULT | int | TRUE/FALSE, only in _AFTER events +_______________________________________ + ## Feat Decrement Remaining Uses Events + - NWNX_ON_DECREMENT_REMAINING_FEAT_USES_BEFORE + - NWNX_ON_DECREMENT_REMAINING_FEAT_USES_AFTER + + `OBJECT_SELF` = The object owning the feat + + Event Data Tag | Type | Notes | + ----------------------|--------|-------| + FEAT_ID | int | | + REMAINING_USES | int | Decremented by 1 in the _AFTER event if the _BEFORE event wasn't skipped | + + @note Skipping the _BEFORE event will prevent the feat uses being decremented + _______________________________________ ## Has Feat Events - - NWNX_ON_HASFEAT_BEFORE + - NWNX_ON_HAS_FEAT_BEFORE - NWNX_ON_HAS_FEAT_AFTER `OBJECT_SELF` = The player being checked for the feat @@ -463,22 +491,72 @@ _______________________________________ ----------------------|--------|------- PASSWORD | string | The password the DM provided, only valid for NWNX_ON_DM_PLAYERDM_LOGIN_* +_______________________________________ + ## DM Set Stat Events + - NWNX_ON_DM_SET_STAT_BEFORE + - NWNX_ON_DM_SET_STAT_AFTER + + `OBJECT_SELF` = The DM + + Event Data Tag | Type | Notes + ----------------------|--------|------- + STAT | int | Returns ABILITY_* constant + VALUE | int | + TARGET | object | Convert to object with StringToObject() + SET | int | TRUE if setting stat, FALSE if modifying + +_______________________________________ + ## DM Get Variable Events + - NWNX_ON_DM_GET_VARIABLE_BEFORE + - NWNX_ON_DM_GET_VARIABLE_AFTER + + `OBJECT_SELF` = The DM + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TYPE | int | Returns NWNX_EVENTS_DM_SET_VARIABLE_TYPE_* + TARGET | object | Convert to object with StringToObject() + KEY | string | Variable name + + @note Vector variable types aren't supported. + +_______________________________________ + ## DM Set Variable Events + - NWNX_ON_DM_SET_VARIABLE_BEFORE + - NWNX_ON_DM_SET_VARIABLE_AFTER + + `OBJECT_SELF` = The DM + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TYPE | int | Returns NWNX_EVENTS_DM_SET_VARIABLE_TYPE_* + TARGET | object | Convert to object with StringToObject() + KEY | string | Variable name + VALUE | string | Variable value + + @note Vector variable types aren't supported. + +_______________________________________ + ## DM Set Faction Events + - NWNX_ON_DM_SET_FACTION_BEFORE + - NWNX_ON_DM_SET_FACTION_AFTER + + `OBJECT_SELF` = The DM + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET | object | Convert to object with StringToObject() + FACTION_ID | int | Not the STANDARD_FACTION_* constants. See nwnx_creature->GetFaction(). + FACTION_NAME | string | + _______________________________________ ## DM Other Events - NWNX_ON_DM_APPEAR_BEFORE - NWNX_ON_DM_APPEAR_AFTER - NWNX_ON_DM_DISAPPEAR_BEFORE - NWNX_ON_DM_DISAPPEAR_AFTER - - NWNX_ON_DM_SET_FACTION_BEFORE - - NWNX_ON_DM_SET_FACTION_AFTER - NWNX_ON_DM_TAKE_ITEM_BEFORE - NWNX_ON_DM_TAKE_ITEM_AFTER - - NWNX_ON_DM_SET_STAT_BEFORE - - NWNX_ON_DM_SET_STAT_AFTER - - NWNX_ON_DM_GET_VARIABLE_BEFORE - - NWNX_ON_DM_GET_VARIABLE_AFTER - - NWNX_ON_DM_SET_VARIABLE_BEFORE - - NWNX_ON_DM_SET_VARIABLE_AFTER - NWNX_ON_DM_SET_TIME_BEFORE - NWNX_ON_DM_SET_TIME_AFTER - NWNX_ON_DM_SET_DATE_BEFORE @@ -497,6 +575,11 @@ _______________________________________ `OBJECT_SELF` = The player disconnecting from the server + Event Data Tag | Type | Notes + ----------------------|--------|------- + PLAYER_NAME | string | Player name of the disconnecting client + CDKEY | string | Public cdkey of the disconnecting client + @note This event also runs when a player connects to the server but cancels out of character select. OBJECT_SELF will be OBJECT_INVALID in this case. @@ -513,6 +596,10 @@ _______________________________________ CDKEY | string | Public cdkey of the connecting client IS_DM | int | Whether the client is connect as DM (1/0) IP_ADDRESS | string | The IP address of the connecting client + VERSION_MAJOR | int | The client's major version, eg 8193, or 0 if unavailable. + VERSION_MINOR | int | The client's minor version, eg 34, or 0 if unavailable. + VERSION_POSTFIX | int | The client's postfix version, eg 37, or 0 if unavailable. + PLATFORM_ID | int | The client's platform id, PLAYER_DEVICE_PLATFORM_*, or 0 if unavailable. @note Skipping the _BEFORE event will cause the client's connection to be denied. You can optionally pass a reason for this in the event result. @@ -584,7 +671,7 @@ _______________________________________ Event Data Tag | Type | Notes | ----------------------|--------|-------| - SPELL_MULTICLASS | int | Index of the spell casting class (0-2) | + SPELL_MULTICLASS | int | Index of the spell casting class (0-7) | SPELL_SLOT | int | | SPELL_ID | int | | SPELL_DOMAIN | int | | @@ -601,7 +688,7 @@ _______________________________________ Event Data Tag | Type | Notes | ----------------------|--------|-------| - SPELL_MULTICLASS | int | Index of the spell casting class (0-2) | + SPELL_MULTICLASS | int | Index of the spell casting class (0-7) | SPELL_LEVEL | int | | SPELL_SLOT | int | | @@ -621,6 +708,32 @@ _______________________________________ SPELL_FEAT | int | | SPELL_SPONTANEOUS | int | | +_______________________________________ + ## Spell Failed Events + - NWNX_ON_SPELL_FAILED_BEFORE + - NWNX_ON_SPELL_FAILED_AFTER + + `OBJECT_SELF` = The creature whose spell failed + + Event Data Tag | Type | Notes | + ----------------------|--------|-------| + SPELL_ID | int | | + MULTI_CLASS | int | Index of the spell casting class (0-7) | + DOMAIN | int | | + METAMAGIC | int | | + FEAT | int | | + SPELL_SPONTANEOUS | int | | + DEFENSIVELY_CAST | int | | + TARGET_OBJECT_ID | object | Convert to object with StringToObject() | + TARGET_POSITION_X | float | | + TARGET_POSITION_Y | float | | + TARGET_POSITION_Z | float | | + IS_INSTANT_SPELL | int | | + PROJECTILE_PATH_TYPE | int | | + CASTERLEVEL | int | | + IS_FAKE | int | | + REASON | int | @ref events_spellfailreason "NWNX_EVENTS_SPELLFAIL_REASON_*" | + _______________________________________ ## Healer Kit Use Events - NWNX_ON_HEALER_KIT_BEFORE @@ -695,8 +808,6 @@ _______________________________________ DIRTY_FIGHTING | 10 DEFENSIVE_STANCE | 11 - @note Requires @ref combatmodes "NWNX_CombatModes" plugin to work. - _______________________________________ ## Use Skill Events - NWNX_ON_USE_SKILL_BEFORE @@ -859,6 +970,17 @@ _______________________________________ BARTER_INITIATOR_ITEM_* | object | Convert to object with StringToObject(), only in _BEFORE events BARTER_TARGET_ITEM_* | object | Convert to object with StringToObject(), only in _BEFORE events +_______________________________________ + ## Barter AddItem Events + - NWNX_ON_BARTER_ADD_ITEM_BEFORE + - NWNX_ON_BARTER_ADD_ITEM_AFTER + + `OBJECT_SELF` = The player trying to add an item to the barter window + + Event Data Tag | Type | Notes + ----------------------|--------|------- + ITEM | object | The item being added + BARTER_TARGET | object | The other player involved in the barter _______________________________________ ## Trap Events - NWNX_ON_TRAP_DISARM_BEFORE @@ -879,6 +1001,11 @@ _______________________________________ Event Data Tag | Type | Notes ----------------------|--------|------- TRAP_OBJECT_ID | object | Convert to object with StringToObject() + TARGET_OBJECT_ID | object | Convert to object with StringToObject(), only in SET events + TARGET_POSITION_X | float | Only in SET events + TARGET_POSITION_Y | float | Only in SET events + TARGET_POSITION_Z | float | Only in SET events + NEEDS_TO_MOVE | int | TRUE/FALSE, only in _BEFORE events (not ENTER), if TRUE another _BEFORE event will be fired before the actual interaction with the trap TRAP_FORCE_SET | int | TRUE/FALSE, only in ENTER events ACTION_RESULT | int | TRUE/FALSE, only in _AFTER events (not ENTER) @@ -1070,21 +1197,21 @@ _______________________________________ Event Data Tag | Type | Notes ----------------------|--------|------- - TARGET | object | Convert to object with StringToObject() - SPELL_ID | int | - MULTICLASS | int | - DOMAIN_LEVEL | int | - META_TYPE | int | - INSTANT | int | TRUE / FALSE - PROJECTILE_PATH | int | - SPONTANEOUS | int | TRUE / FALSE - FAKE | int | TRUE / FALSE - FEAT | int | -1 when not cast from a feat - CASTER_LEVEL | int | - IS_AREA_TARGET | int | TRUE / FALSE - POS_X | float | - POS_Y | float | - POS_Z | float | + TARGET | object | Convert to object with StringToObject() | + SPELL_ID | int | | + MULTICLASS | int | | + DOMAIN_LEVEL | int | | + META_TYPE | int | | + INSTANT | int | TRUE / FALSE | + PROJECTILE_PATH | int | | + SPONTANEOUS | int | TRUE / FALSE | + FAKE | int | TRUE / FALSE | + FEAT | int | -1 when not cast from a feat | + CASTER_LEVEL | int | | + IS_AREA_TARGET | int | TRUE / FALSE | + POS_X | float | | + POS_Y | float | | + POS_Z | float | | @note This event runs the moment a creature starts casting @@ -1141,10 +1268,10 @@ _______________________________________ Event Data Tag | Type | Notes ----------------------|--------|------- - DOOR | object | Convert to object with StringToObject() - THIEVES_TOOL | object | Convert to object with StringToObject() - ACTIVE_PROPERTY_INDEX | int | - ACTION_RESULT | int | TRUE/FALSE, only in _AFTER events + DOOR | object | Convert to object with StringToObject() | + THIEVES_TOOL | object | Convert to object with StringToObject() | + ACTIVE_PROPERTY_INDEX | int | | + ACTION_RESULT | int | TRUE/FALSE, only in _AFTER events | _______________________________________ ## UUID Collision Events @@ -1229,7 +1356,24 @@ _______________________________________ SPELL_ID | int | | MULTI_CLASS | int | | FEAT | int | 65535 if a feat wasn't used, otherwise the feat ID | + TARGET_OBJECT_ID | object | Convert to object with StringToObject() | + TARGET_POSITION_X | float | | + TARGET_POSITION_Y | float | | + TARGET_POSITION_Z | float | | + SPELL_DOMAIN | int | | + SPELL_SPONTANEOUS | int | | + SPELL_METAMAGIC | int | METAMAGIC_* | + PROJECTILE_PATH_TYPE | int | PROJECTILE_PATH_TYPE_* | + @note TARGET_OBJECT_ID, TARGET_POSITION_*, SPELL_DOMAIN, SPELL_SPONTANEOUS, SPELL_METAMAGIC, and PROJECTILE_PATH_TYPE may + be invalid if BroadcastCastSpell was called outside AIActionCastSpell. + This can be tested for by checking if TARGET_OBJECT_ID is the caster's area and if all three TARGET_POSITION_* equal 0.0. + \code{.c} + if (oTarget == GetArea(oCaster) && Vector(vX, vY, fZ) == Vector()) + { + // ... + } + \endcode _______________________________________ ## RunScript Debug Event - NWNX_ON_DEBUG_RUN_SCRIPT_BEFORE @@ -1259,6 +1403,25 @@ _______________________________________ @note This event also runs for players that do not have permission to execute the command. +_______________________________________ + ## Play Visual Effect Event + - NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_BEFORE + - NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_AFTER + + `OBJECT_SELF` = The DM + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET_OBJECT_ID | object | Convert to object with StringToObject() + VISUAL_EFFECT | int | Index into visualeffects.2da + DURATION | float | + TARGET_POSITION_X | float | Will be 0.0 when playing visual effects on an object + TARGET_POSITION_Y | float | Will be 0.0 when playing visual effects on an object + TARGET_POSITION_Z | float | Will be 0.0 when playing visual effects on an object + + @note This is the `dm_visualeffect` console command. + `TARGET_OBJECT_ID` will be `OBJECT_INVALID` when playing visual effects at a position in an area. + _______________________________________ ## Buy/Sell Store Events - NWNX_ON_STORE_REQUEST_BUY_BEFORE @@ -1275,6 +1438,15 @@ _______________________________________ PRICE | int | The buy or sell price | RESULT | int | TRUE/FALSE whether the request was successful. Only in *_AFTER events. + @warning RESULT in NWNX_ON_STORE_REQUEST_BUY_AFTER only fails if it's due to lack of gold. It will not fail if item does not fit in player's inventory. If you want to check and fail on that condition, you can do something like this in the NWNX_ON_STORE_REQUEST_BUY_AFTER event: + ```c + if (!GetBaseItemFitsInInventory(GetBaseItemType(oItem), oPlayer)) + { + NWNX_Events_SetEventResult("0"); + return; + } + ``` + _______________________________________ ## Server Send Area Events - NWNX_ON_SERVER_SEND_AREA_BEFORE @@ -1313,8 +1485,696 @@ _______________________________________ @note Some emotes have a voiceline that will still play when the event is skipped. These voicelines can be skipped in the NWNX_ON_QUICKCHAT_* event. _______________________________________ + ## Combat Damage Resistance/Reduction Broken Event + - NWNX_ON_COMBAT_DR_BROKEN_BEFORE + - NWNX_ON_COMBAT_DR_BROKEN_AFTER + + `OBJECT_SELF` = The creature whose DR gets broken + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TYPE | int | 1 for DamageResistance, 0 for DamageReduction | + + @note This event only fires when DR gets broken in combat. + +_______________________________________ + ## Creature Unpossess Familiar Event + - NWNX_ON_UNPOSSESS_FAMILIAR_BEFORE + - NWNX_ON_UNPOSSESS_FAMILIAR_AFTER + + `OBJECT_SELF` = The creature unpossessing a familiar + + Event Data Tag | Type | Notes + ----------------------|--------|------- + FAMILIAR | object | The familiar. Convert to object with StringToObject() | + +_______________________________________ + ## Client Levelup Begin Event + - NWNX_ON_CLIENT_LEVEL_UP_BEGIN_BEFORE + - NWNX_ON_CLIENT_LEVEL_UP_BEGIN_AFTER + + `OBJECT_SELF` = The player clicking the levelup button + + Event Data Tag | Type | Notes + ----------------------|--------|------- + +_______________________________________ + ## Creature Possess Familiar Event + - NWNX_ON_POSSESS_FAMILIAR_BEFORE + - NWNX_ON_POSSESS_FAMILIAR_AFTER + + `OBJECT_SELF` = The creature possessing a familiar + + Event Data Tag | Type | Notes + ----------------------|--------|------- + FAMILIAR | object | The familiar. Convert to object with StringToObject() | +_______________________________________ + ## Player CharacterSheet Permitted Event + - NWNX_ON_CHARACTER_SHEET_PERMITTED_BEFORE + - NWNX_ON_CHARACTER_SHEET_PERMITTED_AFTER + + `OBJECT_SELF` = The player trying to view a charactersheet + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET | object | Convert to object with StringToObject() | + + @note When skipping this event, be sure to set the event result. +_______________________________________ + ## Player CharacterSheet Open/Close Events + - NWNX_ON_CHARACTER_SHEET_OPEN_BEFORE + - NWNX_ON_CHARACTER_SHEET_OPEN_AFTER + - NWNX_ON_CHARACTER_SHEET_CLOSE_BEFORE + - NWNX_ON_CHARACTER_SHEET_CLOSE_AFTER + + `OBJECT_SELF` = The player opening or closing a charactersheet + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET | object | Convert to object with StringToObject() | +_______________________________________ + ## Player Device Property Events + - NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_BEFORE + - NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_AFTER + + `OBJECT_SELF` = The player changing a device property (window size/gui scale) + + Event Data Tag | Type | Notes + ----------------------|--------|------- + PROPERTY | string | A PLAYER_DEVICE_PROPERTY_GUI_* constant | + OLD_VALUE | int | | + NEW_VALUE | int | | +_______________________________________ + ## Input Drop Item Events + - NWNX_ON_INPUT_DROP_ITEM_BEFORE + - NWNX_ON_INPUT_DROP_ITEM_AFTER + + `OBJECT_SELF` = The player dropping an item + + Event Data Tag | Type | Notes + ----------------------|--------|------- + ITEM | object | Convert to object with StringToObject() | + POS_X | float | | + POS_Y | float | | + POS_Z | float | | +_______________________________________ + ## Decrement Spell Count Events + - NWNX_ON_DECREMENT_SPELL_COUNT_BEFORE + - NWNX_ON_DECREMENT_SPELL_COUNT_AFTER + + `OBJECT_SELF` = The player losing a spell slot + + Event Data Tag | Type | Notes + ----------------------|--------|------- + SPELL_ID | int | | + CLASS | int | Index of the spell casting class (0-2). Returns 254 for spell-like abilities | + DOMAIN | int | Spell level if non-default due to Domain | + METAMAGIC | int | | + CASTERLEVEL | int | Only returns for spell-like abilities | +_______________________________________ + ## EventScript Events + - NWNX_ON_RUN_EVENT_SCRIPT_BEFORE + - NWNX_ON_RUN_EVENT_SCRIPT_AFTER + + `OBJECT_SELF` = The object the event script is running on + + Event Data Tag | Type | Notes + ----------------------|--------|------- + EVENT_TYPE | int | EVENT_SCRIPT_* in nwscript.nss | + EVENT_SCRIPT | int | Script name running (can be empty) | + + @note This event should definitely be used with the Event ID Whitelist, which is turned on by default + for this event. Until you add your EVENT_SCRIPT_ to the whitelist this event will not function: + ```c + NWNX_Events_SubscribeEvent("NWNX_ON_RUN_EVENT_SCRIPT_BEFORE", "creature_hb_ovr"); + NWNX_Events_AddIDToWhitelist("NWNX_ON_RUN_EVENT_SCRIPT", EVENT_SCRIPT_MODULE_ON_HEARTBEAT); + ``` + @warning Toggling the Whitelist to be off for this event will degrade performance. +_______________________________________ + ## Object Use Events (Placeables) + - NWNX_ON_OBJECT_USE_BEFORE + - NWNX_ON_OBJECT_USE_AFTER + + `OBJECT_SELF` = The player using the object + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OBJECT | object | The Object being used | +_______________________________________ + ## Placeable Open Events (Placeables with inventory) + - NWNX_ON_PLACEABLE_OPEN_BEFORE + - NWNX_ON_PLACEABLE_OPEN_AFTER + + `OBJECT_SELF` = The placeable being openeed. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OBJECT | object | The player opening. | + BEFORE_SKIPPED | int | TRUE/FALSE, only in _AFTER events| +_______________________________________ + ## Placeable Close Events (Placeables with inventory) + - NWNX_ON_PLACEABLE_CLOSE_BEFORE + - NWNX_ON_PLACEABLE_CLOSE_AFTER + + `OBJECT_SELF` = The placeable being closed. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OBJECT | object | The player closing. | + + @note Skipping event is not allowed (since otherwise client UI will hang and be glitchy) +_______________________________________ + ## Broadcast Safe Projectile Events + - NWNX_ON_BROADCAST_SAFE_PROJECTILE_BEFORE + - NWNX_ON_BROADCAST_SAFE_PROJECTILE_AFTER + + `OBJECT_SELF` = The creature casting the spell + + Event Data Tag | Type | Notes | + ----------------------|--------|-------| + TARGET_OBJECT_ID | string | Convert to object with StringToObject() | + TARGET_POSITION_X | float | | + TARGET_POSITION_Y | float | | + TARGET_POSITION_Z | float | | + DELTA | int | Time in milliseconds before the projectile reaches its destination | + PROJECTILE_TYPE | int | @ref events_projtype "NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_*" | + SPELL_ID | int | | + ATTACK_RESULT | int | 0=n/a, 1=hit, 2=parried, 3=critical hit, 4=miss, 5=resisted, 7=automatic hit, 8=concealed, 9=miss chance, 10=devastating crit | + PROJECTILE_PATH_TYPE | int | @nwn{Projectile_path_type,PROJECTILE_PATH_TYPE_*} | + + @note This event fires for all projectiles. It's recommended to use ID whitelists with this event. You can whitelist the event by the projectile type, spell id, or both: + \code{.c} + NWNX_Events_AddIDToWhitelist("NWNX_ON_BROADCAST_SAFE_PROJECTILE_TYPE", NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_*); + NWNX_Events_AddIDToWhitelist("NWNX_ON_BROADCAST_SAFE_PROJECTILE_SPELL", SPELL_*); + \endcode + `TARGET_OBJECT_ID` will be `OBJECT_INVALID` if the projectile is cast at a location +_______________________________________ + ## SetExperience Events + - NWNX_ON_SET_EXPERIENCE_BEFORE + - NWNX_ON_SET_EXPERIENCE_AFTER + + `OBJECT_SELF` = The player the xp is being set on + + Event Data Tag | Type | Notes + ----------------------|--------|------- + XP | int | The xp value to be set. | + + @note To set a different xp value in the BEFORE event: Skip the event and call NWNX_Events_SetEventResult() with the new value. +_______________________________________ + ## Broadcast Attack of Opportunity Events + - NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_BEFORE + - NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_AFTER + + `OBJECT_SELF` = The creature broadcasting the Attack of Opportunity event + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET_OBJECT_ID | object | A single object the attack of opportunity is being broadcast to. Convert to object with StringToObject() | + MOVEMENT | int | Whether this attack of opportunity is being triggered from movement | +_______________________________________ + ## Combat Attack of Opportunity Events + - NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_BEFORE + - NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_AFTER + + `OBJECT_SELF` = The creature performing the Attack of Opportunity against the broadcasting target. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET_OBJECT_ID | object | The target of the attack of opportunity. Convert to object with StringToObject() | + + @note If the BEFORE event is skipped the broadcasting creature will still make a tumble skill roll if moving. +_______________________________________ + ## Area Play Battle Music Events + - NWNX_ON_AREA_PLAY_BATTLE_MUSIC_BEFORE + - NWNX_ON_AREA_PLAY_BATTLE_MUSIC_AFTER + + `OBJECT_SELF` = The area playing or stopping the battle music. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + PLAY | int | TRUE if the area is starting to play battle music, FALSE if stopping. | +_______________________________________ + ## Combat Attack Target Change Events + - NWNX_ON_ATTACK_TARGET_CHANGE_BEFORE + - NWNX_ON_ATTACK_TARGET_CHANGE_AFTER + + `OBJECT_SELF` = The creature changing the target its attacking. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OLD_TARGET_OBJECT_ID | object | The old attack target. OBJECT_INVALID if there was no old target. Old target may be dead/invalid. Convert to object with StringToObject() | + NEW_TARGET_OBJECT_ID | object | The new attack target. OBJECT_INVALID if there is no new target. Convert to object with StringToObject() | + AUTOMATIC_CHANGE | int | TRUE if the game automatically decided on the new target, FALSE if explicitly chosen | + RETARGETABLE | int | TRUE if the new target can be changed using NWNX_Events_SetEventResult() (Only in BEFORE) | +_______________________________________ + ## Creature Tile Change Events + - NWNX_ON_CREATURE_TILE_CHANGE_BEFORE + - NWNX_ON_CREATURE_TILE_CHANGE_AFTER + + `OBJECT_SELF` = The creature changing tile positions. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OLD_TILE_INDEX | int | The index of the old tile. | + OLD_TILE_X | int | The tile grid x position of the old tile. | + OLD_TILE_Y | int | The tile grid y position of the old tile. | + NEW_TILE_INDEX | int | The index of the new tile. | + NEW_TILE_X | int | The tile grid x position of the new tile. | + NEW_TILE_Y | int | The tile grid y position of the new tile. | +_______________________________________ + ## Creature Jump To Point Events + - NWNX_ON_CREATURE_JUMP_TO_POINT_BEFORE + - NWNX_ON_CREATURE_JUMP_TO_POINT_AFTER + + `OBJECT_SELF` = The creature jumping. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + TARGET_AREA | object | The target area. Convert to object with StringToObject() | + POS_X | float | The x position the target is being moved to | + POS_Y | float | The y position the target is being moved to | + POS_Z | float | The z position the target is being moved to | +_______________________________________ + ## Creature Jump To Object Events + - NWNX_ON_CREATURE_JUMP_TO_OBJECT_BEFORE + - NWNX_ON_CREATURE_JUMP_TO_OBJECT_AFTER + + `OBJECT_SELF` = The creature jumping. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + OBJECT | object | The object the creature is jumping to. Convert to object with StringToObject() | +_______________________________________ + ## Item Property Effect Apply/Remove Events + - NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_BEFORE + - NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_AFTER + - NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_BEFORE + - NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_AFTER + + `OBJECT_SELF` = The item source of the item property. + + Event Data Tag | Type | Notes + ----------------------|--------|------- + CREATURE | object | The creature to which Convert to object with StringToObject() | + LOADING_GAME | int | TRUE if the itemproperty is being applied when loading into the game and not due to equipping the item. | + INVENTORY_SLOT | int | The INVENTORY_SLOT_* the item is (un)equipped to/from. | + PROPERTY | int | The ITEM_PROPERTY_* type. | + ID | int | The ID of the item property. | + SUBTYPE | int | The subtype of the itemproperty. | + TAG | string | The optional tag set by TagItemProperty() | + COST_TABLE | int | The index into iprp_costtable.2da | + COST_TABLE_VALUE | int | The index into the 2da pointed at by COST_TABLE | + PARAM1 | int | The index into iprp_paramtable.2da | + PARAM1_VALUE | int | The index into the 2da pointed at by PARAM1 | + + @note These events fire when the game applies or removes the effects from an itemproperty. + Skipping NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_BEFORE will stop the basegame effects for that itemproperty to not be applied. + If you skip the application of ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N or ITEM_PROPERTY_UNLIMITED_AMMUNITION you must also skip its removal event. + + @note Any non-DURATION_TYPE_INSTANT effects applied to the creature in NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_BEFORE **must** be of type DURATION_TYPE_EQUIPPED + See the `NWNX_EFFECT_EXTEND_DURATION_TYPE` environment variable in NWNX_Effect on how to enable this duration type. + + @note See the NWNX_Events README.md for an example script! + + @note The whitelist is enabled by default for these events, to whitelist a particular itemproperty, do the following: + \code{.c} + NWNX_Events_AddIDToWhitelist("NWNX_ON_ITEMPROPERTY_EFFECT", ITEM_PROPERTY_*); + \endcode + _______________________________________ + ## Ability Change Events + - NWNX_ON_ABILITY_CHANGE_BEFORE + - NWNX_ON_ABILITY_CHANGE_AFTER + + `OBJECT_SELF` = The player object + + Event Data Tag | Type | Notes + ----------------------|------|------- + ABILITY | int | The ABILITY_* constant | + VALUE | int | The new ability value | + MOD | int | The new ability modifier (only available in AFTER) | + + @note The event only fires for players. It might fire a few times during (before) client enter when all the items are equipped and one or more of them have a bonus to abilities. To detect and possibly skip events happening before client enter one can use `GetIsObjectValid(GetArea(OBJECT_SELF))`. + + @warning The nwscript function GetAbilityModifier() will return the **old** modifier when used in this event. Use the MOD event data to get the new value. */ -/* + +/// @name Events Event Constants +/// @anchor events_events +/// @{ +const string NWNX_ON_ADD_ASSOCIATE_BEFORE = "NWNX_ON_ADD_ASSOCIATE_BEFORE"; +const string NWNX_ON_ADD_ASSOCIATE_AFTER = "NWNX_ON_ADD_ASSOCIATE_AFTER"; +const string NWNX_ON_REMOVE_ASSOCIATE_BEFORE = "NWNX_ON_REMOVE_ASSOCIATE_BEFORE"; +const string NWNX_ON_REMOVE_ASSOCIATE_AFTER = "NWNX_ON_REMOVE_ASSOCIATE_AFTER"; +const string NWNX_ON_STEALTH_ENTER_BEFORE = "NWNX_ON_STEALTH_ENTER_BEFORE"; +const string NWNX_ON_STEALTH_ENTER_AFTER = "NWNX_ON_STEALTH_ENTER_AFTER"; +const string NWNX_ON_STEALTH_EXIT_BEFORE = "NWNX_ON_STEALTH_EXIT_BEFORE"; +const string NWNX_ON_STEALTH_EXIT_AFTER = "NWNX_ON_STEALTH_EXIT_AFTER"; +const string NWNX_ON_DETECT_ENTER_BEFORE = "NWNX_ON_DETECT_ENTER_BEFORE"; +const string NWNX_ON_DETECT_ENTER_AFTER = "NWNX_ON_DETECT_ENTER_AFTER"; +const string NWNX_ON_DETECT_EXIT_BEFORE = "NWNX_ON_DETECT_EXIT_BEFORE"; +const string NWNX_ON_DETECT_EXIT_AFTER = "NWNX_ON_DETECT_EXIT_AFTER"; +const string NWNX_ON_EXAMINE_OBJECT_BEFORE = "NWNX_ON_EXAMINE_OBJECT_BEFORE"; +const string NWNX_ON_EXAMINE_OBJECT_AFTER = "NWNX_ON_EXAMINE_OBJECT_AFTER"; +const string NWNX_ON_SET_NPC_FACTION_REPUTATION_BEFORE = "NWNX_ON_SET_NPC_FACTION_REPUTATION_BEFORE"; +const string NWNX_ON_SET_NPC_FACTION_REPUTATION_AFTER = "NWNX_ON_SET_NPC_FACTION_REPUTATION_AFTER"; +const string NWNX_ON_VALIDATE_USE_ITEM_BEFORE = "NWNX_ON_VALIDATE_USE_ITEM_BEFORE"; +const string NWNX_ON_VALIDATE_USE_ITEM_AFTER = "NWNX_ON_VALIDATE_USE_ITEM_AFTER"; +const string NWNX_ON_USE_ITEM_BEFORE = "NWNX_ON_USE_ITEM_BEFORE"; +const string NWNX_ON_USE_ITEM_AFTER = "NWNX_ON_USE_ITEM_AFTER"; +const string NWNX_ON_ITEM_INVENTORY_OPEN_BEFORE = "NWNX_ON_ITEM_INVENTORY_OPEN_BEFORE"; +const string NWNX_ON_ITEM_INVENTORY_OPEN_AFTER = "NWNX_ON_ITEM_INVENTORY_OPEN_AFTER"; +const string NWNX_ON_ITEM_INVENTORY_CLOSE_BEFORE = "NWNX_ON_ITEM_INVENTORY_CLOSE_BEFORE"; +const string NWNX_ON_ITEM_INVENTORY_CLOSE_AFTER = "NWNX_ON_ITEM_INVENTORY_CLOSE_AFTER"; +const string NWNX_ON_ITEM_AMMO_RELOAD_BEFORE = "NWNX_ON_ITEM_AMMO_RELOAD_BEFORE"; +const string NWNX_ON_ITEM_AMMO_RELOAD_AFTER = "NWNX_ON_ITEM_AMMO_RELOAD_AFTER"; +const string NWNX_ON_ITEM_SCROLL_LEARN_BEFORE = "NWNX_ON_ITEM_SCROLL_LEARN_BEFORE"; +const string NWNX_ON_ITEM_SCROLL_LEARN_AFTER = "NWNX_ON_ITEM_SCROLL_LEARN_AFTER"; +const string NWNX_ON_VALIDATE_ITEM_EQUIP_BEFORE = "NWNX_ON_VALIDATE_ITEM_EQUIP_BEFORE"; +const string NWNX_ON_VALIDATE_ITEM_EQUIP_AFTER = "NWNX_ON_VALIDATE_ITEM_EQUIP_AFTER"; +const string NWNX_ON_ITEM_EQUIP_BEFORE = "NWNX_ON_ITEM_EQUIP_BEFORE"; +const string NWNX_ON_ITEM_EQUIP_AFTER = "NWNX_ON_ITEM_EQUIP_AFTER"; +const string NWNX_ON_ITEM_UNEQUIP_BEFORE = "NWNX_ON_ITEM_UNEQUIP_BEFORE"; +const string NWNX_ON_ITEM_UNEQUIP_AFTER = "NWNX_ON_ITEM_UNEQUIP_AFTER"; +const string NWNX_ON_ITEM_DESTROY_OBJECT_BEFORE = "NWNX_ON_ITEM_DESTROY_OBJECT_BEFORE"; +const string NWNX_ON_ITEM_DESTROY_OBJECT_AFTER = "NWNX_ON_ITEM_DESTROY_OBJECT_AFTER"; +const string NWNX_ON_ITEM_DECREMENT_STACKSIZE_BEFORE = "NWNX_ON_ITEM_DECREMENT_STACKSIZE_BEFORE"; +const string NWNX_ON_ITEM_DECREMENT_STACKSIZE_AFTER = "NWNX_ON_ITEM_DECREMENT_STACKSIZE_AFTER"; +const string NWNX_ON_ITEM_USE_LORE_BEFORE = "NWNX_ON_ITEM_USE_LORE_BEFORE"; +const string NWNX_ON_ITEM_USE_LORE_AFTER = "NWNX_ON_ITEM_USE_LORE_AFTER"; +const string NWNX_ON_ITEM_PAY_TO_IDENTIFY_BEFORE = "NWNX_ON_ITEM_PAY_TO_IDENTIFY_BEFORE"; +const string NWNX_ON_ITEM_PAY_TO_IDENTIFY_AFTER = "NWNX_ON_ITEM_PAY_TO_IDENTIFY_AFTER"; +const string NWNX_ON_ITEM_SPLIT_BEFORE = "NWNX_ON_ITEM_SPLIT_BEFORE"; +const string NWNX_ON_ITEM_SPLIT_AFTER = "NWNX_ON_ITEM_SPLIT_AFTER"; +const string NWNX_ON_ITEM_MERGE_BEFORE = "NWNX_ON_ITEM_MERGE_BEFORE"; +const string NWNX_ON_ITEM_MERGE_AFTER = "NWNX_ON_ITEM_MERGE_AFTER"; +const string NWNX_ON_ITEM_ACQUIRE_BEFORE = "NWNX_ON_ITEM_ACQUIRE_BEFORE"; +const string NWNX_ON_ITEM_ACQUIRE_AFTER = "NWNX_ON_ITEM_ACQUIRE_AFTER"; +const string NWNX_ON_USE_FEAT_BEFORE = "NWNX_ON_USE_FEAT_BEFORE"; +const string NWNX_ON_USE_FEAT_AFTER = "NWNX_ON_USE_FEAT_AFTER"; +const string NWNX_ON_DECREMENT_REMAINING_FEAT_USES_BEFORE = "NWNX_ON_DECREMENT_REMAINING_FEAT_USES_BEFORE"; +const string NWNX_ON_DECREMENT_REMAINING_FEAT_USES_AFTER = "NWNX_ON_DECREMENT_REMAINING_FEAT_USES_AFTER"; +const string NWNX_ON_HAS_FEAT_BEFORE = "NWNX_ON_HAS_FEAT_BEFORE"; +const string NWNX_ON_HAS_FEAT_AFTER = "NWNX_ON_HAS_FEAT_AFTER"; +const string NWNX_ON_DM_GIVE_GOLD_BEFORE = "NWNX_ON_DM_GIVE_GOLD_BEFORE"; +const string NWNX_ON_DM_GIVE_GOLD_AFTER = "NWNX_ON_DM_GIVE_GOLD_AFTER"; +const string NWNX_ON_DM_GIVE_XP_BEFORE = "NWNX_ON_DM_GIVE_XP_BEFORE"; +const string NWNX_ON_DM_GIVE_XP_AFTER = "NWNX_ON_DM_GIVE_XP_AFTER"; +const string NWNX_ON_DM_GIVE_LEVEL_BEFORE = "NWNX_ON_DM_GIVE_LEVEL_BEFORE"; +const string NWNX_ON_DM_GIVE_LEVEL_AFTER = "NWNX_ON_DM_GIVE_LEVEL_AFTER"; +const string NWNX_ON_DM_GIVE_ALIGNMENT_BEFORE = "NWNX_ON_DM_GIVE_ALIGNMENT_BEFORE"; +const string NWNX_ON_DM_GIVE_ALIGNMENT_AFTER = "NWNX_ON_DM_GIVE_ALIGNMENT_AFTER"; +const string NWNX_ON_DM_SPAWN_OBJECT_BEFORE = "NWNX_ON_DM_SPAWN_OBJECT_BEFORE"; +const string NWNX_ON_DM_SPAWN_OBJECT_AFTER = "NWNX_ON_DM_SPAWN_OBJECT_AFTER"; +const string NWNX_ON_DM_GIVE_ITEM_BEFORE = "NWNX_ON_DM_GIVE_ITEM_BEFORE"; +const string NWNX_ON_DM_GIVE_ITEM_AFTER = "NWNX_ON_DM_GIVE_ITEM_AFTER"; +const string NWNX_ON_DM_HEAL_BEFORE = "NWNX_ON_DM_HEAL_BEFORE"; +const string NWNX_ON_DM_HEAL_AFTER = "NWNX_ON_DM_HEAL_AFTER"; +const string NWNX_ON_DM_KILL_BEFORE = "NWNX_ON_DM_KILL_BEFORE"; +const string NWNX_ON_DM_KILL_AFTER = "NWNX_ON_DM_KILL_AFTER"; +const string NWNX_ON_DM_TOGGLE_INVULNERABLE_BEFORE = "NWNX_ON_DM_TOGGLE_INVULNERABLE_BEFORE"; +const string NWNX_ON_DM_TOGGLE_INVULNERABLE_AFTER = "NWNX_ON_DM_TOGGLE_INVULNERABLE_AFTER"; +const string NWNX_ON_DM_FORCE_REST_BEFORE = "NWNX_ON_DM_FORCE_REST_BEFORE"; +const string NWNX_ON_DM_FORCE_REST_AFTER = "NWNX_ON_DM_FORCE_REST_AFTER"; +const string NWNX_ON_DM_LIMBO_BEFORE = "NWNX_ON_DM_LIMBO_BEFORE"; +const string NWNX_ON_DM_LIMBO_AFTER = "NWNX_ON_DM_LIMBO_AFTER"; +const string NWNX_ON_DM_TOGGLE_AI_BEFORE = "NWNX_ON_DM_TOGGLE_AI_BEFORE"; +const string NWNX_ON_DM_TOGGLE_AI_AFTER = "NWNX_ON_DM_TOGGLE_AI_AFTER"; +const string NWNX_ON_DM_TOGGLE_IMMORTAL_BEFORE = "NWNX_ON_DM_TOGGLE_IMMORTAL_BEFORE"; +const string NWNX_ON_DM_TOGGLE_IMMORTAL_AFTER = "NWNX_ON_DM_TOGGLE_IMMORTAL_AFTER"; +const string NWNX_ON_DM_GOTO_BEFORE = "NWNX_ON_DM_GOTO_BEFORE"; +const string NWNX_ON_DM_GOTO_AFTER = "NWNX_ON_DM_GOTO_AFTER"; +const string NWNX_ON_DM_POSSESS_BEFORE = "NWNX_ON_DM_POSSESS_BEFORE"; +const string NWNX_ON_DM_POSSESS_AFTER = "NWNX_ON_DM_POSSESS_AFTER"; +const string NWNX_ON_DM_POSSESS_FULL_POWER_BEFORE = "NWNX_ON_DM_POSSESS_FULL_POWER_BEFORE"; +const string NWNX_ON_DM_POSSESS_FULL_POWER_AFTER = "NWNX_ON_DM_POSSESS_FULL_POWER_AFTER"; +const string NWNX_ON_DM_TOGGLE_LOCK_BEFORE = "NWNX_ON_DM_TOGGLE_LOCK_BEFORE"; +const string NWNX_ON_DM_TOGGLE_LOCK_AFTER = "NWNX_ON_DM_TOGGLE_LOCK_AFTER"; +const string NWNX_ON_DM_DISABLE_TRAP_BEFORE = "NWNX_ON_DM_DISABLE_TRAP_BEFORE"; +const string NWNX_ON_DM_DISABLE_TRAP_AFTER = "NWNX_ON_DM_DISABLE_TRAP_AFTER"; +const string NWNX_ON_DM_JUMP_TO_POINT_BEFORE = "NWNX_ON_DM_JUMP_TO_POINT_BEFORE"; +const string NWNX_ON_DM_JUMP_TO_POINT_AFTER = "NWNX_ON_DM_JUMP_TO_POINT_AFTER"; +const string NWNX_ON_DM_JUMP_TARGET_TO_POINT_BEFORE = "NWNX_ON_DM_JUMP_TARGET_TO_POINT_BEFORE"; +const string NWNX_ON_DM_JUMP_TARGET_TO_POINT_AFTER = "NWNX_ON_DM_JUMP_TARGET_TO_POINT_AFTER"; +const string NWNX_ON_DM_JUMP_ALL_PLAYERS_TO_POINT_BEFORE = "NWNX_ON_DM_JUMP_ALL_PLAYERS_TO_POINT_BEFORE"; +const string NWNX_ON_DM_JUMP_ALL_PLAYERS_TO_POINT_AFTER = "NWNX_ON_DM_JUMP_ALL_PLAYERS_TO_POINT_AFTER"; +const string NWNX_ON_DM_CHANGE_DIFFICULTY_BEFORE = "NWNX_ON_DM_CHANGE_DIFFICULTY_BEFORE"; +const string NWNX_ON_DM_CHANGE_DIFFICULTY_AFTER = "NWNX_ON_DM_CHANGE_DIFFICULTY_AFTER"; +const string NWNX_ON_DM_VIEW_INVENTORY_BEFORE = "NWNX_ON_DM_VIEW_INVENTORY_BEFORE"; +const string NWNX_ON_DM_VIEW_INVENTORY_AFTER = "NWNX_ON_DM_VIEW_INVENTORY_AFTER"; +const string NWNX_ON_DM_SPAWN_TRAP_ON_OBJECT_BEFORE = "NWNX_ON_DM_SPAWN_TRAP_ON_OBJECT_BEFORE"; +const string NWNX_ON_DM_SPAWN_TRAP_ON_OBJECT_AFTER = "NWNX_ON_DM_SPAWN_TRAP_ON_OBJECT_AFTER"; +const string NWNX_ON_DM_DUMP_LOCALS_BEFORE = "NWNX_ON_DM_DUMP_LOCALS_BEFORE"; +const string NWNX_ON_DM_DUMP_LOCALS_AFTER = "NWNX_ON_DM_DUMP_LOCALS_AFTER"; +const string NWNX_ON_DM_PLAYERDM_LOGIN_BEFORE = "NWNX_ON_DM_PLAYERDM_LOGIN_BEFORE"; +const string NWNX_ON_DM_PLAYERDM_LOGIN_AFTER = "NWNX_ON_DM_PLAYERDM_LOGIN_AFTER"; +const string NWNX_ON_DM_PLAYERDM_LOGOUT_BEFORE = "NWNX_ON_DM_PLAYERDM_LOGOUT_BEFORE"; +const string NWNX_ON_DM_PLAYERDM_LOGOUT_AFTER = "NWNX_ON_DM_PLAYERDM_LOGOUT_AFTER"; +const string NWNX_ON_DM_SET_STAT_BEFORE = "NWNX_ON_DM_SET_STAT_BEFORE"; +const string NWNX_ON_DM_SET_STAT_AFTER = "NWNX_ON_DM_SET_STAT_AFTER"; +const string NWNX_ON_DM_GET_VARIABLE_BEFORE = "NWNX_ON_DM_GET_VARIABLE_BEFORE"; +const string NWNX_ON_DM_GET_VARIABLE_AFTER = "NWNX_ON_DM_GET_VARIABLE_AFTER"; +const string NWNX_ON_DM_SET_VARIABLE_BEFORE = "NWNX_ON_DM_SET_VARIABLE_BEFORE"; +const string NWNX_ON_DM_SET_VARIABLE_AFTER = "NWNX_ON_DM_SET_VARIABLE_AFTER"; +const string NWNX_ON_DM_SET_FACTION_BEFORE = "NWNX_ON_DM_SET_FACTION_BEFORE"; +const string NWNX_ON_DM_SET_FACTION_AFTER = "NWNX_ON_DM_SET_FACTION_AFTER"; +const string NWNX_ON_DM_APPEAR_BEFORE = "NWNX_ON_DM_APPEAR_BEFORE"; +const string NWNX_ON_DM_APPEAR_AFTER = "NWNX_ON_DM_APPEAR_AFTER"; +const string NWNX_ON_DM_DISAPPEAR_BEFORE = "NWNX_ON_DM_DISAPPEAR_BEFORE"; +const string NWNX_ON_DM_DISAPPEAR_AFTER = "NWNX_ON_DM_DISAPPEAR_AFTER"; +const string NWNX_ON_DM_TAKE_ITEM_BEFORE = "NWNX_ON_DM_TAKE_ITEM_BEFORE"; +const string NWNX_ON_DM_TAKE_ITEM_AFTER = "NWNX_ON_DM_TAKE_ITEM_AFTER"; +const string NWNX_ON_DM_SET_TIME_BEFORE = "NWNX_ON_DM_SET_TIME_BEFORE"; +const string NWNX_ON_DM_SET_TIME_AFTER = "NWNX_ON_DM_SET_TIME_AFTER"; +const string NWNX_ON_DM_SET_DATE_BEFORE = "NWNX_ON_DM_SET_DATE_BEFORE"; +const string NWNX_ON_DM_SET_DATE_AFTER = "NWNX_ON_DM_SET_DATE_AFTER"; +const string NWNX_ON_DM_SET_FACTION_REPUTATION_BEFORE = "NWNX_ON_DM_SET_FACTION_REPUTATION_BEFORE"; +const string NWNX_ON_DM_SET_FACTION_REPUTATION_AFTER = "NWNX_ON_DM_SET_FACTION_REPUTATION_AFTER"; +const string NWNX_ON_DM_GET_FACTION_REPUTATION_BEFORE = "NWNX_ON_DM_GET_FACTION_REPUTATION_BEFORE"; +const string NWNX_ON_DM_GET_FACTION_REPUTATION_AFTER = "NWNX_ON_DM_GET_FACTION_REPUTATION_AFTER"; +const string NWNX_ON_CLIENT_DISCONNECT_BEFORE = "NWNX_ON_CLIENT_DISCONNECT_BEFORE"; +const string NWNX_ON_CLIENT_DISCONNECT_AFTER = "NWNX_ON_CLIENT_DISCONNECT_AFTER"; +const string NWNX_ON_CLIENT_CONNECT_BEFORE = "NWNX_ON_CLIENT_CONNECT_BEFORE"; +const string NWNX_ON_CLIENT_CONNECT_AFTER = "NWNX_ON_CLIENT_CONNECT_AFTER"; +const string NWNX_ON_COMBAT_ENTER_BEFORE = "NWNX_ON_COMBAT_ENTER_BEFORE"; +const string NWNX_ON_COMBAT_ENTER_AFTER = "NWNX_ON_COMBAT_ENTER_AFTER"; +const string NWNX_ON_COMBAT_EXIT_BEFORE = "NWNX_ON_COMBAT_EXIT_BEFORE"; +const string NWNX_ON_COMBAT_EXIT_AFTER = "NWNX_ON_COMBAT_EXIT_AFTER"; +const string NWNX_ON_START_COMBAT_ROUND_BEFORE = "NWNX_ON_START_COMBAT_ROUND_BEFORE"; +const string NWNX_ON_START_COMBAT_ROUND_AFTER = "NWNX_ON_START_COMBAT_ROUND_AFTER"; +const string NWNX_ON_DISARM_BEFORE = "NWNX_ON_DISARM_BEFORE"; +const string NWNX_ON_DISARM_AFTER = "NWNX_ON_DISARM_AFTER"; +const string NWNX_ON_CAST_SPELL_BEFORE = "NWNX_ON_CAST_SPELL_BEFORE"; +const string NWNX_ON_CAST_SPELL_AFTER = "NWNX_ON_CAST_SPELL_AFTER"; +const string NWNX_ON_SET_MEMORIZED_SPELL_SLOT_BEFORE = "NWNX_SET_MEMORIZED_SPELL_SLOT_BEFORE"; +const string NWNX_ON_SET_MEMORIZED_SPELL_SLOT_AFTER = "NWNX_SET_MEMORIZED_SPELL_SLOT_AFTER"; +const string NWNX_ON_CLEAR_MEMORIZED_SPELL_SLOT_BEFORE = "NWNX_CLEAR_MEMORIZED_SPELL_SLOT_BEFORE"; +const string NWNX_ON_CLEAR_MEMORIZED_SPELL_SLOT_AFTER = "NWNX_CLEAR_MEMORIZED_SPELL_SLOT_AFTER"; +const string NWNX_ON_SPELL_INTERRUPTED_BEFORE = "NWNX_ON_SPELL_INTERRUPTED_BEFORE"; +const string NWNX_ON_SPELL_INTERRUPTED_AFTER = "NWNX_ON_SPELL_INTERRUPTED_AFTER"; +const string NWNX_ON_SPELL_FAILED_BEFORE = "NWNX_ON_SPELL_FAILED_BEFORE"; +const string NWNX_ON_SPELL_FAILED_AFTER = "NWNX_ON_SPELL_FAILED_AFTER"; +const string NWNX_ON_HEALER_KIT_BEFORE = "NWNX_ON_HEALER_KIT_BEFORE"; +const string NWNX_ON_HEALER_KIT_AFTER = "NWNX_ON_HEALER_KIT_AFTER"; +const string NWNX_ON_HEAL_BEFORE = "NWNX_ON_HEAL_BEFORE"; +const string NWNX_ON_HEAL_AFTER = "NWNX_ON_HEAL_AFTER"; +const string NWNX_ON_PARTY_LEAVE_BEFORE = "NWNX_ON_PARTY_LEAVE_BEFORE"; +const string NWNX_ON_PARTY_LEAVE_AFTER = "NWNX_ON_PARTY_LEAVE_AFTER"; +const string NWNX_ON_PARTY_KICK_BEFORE = "NWNX_ON_PARTY_KICK_BEFORE"; +const string NWNX_ON_PARTY_KICK_AFTER = "NWNX_ON_PARTY_KICK_AFTER"; +const string NWNX_ON_PARTY_TRANSFER_LEADERSHIP_BEFORE = "NWNX_ON_PARTY_TRANSFER_LEADERSHIP_BEFORE"; +const string NWNX_ON_PARTY_TRANSFER_LEADERSHIP_AFTER = "NWNX_ON_PARTY_TRANSFER_LEADERSHIP_AFTER"; +const string NWNX_ON_PARTY_INVITE_BEFORE = "NWNX_ON_PARTY_INVITE_BEFORE"; +const string NWNX_ON_PARTY_INVITE_AFTER = "NWNX_ON_PARTY_INVITE_AFTER"; +const string NWNX_ON_PARTY_IGNORE_INVITATION_BEFORE = "NWNX_ON_PARTY_IGNORE_INVITATION_BEFORE"; +const string NWNX_ON_PARTY_IGNORE_INVITATION_AFTER = "NWNX_ON_PARTY_IGNORE_INVITATION_AFTER"; +const string NWNX_ON_PARTY_ACCEPT_INVITATION_BEFORE = "NWNX_ON_PARTY_ACCEPT_INVITATION_BEFORE"; +const string NWNX_ON_PARTY_ACCEPT_INVITATION_AFTER = "NWNX_ON_PARTY_ACCEPT_INVITATION_AFTER"; +const string NWNX_ON_PARTY_REJECT_INVITATION_BEFORE = "NWNX_ON_PARTY_REJECT_INVITATION_BEFORE"; +const string NWNX_ON_PARTY_REJECT_INVITATION_AFTER = "NWNX_ON_PARTY_REJECT_INVITATION_AFTER"; +const string NWNX_ON_PARTY_KICK_HENCHMAN_BEFORE = "NWNX_ON_PARTY_KICK_HENCHMAN_BEFORE"; +const string NWNX_ON_PARTY_KICK_HENCHMAN_AFTER = "NWNX_ON_PARTY_KICK_HENCHMAN_AFTER"; +const string NWNX_ON_COMBAT_MODE_ON = "NWNX_ON_COMBAT_MODE_ON"; +const string NWNX_ON_COMBAT_MODE_OFF = "NWNX_ON_COMBAT_MODE_OFF"; +const string NWNX_ON_USE_SKILL_BEFORE = "NWNX_ON_USE_SKILL_BEFORE"; +const string NWNX_ON_USE_SKILL_AFTER = "NWNX_ON_USE_SKILL_AFTER"; +const string NWNX_ON_MAP_PIN_ADD_PIN_BEFORE = "NWNX_ON_MAP_PIN_ADD_PIN_BEFORE"; +const string NWNX_ON_MAP_PIN_ADD_PIN_AFTER = "NWNX_ON_MAP_PIN_ADD_PIN_AFTER"; +const string NWNX_ON_MAP_PIN_CHANGE_PIN_BEFORE = "NWNX_ON_MAP_PIN_CHANGE_PIN_BEFORE"; +const string NWNX_ON_MAP_PIN_CHANGE_PIN_AFTER = "NWNX_ON_MAP_PIN_CHANGE_PIN_AFTER"; +const string NWNX_ON_MAP_PIN_DESTROY_PIN_BEFORE = "NWNX_ON_MAP_PIN_DESTROY_PIN_BEFORE"; +const string NWNX_ON_MAP_PIN_DESTROY_PIN_AFTER = "NWNX_ON_MAP_PIN_DESTROY_PIN_AFTER"; +const string NWNX_ON_DO_LISTEN_DETECTION_BEFORE = "NWNX_ON_DO_LISTEN_DETECTION_BEFORE"; +const string NWNX_ON_DO_LISTEN_DETECTION_AFTER = "NWNX_ON_DO_LISTEN_DETECTION_AFTER"; +const string NWNX_ON_DO_SPOT_DETECTION_BEFORE = "NWNX_ON_DO_SPOT_DETECTION_BEFORE"; +const string NWNX_ON_DO_SPOT_DETECTION_AFTER = "NWNX_ON_DO_SPOT_DETECTION_AFTER"; +const string NWNX_ON_POLYMORPH_BEFORE = "NWNX_ON_POLYMORPH_BEFORE"; +const string NWNX_ON_POLYMORPH_AFTER = "NWNX_ON_POLYMORPH_AFTER"; +const string NWNX_ON_UNPOLYMORPH_BEFORE = "NWNX_ON_UNPOLYMORPH_BEFORE"; +const string NWNX_ON_UNPOLYMORPH_AFTER = "NWNX_ON_UNPOLYMORPH_AFTER"; +const string NWNX_ON_EFFECT_APPLIED_BEFORE = "NWNX_ON_EFFECT_APPLIED_BEFORE"; +const string NWNX_ON_EFFECT_APPLIED_AFTER = "NWNX_ON_EFFECT_APPLIED_AFTER"; +const string NWNX_ON_EFFECT_REMOVED_BEFORE = "NWNX_ON_EFFECT_REMOVED_BEFORE"; +const string NWNX_ON_EFFECT_REMOVED_AFTER = "NWNX_ON_EFFECT_REMOVED_AFTER"; +const string NWNX_ON_QUICKCHAT_BEFORE = "NWNX_ON_QUICKCHAT_BEFORE"; +const string NWNX_ON_QUICKCHAT_AFTER = "NWNX_ON_QUICKCHAT_AFTER"; +const string NWNX_ON_INVENTORY_OPEN_BEFORE = "NWNX_ON_INVENTORY_OPEN_BEFORE"; +const string NWNX_ON_INVENTORY_OPEN_AFTER = "NWNX_ON_INVENTORY_OPEN_AFTER"; +const string NWNX_ON_INVENTORY_SELECT_PANEL_BEFORE = "NWNX_ON_INVENTORY_SELECT_PANEL_BEFORE"; +const string NWNX_ON_INVENTORY_SELECT_PANEL_AFTER = "NWNX_ON_INVENTORY_SELECT_PANEL_AFTER"; +const string NWNX_ON_BARTER_START_BEFORE = "NWNX_ON_BARTER_START_BEFORE"; +const string NWNX_ON_BARTER_START_AFTER = "NWNX_ON_BARTER_START_AFTER"; +const string NWNX_ON_BARTER_END_BEFORE = "NWNX_ON_BARTER_END_BEFORE"; +const string NWNX_ON_BARTER_END_AFTER = "NWNX_ON_BARTER_END_AFTER"; +const string NWNX_ON_BARTER_ADD_ITEM_BEFORE = "NWNX_ON_BARTER_ADD_ITEM_BEFORE"; +const string NWNX_ON_BARTER_ADD_ITEM_AFTER = "NWNX_ON_BARTER_ADD_ITEM_AFTER"; +const string NWNX_ON_TRAP_DISARM_BEFORE = "NWNX_ON_TRAP_DISARM_BEFORE"; +const string NWNX_ON_TRAP_DISARM_AFTER = "NWNX_ON_TRAP_DISARM_AFTER"; +const string NWNX_ON_TRAP_ENTER_BEFORE = "NWNX_ON_TRAP_ENTER_BEFORE"; +const string NWNX_ON_TRAP_ENTER_AFTER = "NWNX_ON_TRAP_ENTER_AFTER"; +const string NWNX_ON_TRAP_EXAMINE_BEFORE = "NWNX_ON_TRAP_EXAMINE_BEFORE"; +const string NWNX_ON_TRAP_EXAMINE_AFTER = "NWNX_ON_TRAP_EXAMINE_AFTER"; +const string NWNX_ON_TRAP_FLAG_BEFORE = "NWNX_ON_TRAP_FLAG_BEFORE"; +const string NWNX_ON_TRAP_FLAG_AFTER = "NWNX_ON_TRAP_FLAG_AFTER"; +const string NWNX_ON_TRAP_RECOVER_BEFORE = "NWNX_ON_TRAP_RECOVER_BEFORE"; +const string NWNX_ON_TRAP_RECOVER_AFTER = "NWNX_ON_TRAP_RECOVER_AFTER"; +const string NWNX_ON_TRAP_SET_BEFORE = "NWNX_ON_TRAP_SET_BEFORE"; +const string NWNX_ON_TRAP_SET_AFTER = "NWNX_ON_TRAP_SET_AFTER"; +const string NWNX_ON_TIMING_BAR_START_BEFORE = "NWNX_ON_TIMING_BAR_START_BEFORE"; +const string NWNX_ON_TIMING_BAR_START_AFTER = "NWNX_ON_TIMING_BAR_START_AFTER"; +const string NWNX_ON_TIMING_BAR_STOP_BEFORE = "NWNX_ON_TIMING_BAR_STOP_BEFORE"; +const string NWNX_ON_TIMING_BAR_STOP_AFTER = "NWNX_ON_TIMING_BAR_STOP_AFTER"; +const string NWNX_ON_TIMING_BAR_CANCEL_BEFORE = "NWNX_ON_TIMING_BAR_CANCEL_BEFORE"; +const string NWNX_ON_TIMING_BAR_CANCEL_AFTER = "NWNX_ON_TIMING_BAR_CANCEL_AFTER"; +const string NWNX_ON_WEBHOOK_SUCCESS = "NWNX_ON_WEBHOOK_SUCCESS"; +const string NWNX_ON_WEBHOOK_FAILURE = "NWNX_ON_WEBHOOK_FAILURE"; +const string NWNX_ON_CHECK_STICKY_PLAYER_NAME_RESERVED_BEFORE = "NWNX_ON_CHECK_STICKY_PLAYER_NAME_RESERVED_BEFORE"; +const string NWNX_ON_CHECK_STICKY_PLAYER_NAME_RESERVED_AFTER = "NWNX_ON_CHECK_STICKY_PLAYER_NAME_RESERVED_AFTER"; +const string NWNX_ON_SERVER_CHARACTER_SAVE_BEFORE = "NWNX_ON_SERVER_CHARACTER_SAVE_BEFORE"; +const string NWNX_ON_SERVER_CHARACTER_SAVE_AFTER = "NWNX_ON_SERVER_CHARACTER_SAVE_AFTER"; +const string NWNX_ON_CLIENT_EXPORT_CHARACTER_BEFORE = "NWNX_ON_CLIENT_EXPORT_CHARACTER_BEFORE"; +const string NWNX_ON_CLIENT_EXPORT_CHARACTER_AFTER = "NWNX_ON_CLIENT_EXPORT_CHARACTER_AFTER"; +const string NWNX_ON_LEVEL_UP_BEFORE = "NWNX_ON_LEVEL_UP_BEFORE"; +const string NWNX_ON_LEVEL_UP_AFTER = "NWNX_ON_LEVEL_UP_AFTER"; +const string NWNX_ON_LEVEL_UP_AUTOMATIC_BEFORE = "NWNX_ON_LEVEL_UP_AUTOMATIC_BEFORE"; +const string NWNX_ON_LEVEL_UP_AUTOMATIC_AFTER = "NWNX_ON_LEVEL_UP_AUTOMATIC_AFTER"; +const string NWNX_ON_LEVEL_DOWN_BEFORE = "NWNX_ON_LEVEL_DOWN_BEFORE"; +const string NWNX_ON_LEVEL_DOWN_AFTER = "NWNX_ON_LEVEL_DOWN_AFTER"; +const string NWNX_ON_INVENTORY_ADD_ITEM_BEFORE = "NWNX_ON_INVENTORY_ADD_ITEM_BEFORE"; +const string NWNX_ON_INVENTORY_ADD_ITEM_AFTER = "NWNX_ON_INVENTORY_ADD_ITEM_AFTER"; +const string NWNX_ON_INVENTORY_REMOVE_ITEM_BEFORE = "NWNX_ON_INVENTORY_REMOVE_ITEM_BEFORE"; +const string NWNX_ON_INVENTORY_REMOVE_ITEM_AFTER = "NWNX_ON_INVENTORY_REMOVE_ITEM_AFTER"; +const string NWNX_ON_INVENTORY_ADD_GOLD_BEFORE = "NWNX_ON_INVENTORY_ADD_GOLD_BEFORE"; +const string NWNX_ON_INVENTORY_ADD_GOLD_AFTER = "NWNX_ON_INVENTORY_ADD_GOLD_AFTER"; +const string NWNX_ON_INVENTORY_REMOVE_GOLD_BEFORE = "NWNX_ON_INVENTORY_REMOVE_GOLD_BEFORE"; +const string NWNX_ON_INVENTORY_REMOVE_GOLD_AFTER = "NWNX_ON_INVENTORY_REMOVE_GOLD_AFTER"; +const string NWNX_ON_PVP_ATTITUDE_CHANGE_BEFORE = "NWNX_ON_PVP_ATTITUDE_CHANGE_BEFORE"; +const string NWNX_ON_PVP_ATTITUDE_CHANGE_AFTER = "NWNX_ON_PVP_ATTITUDE_CHANGE_AFTER"; +const string NWNX_ON_INPUT_WALK_TO_WAYPOINT_BEFORE = "NWNX_ON_INPUT_WALK_TO_WAYPOINT_BEFORE"; +const string NWNX_ON_INPUT_WALK_TO_WAYPOINT_AFTER = "NWNX_ON_INPUT_WALK_TO_WAYPOINT_AFTER"; +const string NWNX_ON_MATERIALCHANGE_BEFORE = "NWNX_ON_MATERIALCHANGE_BEFORE"; +const string NWNX_ON_MATERIALCHANGE_AFTER = "NWNX_ON_MATERIALCHANGE_AFTER"; +const string NWNX_ON_INPUT_ATTACK_OBJECT_BEFORE = "NWNX_ON_INPUT_ATTACK_OBJECT_BEFORE"; +const string NWNX_ON_INPUT_ATTACK_OBJECT_AFTER = "NWNX_ON_INPUT_ATTACK_OBJECT_AFTER"; +const string NWNX_ON_INPUT_FORCE_MOVE_TO_OBJECT_BEFORE = "NWNX_ON_INPUT_FORCE_MOVE_TO_OBJECT_BEFORE"; +const string NWNX_ON_INPUT_FORCE_MOVE_TO_OBJECT_AFTER = "NWNX_ON_INPUT_FORCE_MOVE_TO_OBJECT_AFTER"; +const string NWNX_ON_INPUT_CAST_SPELL_BEFORE = "NWNX_ON_INPUT_CAST_SPELL_BEFORE"; +const string NWNX_ON_INPUT_CAST_SPELL_AFTER = "NWNX_ON_INPUT_CAST_SPELL_AFTER"; +const string NWNX_ON_INPUT_KEYBOARD_BEFORE = "NWNX_ON_INPUT_KEYBOARD_BEFORE"; +const string NWNX_ON_INPUT_KEYBOARD_AFTER = "NWNX_ON_INPUT_KEYBOARD_AFTER"; +const string NWNX_ON_INPUT_TOGGLE_PAUSE_BEFORE = "NWNX_ON_INPUT_TOGGLE_PAUSE_BEFORE"; +const string NWNX_ON_INPUT_TOGGLE_PAUSE_AFTER = "NWNX_ON_INPUT_TOGGLE_PAUSE_AFTER"; +const string NWNX_ON_OBJECT_LOCK_BEFORE = "NWNX_ON_OBJECT_LOCK_BEFORE"; +const string NWNX_ON_OBJECT_LOCK_AFTER = "NWNX_ON_OBJECT_LOCK_AFTER"; +const string NWNX_ON_OBJECT_UNLOCK_BEFORE = "NWNX_ON_OBJECT_UNLOCK_BEFORE"; +const string NWNX_ON_OBJECT_UNLOCK_AFTER = "NWNX_ON_OBJECT_UNLOCK_AFTER"; +const string NWNX_ON_UUID_COLLISION_BEFORE = "NWNX_ON_UUID_COLLISION_BEFORE"; +const string NWNX_ON_UUID_COLLISION_AFTER = "NWNX_ON_UUID_COLLISION_AFTER"; +const string NWNX_ON_RESOURCE_ADDED = "NWNX_ON_RESOURCE_ADDED"; +const string NWNX_ON_RESOURCE_REMOVED = "NWNX_ON_RESOURCE_REMOVED"; +const string NWNX_ON_RESOURCE_MODIFIED = "NWNX_ON_RESOURCE_MODIFIED"; +const string NWNX_ON_ELC_VALIDATE_CHARACTER_BEFORE = "NWNX_ON_ELC_VALIDATE_CHARACTER_BEFORE"; +const string NWNX_ON_ELC_VALIDATE_CHARACTER_AFTER = "NWNX_ON_ELC_VALIDATE_CHARACTER_AFTER"; +const string NWNX_ON_QUICKBAR_SET_BUTTON_BEFORE = "NWNX_ON_QUICKBAR_SET_BUTTON_BEFORE"; +const string NWNX_ON_QUICKBAR_SET_BUTTON_AFTER = "NWNX_ON_QUICKBAR_SET_BUTTON_AFTER"; +const string NWNX_ON_CALENDAR_HOUR = "NWNX_ON_CALENDAR_HOUR"; +const string NWNX_ON_CALENDAR_DAY = "NWNX_ON_CALENDAR_DAY"; +const string NWNX_ON_CALENDAR_MONTH = "NWNX_ON_CALENDAR_MONTH"; +const string NWNX_ON_CALENDAR_YEAR = "NWNX_ON_CALENDAR_YEAR"; +const string NWNX_ON_CALENDAR_DAWN = "NWNX_ON_CALENDAR_DAWN"; +const string NWNX_ON_CALENDAR_DUSK = "NWNX_ON_CALENDAR_DUSK"; +const string NWNX_ON_BROADCAST_CAST_SPELL_BEFORE = "NWNX_ON_BROADCAST_CAST_SPELL_BEFORE"; +const string NWNX_ON_BROADCAST_CAST_SPELL_AFTER = "NWNX_ON_BROADCAST_CAST_SPELL_AFTER"; +const string NWNX_ON_DEBUG_RUN_SCRIPT_BEFORE = "NWNX_ON_DEBUG_RUN_SCRIPT_BEFORE"; +const string NWNX_ON_DEBUG_RUN_SCRIPT_AFTER = "NWNX_ON_DEBUG_RUN_SCRIPT_AFTER"; +const string NWNX_ON_DEBUG_RUN_SCRIPT_CHUNK_BEFORE = "NWNX_ON_DEBUG_RUN_SCRIPT_CHUNK_BEFORE"; +const string NWNX_ON_DEBUG_RUN_SCRIPT_CHUNK_AFTER = "NWNX_ON_DEBUG_RUN_SCRIPT_CHUNK_AFTER"; +const string NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_BEFORE = "NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_BEFORE"; +const string NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_AFTER = "NWNX_ON_DEBUG_PLAY_VISUAL_EFFECT_AFTER"; +const string NWNX_ON_STORE_REQUEST_BUY_BEFORE = "NWNX_ON_STORE_REQUEST_BUY_BEFORE"; +const string NWNX_ON_STORE_REQUEST_BUY_AFTER = "NWNX_ON_STORE_REQUEST_BUY_AFTER"; +const string NWNX_ON_STORE_REQUEST_SELL_BEFORE = "NWNX_ON_STORE_REQUEST_SELL_BEFORE"; +const string NWNX_ON_STORE_REQUEST_SELL_AFTER = "NWNX_ON_STORE_REQUEST_SELL_AFTER"; +const string NWNX_ON_SERVER_SEND_AREA_BEFORE = "NWNX_ON_SERVER_SEND_AREA_BEFORE"; +const string NWNX_ON_SERVER_SEND_AREA_AFTER = "NWNX_ON_SERVER_SEND_AREA_AFTER"; +const string NWNX_ON_JOURNAL_OPEN_BEFORE = "NWNX_ON_JOURNAL_OPEN_BEFORE"; +const string NWNX_ON_JOURNAL_OPEN_AFTER = "NWNX_ON_JOURNAL_OPEN_AFTER"; +const string NWNX_ON_JOURNAL_CLOSE_BEFORE = "NWNX_ON_JOURNAL_CLOSE_BEFORE"; +const string NWNX_ON_JOURNAL_CLOSE_AFTER = "NWNX_ON_JOURNAL_CLOSE_AFTER"; +const string NWNX_ON_INPUT_EMOTE_BEFORE = "NWNX_ON_INPUT_EMOTE_BEFORE"; +const string NWNX_ON_INPUT_EMOTE_AFTER = "NWNX_ON_INPUT_EMOTE_AFTER"; +const string NWNX_ON_COMBAT_DR_BROKEN_BEFORE = "NWNX_ON_COMBAT_DR_BROKEN_BEFORE"; +const string NWNX_ON_COMBAT_DR_BROKEN_AFTER = "NWNX_ON_COMBAT_DR_BROKEN_AFTER"; +const string NWNX_ON_UNPOSSESS_FAMILIAR_BEFORE = "NWNX_ON_UNPOSSESS_FAMILIAR_BEFORE"; +const string NWNX_ON_UNPOSSESS_FAMILIAR_AFTER = "NWNX_ON_UNPOSSESS_FAMILIAR_AFTER"; +const string NWNX_ON_CLIENT_LEVEL_UP_BEGIN_BEFORE = "NWNX_ON_CLIENT_LEVEL_UP_BEGIN_BEFORE"; +const string NWNX_ON_CLIENT_LEVEL_UP_BEGIN_AFTER = "NWNX_ON_CLIENT_LEVEL_UP_BEGIN_AFTER"; +const string NWNX_ON_POSSESS_FAMILIAR_BEFORE = "NWNX_ON_POSSESS_FAMILIAR_BEFORE"; +const string NWNX_ON_POSSESS_FAMILIAR_AFTER = "NWNX_ON_POSSESS_FAMILIAR_AFTER"; +const string NWNX_ON_CHARACTER_SHEET_PERMITTED_BEFORE = "NWNX_ON_CHARACTER_SHEET_PERMITTED_BEFORE"; +const string NWNX_ON_CHARACTER_SHEET_PERMITTED_AFTER = "NWNX_ON_CHARACTER_SHEET_PERMITTED_AFTER"; +const string NWNX_ON_CHARACTER_SHEET_OPEN_BEFORE = "NWNX_ON_CHARACTER_SHEET_OPEN_BEFORE"; +const string NWNX_ON_CHARACTER_SHEET_OPEN_AFTER = "NWNX_ON_CHARACTER_SHEET_OPEN_AFTER"; +const string NWNX_ON_CHARACTER_SHEET_CLOSE_BEFORE = "NWNX_ON_CHARACTER_SHEET_CLOSE_BEFORE"; +const string NWNX_ON_CHARACTER_SHEET_CLOSE_AFTER = "NWNX_ON_CHARACTER_SHEET_CLOSE_AFTER"; +const string NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_BEFORE = "NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_BEFORE"; +const string NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_AFTER = "NWNX_ON_CLIENT_SET_DEVICE_PROPERTY_AFTER"; +const string NWNX_ON_INPUT_DROP_ITEM_BEFORE = "NWNX_ON_INPUT_DROP_ITEM_BEFORE"; +const string NWNX_ON_INPUT_DROP_ITEM_AFTER = "NWNX_ON_INPUT_DROP_ITEM_AFTER"; +const string NWNX_ON_DECREMENT_SPELL_COUNT_BEFORE = "NWNX_ON_DECREMENT_SPELL_COUNT_BEFORE"; +const string NWNX_ON_DECREMENT_SPELL_COUNT_AFTER = "NWNX_ON_DECREMENT_SPELL_COUNT_AFTER"; +const string NWNX_ON_RUN_EVENT_SCRIPT_BEFORE = "NWNX_ON_RUN_EVENT_SCRIPT_BEFORE"; +const string NWNX_ON_RUN_EVENT_SCRIPT_AFTER = "NWNX_ON_RUN_EVENT_SCRIPT_AFTER"; +const string NWNX_ON_OBJECT_USE_BEFORE = "NWNX_ON_OBJECT_USE_BEFORE"; +const string NWNX_ON_OBJECT_USE_AFTER = "NWNX_ON_OBJECT_USE_AFTER"; +const string NWNX_ON_PLACEABLE_OPEN_BEFORE = "NWNX_ON_PLACEABLE_OPEN_BEFORE"; +const string NWNX_ON_PLACEABLE_OPEN_AFTER = "NWNX_ON_PLACEABLE_OPEN_AFTER"; +const string NWNX_ON_PLACEABLE_CLOSE_BEFORE = "NWNX_ON_PLACEABLE_CLOSE_BEFORE"; +const string NWNX_ON_PLACEABLE_CLOSE_AFTER = "NWNX_ON_PLACEABLE_CLOSE_AFTER"; +const string NWNX_ON_BROADCAST_SAFE_PROJECTILE_BEFORE = "NWNX_ON_BROADCAST_SAFE_PROJECTILE_BEFORE"; +const string NWNX_ON_BROADCAST_SAFE_PROJECTILE_AFTER = "NWNX_ON_BROADCAST_SAFE_PROJECTILE_AFTER"; +const string NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_BEFORE = "NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_BEFORE"; +const string NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_AFTER = "NWNX_ON_BROADCAST_ATTACK_OF_OPPORTUNITY_AFTER"; +const string NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_BEFORE = "NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_BEFORE"; +const string NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_AFTER = "NWNX_ON_COMBAT_ATTACK_OF_OPPORTUNITY_AFTER"; +const string NWNX_ON_AREA_PLAY_BATTLE_MUSIC_BEFORE = "NWNX_ON_AREA_PLAY_BATTLE_MUSIC_BEFORE"; +const string NWNX_ON_AREA_PLAY_BATTLE_MUSIC_AFTER = "NWNX_ON_AREA_PLAY_BATTLE_MUSIC_AFTER"; +const string NWNX_ON_ATTACK_TARGET_CHANGE_BEFORE = "NWNX_ON_ATTACK_TARGET_CHANGE_BEFORE"; +const string NWNX_ON_ATTACK_TARGET_CHANGE_AFTER = "NWNX_ON_ATTACK_TARGET_CHANGE_AFTER"; +const string NWNX_ON_CREATURE_TILE_CHANGE_BEFORE = "NWNX_ON_CREATURE_TILE_CHANGE_BEFORE"; +const string NWNX_ON_CREATURE_TILE_CHANGE_AFTER = "NWNX_ON_CREATURE_TILE_CHANGE_AFTER"; +const string NWNX_ON_CREATURE_JUMP_TO_POINT_BEFORE = "NWNX_ON_CREATURE_JUMP_TO_POINT_BEFORE"; +const string NWNX_ON_CREATURE_JUMP_TO_POINT_AFTER = "NWNX_ON_CREATURE_JUMP_TO_POINT_AFTER"; +const string NWNX_ON_CREATURE_JUMP_TO_OBJECT_BEFORE = "NWNX_ON_CREATURE_JUMP_TO_OBJECT_BEFORE"; +const string NWNX_ON_CREATURE_JUMP_TO_OBJECT_AFTER = "NWNX_ON_CREATURE_JUMP_TO_OBJECT_AFTER"; +const string NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_BEFORE = "NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_BEFORE"; +const string NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_AFTER = "NWNX_ON_ITEMPROPERTY_EFFECT_APPLIED_AFTER"; +const string NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_BEFORE = "NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_BEFORE"; +const string NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_AFTER = "NWNX_ON_ITEMPROPERTY_EFFECT_REMOVED_AFTER"; +/// @} + +/// @name Events ObjectType Constants +/// @anchor events_objtype +/// @{ const int NWNX_EVENTS_OBJECT_TYPE_CREATURE = 5; const int NWNX_EVENTS_OBJECT_TYPE_ITEM = 6; const int NWNX_EVENTS_OBJECT_TYPE_TRIGGER = 7; @@ -1322,9 +2182,11 @@ const int NWNX_EVENTS_OBJECT_TYPE_PLACEABLE = 9; const int NWNX_EVENTS_OBJECT_TYPE_WAYPOINT = 12; const int NWNX_EVENTS_OBJECT_TYPE_ENCOUNTER = 13; const int NWNX_EVENTS_OBJECT_TYPE_PORTAL = 15; -*/ +/// @} -/* +/// @name Events TimingBar Constants +/// @anchor events_timingbar +/// @{ const int NWNX_EVENTS_TIMING_BAR_TRAP_FLAG = 1; const int NWNX_EVENTS_TIMING_BAR_TRAP_RECOVER = 2; const int NWNX_EVENTS_TIMING_BAR_TRAP_DISARM = 3; @@ -1334,7 +2196,45 @@ const int NWNX_EVENTS_TIMING_BAR_REST = 6; const int NWNX_EVENTS_TIMING_BAR_UNLOCK = 7; const int NWNX_EVENTS_TIMING_BAR_LOCK = 8; const int NWNX_EVENTS_TIMING_BAR_CUSTOM = 10; -*/ +/// @} + +/// @name Events SetVariable Constants +/// @anchor events_setvariable +/// @{ +const int NWNX_EVENTS_DM_SET_VARIABLE_TYPE_INT = 0; +const int NWNX_EVENTS_DM_SET_VARIABLE_TYPE_FLOAT = 1; +const int NWNX_EVENTS_DM_SET_VARIABLE_TYPE_STRING = 2; +const int NWNX_EVENTS_DM_SET_VARIABLE_TYPE_OBJECT = 3; +/// @} + +/// @name Events BroadcastSafeProjectile Constants +/// @anchor events_projtype +/// @{ +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_NONE = 0; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_ACID = 1; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_COLD = 2; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_ELECTRICAL = 3; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_FIRE = 4; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_WEAPON_VFX_SONIC = 5; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_SPELL_DEFAULT = 6; +const int NWNX_EVENTS_BROADCAST_SAFE_PROJECTILE_TYPE_SPELL_USE_PATH = 7; +/// @} + +/// @name Spell failed event reasons +/// @anchor events_spellfailreason +/// @{ +const int NWNX_EVENTS_SPELLFAIL_REASON_CANCELED = 0; +const int NWNX_EVENTS_SPELLFAIL_REASON_COUNTERSPELL = 1; +const int NWNX_EVENTS_SPELLFAIL_REASON_ASF = 2; +const int NWNX_EVENTS_SPELLFAIL_REASON_SPELLFAILURE = 3; +const int NWNX_EVENTS_SPELLFAIL_REASON_LOST_TARGET = 4; +const int NWNX_EVENTS_SPELLFAIL_REASON_SILENCED = 5; +const int NWNX_EVENTS_SPELLFAIL_REASON_DEFCAST_CONCENTRATION = 6; +const int NWNX_EVENTS_SPELLFAIL_REASON_ENTANGLE_CONCENTRATION = 7; +const int NWNX_EVENTS_SPELLFAIL_REASON_POLYMORPHED = 8; +const int NWNX_EVENTS_SPELLFAIL_REASON_CANT_CAST = 9; +const int NWNX_EVENTS_SPELLFAIL_REASON_CANT_USE_HANDS = 10; +/// @} /// @brief Scripts can subscribe to events. /// @@ -1349,6 +2249,25 @@ void NWNX_Events_SubscribeEvent(string evt, string script); /// @param script The script. void NWNX_Events_UnsubscribeEvent(string evt, string script); +/// @brief Unsubscribe all scripts from all events starting with prefix. +/// @param prefix the prefix to match against. Can be empty. +void NWNX_Events_UnsubscribeAllStartingWith(string prefix); + +/// @brief Script chunks can subscribe to events. +/// +/// Some events are dispatched via the NWNX plugin (see NWNX_EVENTS_EVENT_* constants). +/// Others can be signalled via script code via NWNX_Events_SignalEvent(). +/// @param sEvent The event name. +/// @param sScriptChunk The script chunk to execute when the event fires. +/// @param bWrapIntoMain TRUE if the script chunk needs to be wrapped into a void main(){}. +void NWNX_Events_SubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE); + +/// @brief Unsubscribe a script chunk from an event +/// @param sEvent The event name. +/// @param sScriptChunk The script chunk. +/// @param bWrapIntoMain TRUE if the script chunk needs to be wrapped into a void main(){}. Must match the value used when subscribing. +void NWNX_Events_UnsubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE); + /// Pushes event data at the provided tag, which subscribers can access with GetEventData. /// This should be called BEFORE SignalEvent. void NWNX_Events_PushEventData(string tag, string data); @@ -1384,9 +2303,9 @@ string NWNX_Events_GetEventData(string tag); /// - DMAction events /// - Client connect event /// - Client Export Character event -/// - Spell events +/// - Spell events (except SPELL_FAILED) /// - QuickChat events -/// - Barter event (START only) +/// - Barter event (START/ADD_ITEM only) /// - Trap events /// - Sticky Player Name event /// - Server Character Save Events @@ -1402,6 +2321,18 @@ string NWNX_Events_GetEventData(string tag); /// - Disarm event /// - {Enter|Exit}Detect events /// - Faction events +/// - UnpossessFamiliar event +/// - ClientLevelUpBegin event +/// - CharacterSheetPermitted event +/// - Input Drop Item +/// - Decrement Spell Count event +/// - Decrement Remaining Feat Uses event +/// - Play Visual Effect event +/// - EventScript event +/// - Broadcast Safe Projectile event +/// - Attack of Opportunity events +/// - Creature Jump events +/// - SetExperience Events void NWNX_Events_SkipEvent(); /// Set the return value of the event. @@ -1420,6 +2351,8 @@ void NWNX_Events_SkipEvent(); /// - Has Feat event -> "1" or "0" /// - Stealth event -> "1" to perform HiPS (without the feat), "0" to bypass HiPS /// - Faction set reputation event -> The new reputation to apply instead. ("0" - "100") +/// - CharacterSheetPermitted event -> "1" allow the player to view the character sheet or "0" to disallow +/// - Attack target change event -> The new target object. Convert to string with ObjectToString() void NWNX_Events_SetEventResult(string data); /// Returns the current event name @@ -1427,22 +2360,25 @@ void NWNX_Events_SetEventResult(string data); /// Returns "" on error string NWNX_Events_GetCurrentEvent(); -/// Toggles DispatchListMode for sEvent+sScript -/// If enabled, sEvent for sScript will only be signalled if the target object is on its dispatch list. -void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScript, int bEnable); +/// Toggles DispatchListMode for sEvent+sScript(Chunk) +/// If enabled, sEvent for sScript(Chunk) will only be signalled if the target object is on its dispatch list. +void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScriptOrChunk, int bEnable); -/// Add oObject to the dispatch list for sEvent+sScript. -void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScript, object oObject); +/// Add oObject to the dispatch list for sEvent+sScript(Chunk). +void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScriptOrChunk, object oObject); -/// Remove oObject from the dispatch list for sEvent+sScript. -void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScript, object oObject); +/// Remove oObject from the dispatch list for sEvent+sScript(Chunk). +void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScriptOrChunk, object oObject); /// @brief Toggle the whitelisting of IDs for sEvent. If whitelisting is enabled, the event will only fire for IDs that are /// on its whitelist. /// /// ONLY WORKS WITH THE FOLLOWING EVENTS -> ID TYPES: /// - NWNX_ON_CAST_SPELL -> SpellID +/// - NWNX_ON_SPELL_FAILED -> SpellID /// - NWNX_ON_HAS_FEAT -> FeatID (default enabled) +/// - NWNX_ON_RUN_EVENT_SCRIPT -> EVENT_SCRIPT_* (default enabled) +/// - NWNX_ON_BROADCAST_SAFE_PROJECTILE -> NWNX_ON_BROADCAST_SAFE_PROJECTILE_TYPE for ProjectileType, NWNX_ON_BROADCAST_SAFE_PROJECTILE_SPELL for SpellID /// /// @note This enables the whitelist for ALL scripts subscribed to sEvent. /// @param sEvent The event name without _BEFORE / _AFTER. @@ -1461,130 +2397,136 @@ void NWNX_Events_AddIDToWhitelist(string sEvent, int nID); /// @param nID The ID. void NWNX_Events_RemoveIDFromWhitelist(string sEvent, int nID); +/// @brief Get the number of subscribers to sEvent. +/// @param sEvent The event. +/// @return The number of subscribers sEvent has or 0 on error. +int NWNX_Events_GetNumSubscribers(string sEvent); + /// @} void NWNX_Events_SubscribeEvent(string evt, string script) { - string sFunc = "SubscribeEvent"; - - NWNX_PushArgumentString(NWNX_Events, sFunc, script); - NWNX_PushArgumentString(NWNX_Events, sFunc, evt); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(script); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "SubscribeEvent"); } void NWNX_Events_UnsubscribeEvent(string evt, string script) { - string sFunc = "UnsubscribeEvent"; + NWNXPushString(script); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "UnsubscribeEvent"); +} - NWNX_PushArgumentString(NWNX_Events, sFunc, script); - NWNX_PushArgumentString(NWNX_Events, sFunc, evt); - NWNX_CallFunction(NWNX_Events, sFunc); +void NWNX_Events_UnsubscribeAllStartingWith(string prefix) +{ + NWNXPushString(prefix); + NWNXCall(NWNX_Events, "UnsubscribeAllStartingWith"); +} + +void NWNX_Events_SubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE) +{ + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "SubscribeEventScriptChunk"); +} + +void NWNX_Events_UnsubscribeEventScriptChunk(string sEvent, string sScriptChunk, int bWrapIntoMain = TRUE) +{ + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "UnsubscribeEventScriptChunk"); } void NWNX_Events_PushEventData(string tag, string data) { - string sFunc = "PushEventData"; - - NWNX_PushArgumentString(NWNX_Events, sFunc, data); - NWNX_PushArgumentString(NWNX_Events, sFunc, tag); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(data); + NWNXPushString(tag); + NWNXCall(NWNX_Events, "PushEventData"); } int NWNX_Events_SignalEvent(string evt, object target) { - string sFunc = "SignalEvent"; - - NWNX_PushArgumentObject(NWNX_Events, sFunc, target); - NWNX_PushArgumentString(NWNX_Events, sFunc, evt); - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueInt(NWNX_Events, sFunc); + NWNXPushObject(target); + NWNXPushString(evt); + NWNXCall(NWNX_Events, "SignalEvent"); + return NWNXPopInt(); } string NWNX_Events_GetEventData(string tag) { - string sFunc = "GetEventData"; - - NWNX_PushArgumentString(NWNX_Events, sFunc, tag); - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueString(NWNX_Events, sFunc); + NWNXPushString(tag); + NWNXCall(NWNX_Events, "GetEventData"); + return NWNXPopString(); } void NWNX_Events_SkipEvent() { - string sFunc = "SkipEvent"; - - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXCall(NWNX_Events, "SkipEvent"); } void NWNX_Events_SetEventResult(string data) { - string sFunc = "SetEventResult"; - - NWNX_PushArgumentString(NWNX_Events, sFunc, data); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushString(data); + NWNXCall(NWNX_Events, "SetEventResult"); } string NWNX_Events_GetCurrentEvent() { - string sFunc = "GetCurrentEvent"; - - NWNX_CallFunction(NWNX_Events, sFunc); - return NWNX_GetReturnValueString(NWNX_Events, sFunc); + NWNXCall(NWNX_Events, "GetCurrentEvent"); + return NWNXPopString(); } -void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScript, int bEnable) +void NWNX_Events_ToggleDispatchListMode(string sEvent, string sScriptOrChunk, int bEnable) { - string sFunc = "ToggleDispatchListMode"; - - NWNX_PushArgumentInt(NWNX_Events, sFunc, bEnable); - NWNX_PushArgumentString(NWNX_Events, sFunc, sScript); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bEnable); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "ToggleDispatchListMode"); } -void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScript, object oObject) +void NWNX_Events_AddObjectToDispatchList(string sEvent, string sScriptOrChunk, object oObject) { - string sFunc = "AddObjectToDispatchList"; - - NWNX_PushArgumentObject(NWNX_Events, sFunc, oObject); - NWNX_PushArgumentString(NWNX_Events, sFunc, sScript); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushObject(oObject); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "AddObjectToDispatchList"); } -void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScript, object oObject) +void NWNX_Events_RemoveObjectFromDispatchList(string sEvent, string sScriptOrChunk, object oObject) { - string sFunc = "RemoveObjectFromDispatchList"; - - NWNX_PushArgumentObject(NWNX_Events, sFunc, oObject); - NWNX_PushArgumentString(NWNX_Events, sFunc, sScript); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushObject(oObject); + NWNXPushString(sScriptOrChunk); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "RemoveObjectFromDispatchList"); } void NWNX_Events_ToggleIDWhitelist(string sEvent, int bEnable) { - string sFunc = "ToggleIDWhitelist"; - - NWNX_PushArgumentInt(NWNX_Events, sFunc, bEnable); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(bEnable); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "ToggleIDWhitelist"); } void NWNX_Events_AddIDToWhitelist(string sEvent, int nID) { - string sFunc = "AddIDToWhitelist"; - - NWNX_PushArgumentInt(NWNX_Events, sFunc, nID); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(nID); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "AddIDToWhitelist"); } void NWNX_Events_RemoveIDFromWhitelist(string sEvent, int nID) { - string sFunc = "RemoveIDFromWhitelist"; - - NWNX_PushArgumentInt(NWNX_Events, sFunc, nID); - NWNX_PushArgumentString(NWNX_Events, sFunc, sEvent); - NWNX_CallFunction(NWNX_Events, sFunc); + NWNXPushInt(nID); + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "RemoveIDFromWhitelist"); +} + +int NWNX_Events_GetNumSubscribers(string sEvent) +{ + NWNXPushString(sEvent); + NWNXCall(NWNX_Events, "GetNumSubscribers"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_feat.nss b/_module/nss/nwnx_feat.nss index 3ee797ce..8b9468ea 100644 --- a/_module/nss/nwnx_feat.nss +++ b/_module/nss/nwnx_feat.nss @@ -2,7 +2,6 @@ /// @brief Define feat bonuses/penalties /// @{ /// @file nwnx_feat.nss -#include "nwnx" const string NWNX_Feat = "NWNX_Feat"; ///< @private @@ -10,34 +9,37 @@ const string NWNX_Feat = "NWNX_Feat"; ///< @private /// @anchor feat_modifiers /// /// @{ -const int NWNX_FEAT_MODIFIER_INVALID = 0; -const int NWNX_FEAT_MODIFIER_AB = 1; -const int NWNX_FEAT_MODIFIER_ABILITY = 2; -const int NWNX_FEAT_MODIFIER_ABVSRACE = 3; -const int NWNX_FEAT_MODIFIER_AC = 4; -const int NWNX_FEAT_MODIFIER_ACVSRACE = 5; -const int NWNX_FEAT_MODIFIER_ARCANESPELLFAILURE = 6; -const int NWNX_FEAT_MODIFIER_CONCEALMENT = 7; -const int NWNX_FEAT_MODIFIER_DMGIMMUNITY = 8; -const int NWNX_FEAT_MODIFIER_DMGREDUCTION = 9; -const int NWNX_FEAT_MODIFIER_DMGRESIST = 10; -const int NWNX_FEAT_MODIFIER_IMMUNITY = 11; -const int NWNX_FEAT_MODIFIER_MOVEMENTSPEED = 12; -const int NWNX_FEAT_MODIFIER_REGENERATION = 13; -const int NWNX_FEAT_MODIFIER_SAVE = 14; -const int NWNX_FEAT_MODIFIER_SAVEVSRACE = 15; -const int NWNX_FEAT_MODIFIER_SAVEVSTYPE = 16; -const int NWNX_FEAT_MODIFIER_SAVEVSTYPERACE = 17; -const int NWNX_FEAT_MODIFIER_SPELLIMMUNITY = 18; -const int NWNX_FEAT_MODIFIER_SRCHARGEN = 19; -const int NWNX_FEAT_MODIFIER_SRINCLEVEL = 20; -const int NWNX_FEAT_MODIFIER_SPELLSAVEDC = 21; -const int NWNX_FEAT_MODIFIER_BONUSSPELL = 22; -const int NWNX_FEAT_MODIFIER_TRUESEEING = 23; -const int NWNX_FEAT_MODIFIER_SEEINVISIBLE = 24; -const int NWNX_FEAT_MODIFIER_ULTRAVISION = 25; -const int NWNX_FEAT_MODIFIER_HASTE = 26; -const int NWNX_FEAT_MODIFIER_VISUALEFFECT = 27; +const int NWNX_FEAT_MODIFIER_INVALID = 0; +const int NWNX_FEAT_MODIFIER_AB = 1; +const int NWNX_FEAT_MODIFIER_ABILITY = 2; +const int NWNX_FEAT_MODIFIER_ABVSRACE = 3; +const int NWNX_FEAT_MODIFIER_AC = 4; +const int NWNX_FEAT_MODIFIER_ACVSRACE = 5; +const int NWNX_FEAT_MODIFIER_ARCANESPELLFAILURE = 6; +const int NWNX_FEAT_MODIFIER_CONCEALMENT = 7; +const int NWNX_FEAT_MODIFIER_DMGIMMUNITY = 8; +const int NWNX_FEAT_MODIFIER_DMGREDUCTION = 9; +const int NWNX_FEAT_MODIFIER_DMGRESIST = 10; +const int NWNX_FEAT_MODIFIER_IMMUNITY = 11; +const int NWNX_FEAT_MODIFIER_MOVEMENTSPEED = 12; +const int NWNX_FEAT_MODIFIER_REGENERATION = 13; +const int NWNX_FEAT_MODIFIER_SAVE = 14; +const int NWNX_FEAT_MODIFIER_SAVEVSRACE = 15; +const int NWNX_FEAT_MODIFIER_SAVEVSTYPE = 16; +const int NWNX_FEAT_MODIFIER_SAVEVSTYPERACE = 17; +const int NWNX_FEAT_MODIFIER_SPELLIMMUNITY = 18; +const int NWNX_FEAT_MODIFIER_SRCHARGEN = 19; +const int NWNX_FEAT_MODIFIER_SRINCLEVEL = 20; +const int NWNX_FEAT_MODIFIER_SPELLSAVEDC = 21; +const int NWNX_FEAT_MODIFIER_BONUSSPELL = 22; +const int NWNX_FEAT_MODIFIER_TRUESEEING = 23; +const int NWNX_FEAT_MODIFIER_SEEINVISIBLE = 24; +const int NWNX_FEAT_MODIFIER_ULTRAVISION = 25; +const int NWNX_FEAT_MODIFIER_HASTE = 26; +const int NWNX_FEAT_MODIFIER_VISUALEFFECT = 27; +const int NWNX_FEAT_MODIFIER_SPELLSAVEDCFORSCHOOL = 28; +const int NWNX_FEAT_MODIFIER_SPELLSAVEDCFORSPELL = 29; +const int NWNX_FEAT_MODIFIER_DAMAGE = 30; ///@} /// @brief Sets a feat modifier. @@ -50,14 +52,11 @@ void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, in void NWNX_Feat_SetFeatModifier(int iFeat, int iMod, int iParam1 = 0xDEADBEEF, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF, int iParam4 = 0xDEADBEEF) { - string sFunc = "SetFeatModifier"; - - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iParam4); - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iParam3); - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iParam2); - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iParam1); - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iMod); - NWNX_PushArgumentInt(NWNX_Feat, sFunc, iFeat); - - NWNX_CallFunction(NWNX_Feat, sFunc); + NWNXPushInt(iParam4); + NWNXPushInt(iParam3); + NWNXPushInt(iParam2); + NWNXPushInt(iParam1); + NWNXPushInt(iMod); + NWNXPushInt(iFeat); + NWNXCall(NWNX_Feat, "SetFeatModifier"); } diff --git a/_module/nss/nwnx_feat_2da.nss b/_module/nss/nwnx_feat_2da.nss new file mode 100644 index 00000000..82f0ead2 --- /dev/null +++ b/_module/nss/nwnx_feat_2da.nss @@ -0,0 +1,78 @@ +/// @ingroup feat +/// @file nwnx_feat_2da.nss +/// @brief Parse a column in the feat.2da to load the modifiers. +#include "nwnx_feat" + +/// @ingroup feat +/// @brief Translate a modifier type from a string to its constant. +/// @param featMod The string representation of the constant. +/// @return The constant for the feat modifier. +int NWNX_Feat_GetModifierConstant(string featMod); + +/// @ingroup feat +/// @brief Loops through feat.2da and checks for the column for feat modifications and sets them. +/// @param sColumnName The column name in the feat.2da that defines the 2da for the feat mods. +void NWNX_Feat_LoadFeatModifiers(string sColumnName = "FeatModsTable"); + +int NWNX_Feat_GetModifierConstant(string featMod) +{ + if (featMod == "AB") return NWNX_FEAT_MODIFIER_AB; + else if (featMod == "ABILITY") return NWNX_FEAT_MODIFIER_ABILITY; + else if (featMod == "ABVSRACE") return NWNX_FEAT_MODIFIER_ABVSRACE; + else if (featMod == "AC") return NWNX_FEAT_MODIFIER_AC; + else if (featMod == "ACVSRACE") return NWNX_FEAT_MODIFIER_ACVSRACE; + else if (featMod == "ARCANESPELLFAILURE") return NWNX_FEAT_MODIFIER_ARCANESPELLFAILURE; + else if (featMod == "BONUSSPELL") return NWNX_FEAT_MODIFIER_BONUSSPELL; + else if (featMod == "CONCEALMENT") return NWNX_FEAT_MODIFIER_CONCEALMENT; + else if (featMod == "DMGREDUCTION") return NWNX_FEAT_MODIFIER_DMGREDUCTION; + else if (featMod == "DMGRESIST") return NWNX_FEAT_MODIFIER_DMGRESIST; + else if (featMod == "DMGIMMUNITY") return NWNX_FEAT_MODIFIER_DMGIMMUNITY; + else if (featMod == "IMMUNITY") return NWNX_FEAT_MODIFIER_IMMUNITY; + else if (featMod == "HASTE") return NWNX_FEAT_MODIFIER_HASTE; + else if (featMod == "MOVEMENTSPEED") return NWNX_FEAT_MODIFIER_MOVEMENTSPEED; + else if (featMod == "REGENERATION") return NWNX_FEAT_MODIFIER_REGENERATION; + else if (featMod == "SAVE") return NWNX_FEAT_MODIFIER_SAVE; + else if (featMod == "SAVEVSRACE") return NWNX_FEAT_MODIFIER_SAVEVSRACE; + else if (featMod == "SAVEVSTYPE") return NWNX_FEAT_MODIFIER_SAVEVSTYPE; + else if (featMod == "SAVEVSTYPERACE") return NWNX_FEAT_MODIFIER_SAVEVSTYPERACE; + else if (featMod == "SEEINVISIBLE") return NWNX_FEAT_MODIFIER_SEEINVISIBLE; + else if (featMod == "SPELLIMMUNITY") return NWNX_FEAT_MODIFIER_SPELLIMMUNITY; + else if (featMod == "SRCHARGEN") return NWNX_FEAT_MODIFIER_SRCHARGEN; + else if (featMod == "SRINCLEVEL") return NWNX_FEAT_MODIFIER_SRINCLEVEL; + else if (featMod == "SPELLSAVEDC") return NWNX_FEAT_MODIFIER_SPELLSAVEDC; + else if (featMod == "TRUESEEING") return NWNX_FEAT_MODIFIER_TRUESEEING; + else if (featMod == "ULTRAVISION") return NWNX_FEAT_MODIFIER_ULTRAVISION; + else if (featMod == "VISUALEFFECT") return NWNX_FEAT_MODIFIER_VISUALEFFECT; + else if (featMod == "SPELLSAVEDCFORSCHOOL") return NWNX_FEAT_MODIFIER_SPELLSAVEDCFORSCHOOL; + else if (featMod == "SPELLSAVEDCFORSPELL") return NWNX_FEAT_MODIFIER_SPELLSAVEDCFORSPELL; + + return NWNX_FEAT_MODIFIER_INVALID; +} + +void NWNX_Feat_LoadFeatModifiers(string sColumnName = "FeatModsTable") +{ + int iFeatRows = Get2DARowCount("feat"); + int iFeat; + for (iFeat = 0; iFeat < iFeatRows; iFeat++) + { + string sFeatModTable = Get2DAString("feat", sColumnName, iFeat); + if(sFeatModTable != "") + { + int iFeatModRows = Get2DARowCount(sFeatModTable); + int iFeatMod; + for (iFeatMod = 0; iFeatMod < iFeatModRows; iFeatMod++) + { + string sType = Get2DAString(sFeatModTable, "Type", iFeatMod); + string sParam1 = Get2DAString(sFeatModTable, "Param1", iFeatMod); + string sParam2 = Get2DAString(sFeatModTable, "Param2", iFeatMod); + string sParam3 = Get2DAString(sFeatModTable, "Param3", iFeatMod); + string sParam4 = Get2DAString(sFeatModTable, "Param4", iFeatMod); + int iParam1 = sParam1 == "" ? 0xDEADBEEF : StringToInt(sParam1); + int iParam2 = sParam2 == "" ? 0xDEADBEEF : StringToInt(sParam2); + int iParam3 = sParam3 == "" ? 0xDEADBEEF : StringToInt(sParam3); + int iParam4 = sParam4 == "" ? 0xDEADBEEF : StringToInt(sParam4); + NWNX_Feat_SetFeatModifier(iFeat, NWNX_Feat_GetModifierConstant(sType), iParam1, iParam2, iParam3, iParam4); + } + } + } +} diff --git a/_module/nss/nwnx_feedback.nss b/_module/nss/nwnx_feedback.nss index 19aa0df9..3fa6f114 100644 --- a/_module/nss/nwnx_feedback.nss +++ b/_module/nss/nwnx_feedback.nss @@ -10,55 +10,33 @@ /// * -1 = Personal state is not set for Message /// @{ /// @file nwnx_feedback.nss -#include "nwnx" const string NWNX_Feedback = "NWNX_Feedback"; ///< @private /// @name Combat Log Message Types /// @anchor combat_log_msgs /// @{ -const int NWNX_FEEDBACK_COMBATLOG_SIMPLE_ADJECTIVE = 1; -/* -const int NWNX_FEEDBACK_COMBATLOG_SIMPLE_DAMAGE = 2; -const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE = 3; -const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_DEATH = 4; -const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_ATTACK = 5; -const int NWNX_FEEDBACK_COMBATLOG_SPECIAL_ATTACK = 6; -const int NWNX_FEEDBACK_COMBATLOG_SAVING_THROW = 7; -const int NWNX_FEEDBACK_COMBATLOG_CAST_SPELL = 8; -const int NWNX_FEEDBACK_COMBATLOG_USE_SKILL = 9; -const int NWNX_FEEDBACK_COMBATLOG_SPELL_RESISTANCE = 10; -const int NWNX_FEEDBACK_COMBATLOG_FEEDBACK = 11; // NOTE: This hides ALL feedback messages, to hide individual messages use NWNX_Feedback_SetFeedbackMessageHidden() -const int NWNX_FEEDBACK_COMBATLOG_COUNTERSPELL = 12; -const int NWNX_FEEDBACK_COMBATLOG_TOUCHATTACK = 13; -const int NWNX_FEEDBACK_COMBATLOG_INITIATIVE = 14; -const int NWNX_FEEDBACK_COMBATLOG_DISPEL_MAGIC = 15; -const int NWNX_FEEDBACK_COMBATLOG_POLYMORPH = 17; -const int NWNX_FEEDBACK_COMBATLOG_FEEDBACKSTRING = 18; -const int NWNX_FEEDBACK_COMBATLOG_VIBRATE = 19; -const int NWNX_FEEDBACK_COMBATLOG_UNLOCKACHIEVEMENT = 20; - -// 1 -> Simple_Adjective: : -// 2 -> Simple_Damage: damaged : -// 3 -> Complex_Damage: damages : -// 4 -> Complex_Death: killed -// 5 -> Complex_Attack: attacks : *hit* / *miss* / *parried* : ( + = ) -// 6 -> Special_Attack: attempts on : *success* / *failure* : ( + = ) -// 7 -> Saving_Throw: : : *success* / *failure* : ( + = ) -// 8 -> Cast_Spell: casts : Spellcraft check *failure* / *success* -// 9 -> Use_Skill: : : *success* / *failure* : ( + = vs ) -// 10 -> Spell_Resistance: : Spell Resistance : *success* / *failure* -// 11 -> Feedback: Reason skill/feat/ability failed. -// 12 -> Counterspel: casts : *spell countered by* : casting -// 13 -> TouchAttack: attempts on : *hit/miss/critical* : ( + = ) -// 14 -> Initiative: : Initiative Roll : : ( + = ) -// 15 -> Dispel_Magic: Dispel Magic : : , , ... -// 17 -> Unused, probably -// 18 -> Same as 11, maybe. Might be unused too -// 19 -> Unused -// 20 -> Unused -*/ - +const int NWNX_FEEDBACK_COMBATLOG_SIMPLE_ADJECTIVE = 1; // Simple_Adjective: : +const int NWNX_FEEDBACK_COMBATLOG_SIMPLE_DAMAGE = 2; // Simple_Damage: damaged : +const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_DAMAGE = 3; // Complex_Damage: damages : +const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_DEATH = 4; // Complex_Death: killed +const int NWNX_FEEDBACK_COMBATLOG_COMPLEX_ATTACK = 5; // Complex_Attack: attacks : *hit* / *miss* / *parried* : ( + = ) +const int NWNX_FEEDBACK_COMBATLOG_SPECIAL_ATTACK = 6; // Special_Attack: attempts on : *success* / *failure* : ( + = ) +const int NWNX_FEEDBACK_COMBATLOG_SAVING_THROW = 7; // Saving_Throw: : : *success* / *failure* : ( + = ) +const int NWNX_FEEDBACK_COMBATLOG_CAST_SPELL = 8; // Cast_Spell: casts : Spellcraft check *failure* / *success* +const int NWNX_FEEDBACK_COMBATLOG_USE_SKILL = 9; // Use_Skill: : : *success* / *failure* : ( + = vs ) +const int NWNX_FEEDBACK_COMBATLOG_SPELL_RESISTANCE = 10; // Spell_Resistance: : Spell Resistance : *success* / *failure* +const int NWNX_FEEDBACK_COMBATLOG_FEEDBACK = 11; // Reason skill/feat/ability failed, SendMessageToPC() NOTE: This hides ALL feedback messages, to hide individual messages use NWNX_Feedback_SetFeedbackMessageHidden() +const int NWNX_FEEDBACK_COMBATLOG_COUNTERSPELL = 12; // Counterspel: casts : *spell countered by* : casting +const int NWNX_FEEDBACK_COMBATLOG_TOUCHATTACK = 13; // TouchAttack: attempts on : *hit/miss/critical* : ( + = ) +const int NWNX_FEEDBACK_COMBATLOG_INITIATIVE = 14; // Initiative: : Initiative Roll : : ( + = ) +const int NWNX_FEEDBACK_COMBATLOG_DISPEL_MAGIC = 15; // Dispel_Magic: Dispel Magic : : , , ... +const int NWNX_FEEDBACK_COMBATLOG_POLYMORPH = 17; // Doesn't go through the function that the plugin hooks, so does nothing. +const int NWNX_FEEDBACK_COMBATLOG_FEEDBACKSTRING = 18; // Custom feedback for objects requiring a key +const int NWNX_FEEDBACK_COMBATLOG_VIBRATE = 19; // Controller vibration +const int NWNX_FEEDBACK_COMBATLOG_UNLOCKACHIEVEMENT = 20; // Unlock Campaign Achievement +const int NWNX_FEEDBACK_COMBATLOG_POSTAURSTRING = 22; // PostString messages +const int NWNX_FEEDBACK_COMBATLOG_ENTERTARGETINGMODE = 23; // Enter Targeting Mode /// @} /// @name Feedback Message Types @@ -66,7 +44,6 @@ const int NWNX_FEEDBACK_COMBATLOG_UNLOCKACHIEVEMENT = 20; /// @{ const int NWNX_FEEDBACK_SKILL_CANT_USE = 0; -/* /// Skill Feedback Messages const int NWNX_FEEDBACK_SKILL_CANT_USE_TIMER = 1; const int NWNX_FEEDBACK_SKILL_ANIMALEMPATHY_VALID_TARGETS = 2; @@ -83,7 +60,7 @@ const int NWNX_FEEDBACK_SKILL_HEAL_TARGET_NOT_DISPSND = 55; const int NWNX_FEEDBACK_SKILL_HEAL_VALID_TARGETS = 56; const int NWNX_FEEDBACK_SKILL_STEALTH_IN_COMBAT = 60; -/// Miscellaneous Targetting Messages +/// Miscellaneous Targeting Messages const int NWNX_FEEDBACK_TARGET_UNAWARE = 6; const int NWNX_FEEDBACK_ACTION_NOT_POSSIBLE_STATUS = 7; const int NWNX_FEEDBACK_ACTION_NOT_POSSIBLE_PVP = 187; @@ -368,7 +345,6 @@ const int NWNX_FEEDBACK_CAMERA_CHASECAM = 258; const int NWNX_FEEDBACK_SAVING = 225; const int NWNX_FEEDBACK_SAVE_COMPLETE = 226; -*/ /// @} /// @brief Gets if feedback message is hidden. @@ -425,95 +401,69 @@ void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist); int NWNX_Feedback_GetFeedbackMessageHidden(int nMessage, object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 0; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessage); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Feedback, sFunc); + NWNXPushInt(nMessage); + NWNXPushInt(0); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); + return NWNXPopInt(); } void NWNX_Feedback_SetFeedbackMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 0; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, isHidden); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessage); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(nMessage); + NWNXPushInt(0); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } int NWNX_Feedback_GetCombatLogMessageHidden(int nMessage, object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 1; + NWNXPushInt(nMessage); + NWNXPushInt(1); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessage); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Feedback, sFunc); + return NWNXPopInt(); } void NWNX_Feedback_SetCombatLogMessageHidden(int nMessage, int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 1; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, isHidden); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessage); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(nMessage); + NWNXPushInt(1); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } int NWNX_Feedback_GetJournalUpdatedMessageHidden(object oPC = OBJECT_INVALID) { - string sFunc = "GetMessageHidden"; - int nMessageType = 2; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, 0); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Feedback, sFunc); + NWNXPushInt(0); + NWNXPushInt(2); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "GetMessageHidden"); + return NWNXPopInt(); } void NWNX_Feedback_SetJournalUpdatedMessageHidden(int isHidden, object oPC = OBJECT_INVALID) { - string sFunc = "SetMessageHidden"; - int nMessageType = 2; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, isHidden); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, 0); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_PushArgumentObject(NWNX_Feedback, sFunc, oPC); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(isHidden); + NWNXPushInt(0); + NWNXPushInt(2); + NWNXPushObject(oPC); + NWNXCall(NWNX_Feedback, "SetMessageHidden"); } void NWNX_Feedback_SetFeedbackMessageMode(int bWhitelist) { - string sFunc = "SetFeedbackMode"; - int nMessageType = 0; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, bWhitelist); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(bWhitelist); + NWNXPushInt(0); + NWNXCall(NWNX_Feedback, "SetFeedbackMode"); } void NWNX_Feedback_SetCombatLogMessageMode(int bWhitelist) { - string sFunc = "SetFeedbackMode"; - int nMessageType = 1; - - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, bWhitelist); - NWNX_PushArgumentInt(NWNX_Feedback, sFunc, nMessageType); - NWNX_CallFunction(NWNX_Feedback, sFunc); + NWNXPushInt(bWhitelist); + NWNXPushInt(1); + NWNXCall(NWNX_Feedback, "SetFeedbackMode"); } diff --git a/_module/nss/nwnx_httpclient.nss b/_module/nss/nwnx_httpclient.nss new file mode 100644 index 00000000..878dc3dd --- /dev/null +++ b/_module/nss/nwnx_httpclient.nss @@ -0,0 +1,107 @@ +/// @addtogroup httpclient HTTPClient +/// @brief NWNX HTTPClient +/// @{ +/// @file nwnx_httpclient.nss + +const string NWNX_HTTPClient = "NWNX_HTTPClient"; ///< @private + +/// @name Request Types +/// @anchor request_types +/// +/// @{ +const int NWNX_HTTPCLIENT_REQUEST_METHOD_GET = 0; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_POST = 1; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_DELETE = 2; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_PATCH = 3; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_PUT = 4; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_OPTION = 5; +const int NWNX_HTTPCLIENT_REQUEST_METHOD_HEAD = 6; +///@} + +/// @name Content Types +/// @anchor content_types +/// +/// @{ +const int NWNX_HTTPCLIENT_CONTENT_TYPE_HTML = 0; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_PLAINTEXT = 1; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_JSON = 2; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_FORM_URLENCODED = 3; +const int NWNX_HTTPCLIENT_CONTENT_TYPE_XML = 4; +///@} + +/// @name HTTP Authentication Types +/// @anchor auth_types +/// +/// @{ +const int NWNX_HTTPCLIENT_AUTH_TYPE_NONE = 0; +const int NWNX_HTTPCLIENT_AUTH_TYPE_BASIC = 1; +const int NWNX_HTTPCLIENT_AUTH_TYPE_DIGEST = 2; +const int NWNX_HTTPCLIENT_AUTH_TYPE_BEARER_TOKEN = 3; +///@} + +/// A structure for an HTTP Client Request +struct NWNX_HTTPClient_Request +{ + int nRequestMethod; ///< A @ref request_types "Request Type" + string sTag; ///< A unique tag for this request + string sHost; ///< The host domain name/IP address + string sPath; ///< The path for the url (include the leading /) + string sData; ///< The data being sent + int nContentType; ///< A @ref content_types "Content Type" + int nAuthType; ///< An @ref auth_types "Authentication Type" + string sAuthUserOrToken; ///< The authentication username or token + string sAuthPassword; ///< The authentication password (ignored if just using a token) + int nPort; ///< The host port + string sHeaders; ///< Pipe (|) delimited header pairs, e.g. "User-Agent: My NWNX HTTP Client|Accept: application/vnd.github.v3+json" +}; + +/// @brief Sends an http method to the given host. +/// @param s The structured NWNX_HTTPClient_Request information. +/// @return A unique identifier for the request for later access in the REQUEST_ID event data. +int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s); + +/// @brief Returns an NWNX_HTTP_Client_Request structure +/// @param nRequestId The request id returned from NWNX_HTTPClient_SendRequest() +/// @return The structured NWNX_HTTPClient_Request information +struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId); + +/// @} + +int NWNX_HTTPClient_SendRequest(struct NWNX_HTTPClient_Request s) +{ + NWNXPushString(s.sHeaders); + NWNXPushInt(s.nPort); + NWNXPushString(s.sAuthPassword); + NWNXPushString(s.sAuthUserOrToken); + NWNXPushInt(s.nAuthType); + NWNXPushString(s.sData); + NWNXPushInt(s.nContentType); + NWNXPushString(s.sPath); + NWNXPushString(s.sHost); + NWNXPushInt(s.nRequestMethod); + NWNXPushString(s.sTag); + NWNXCall(NWNX_HTTPClient, "SendRequest"); + return NWNXPopInt(); +} + +struct NWNX_HTTPClient_Request NWNX_HTTPClient_GetRequest(int nRequestId) +{ + NWNXPushInt(nRequestId); + NWNXCall(NWNX_HTTPClient, "GetRequest"); + + struct NWNX_HTTPClient_Request s; + + s.sTag = NWNXPopString(); + s.nRequestMethod = NWNXPopInt(); + s.sHost = NWNXPopString(); + s.sPath = NWNXPopString(); + s.nContentType = NWNXPopInt(); + s.sData = NWNXPopString(); + s.nAuthType = NWNXPopInt(); + s.sAuthUserOrToken = NWNXPopString(); + s.sAuthPassword = NWNXPopString(); + s.nPort = NWNXPopInt(); + s.sHeaders = NWNXPopString(); + + return s; +} diff --git a/_module/nss/nwnx_item.nss b/_module/nss/nwnx_item.nss index ce83ef86..d604f9ed 100644 --- a/_module/nss/nwnx_item.nss +++ b/_module/nss/nwnx_item.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional item properties. /// @{ /// @file nwnx_item.nss -#include "nwnx" const string NWNX_Item = "NWNX_Item"; ///< @private @@ -16,6 +15,7 @@ void NWNX_Item_SetWeight(object oItem, int weight); /// @remark Total cost = base_value + additional_value. /// @remark Equivalent to SetGoldPieceValue NWNX2 function. /// @note Will not persist through saving. +/// @note This value will also revert if item is identified or player relogs into server. /// @param oItem The item object. /// @param gold The base gold value. void NWNX_Item_SetBaseGoldPieceValue(object oItem, int gold); @@ -68,7 +68,12 @@ void NWNX_Item_SetBaseItemType(object oItem, int nBaseItem); /// /// [1] When specifying per-part coloring, the value 255 corresponds with the logical /// function 'clear colour override', which clears the per-part override for that part. -void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue); +/// @param oItem The item +/// @param nType The type +/// @param nIndex The index +/// @param nValue The value +/// @param bUpdateCreatureAppearance If TRUE, also update the appearance of oItem's possessor. Only works for armor/helmets/cloaks. Will remove the item from the quickbar as side effect. +void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue, int bUpdateCreatureAppearance = FALSE); /// @brief Return a string containing the entire appearance for an item. /// @sa NWNX_Item_RestoreItemAppearance @@ -91,117 +96,157 @@ int NWNX_Item_GetBaseArmorClass(object oItem); /// @return The minimum level required to equip the item. int NWNX_Item_GetMinEquipLevel(object oItem); +/// @brief Move oItem to oTarget +/// @remark Moving items from a container to the inventory of the container's owner (or the other way around) is always "silent" and won't trigger feedback messages +/// @param oItem The item object. +/// @param oTarget The target bag/creature/placeable or store object to move oItem to. +/// @param bHideAllFeedback Hides all feedback messages generated by losing/acquiring items +/// @return TRUE if the item was successfully moved to the target, otherwise FALSE +int NWNX_Item_MoveTo(object oItem, object oTarget, int bHideAllFeedback = FALSE); + +/// @brief Set a modifier to the Minimum Level to Equip (Item Level Restriction). +/// @param oItem The item object. +/// @param nModifier the modifier to apply (After any Override) +/// @param bPersist Whether the modifier should persist to gff field. Strongly Recommended to be TRUE (See warning) +/// @note This function (or override partner) must be used each server reset to re-enable persistence. Recommended use on OBJECT_INVALID OnModuleLoad. +/// @warning if Persistence is FALSE, or not re-enabled, beware characters may trigger ELC logging in with now-invalid ItemLevelRestrictions equipped. +void NWNX_Item_SetMinEquipLevelModifier(object oItem, int nModifier, int bPersist = TRUE); + +/// @brief Gets the applied modifier to the Minimum Level to Equip (Item Level Restriction). +/// @param oItem The item object. +int NWNX_Item_GetMinEquipLevelModifier(object oItem); + +/// @brief Set an override to the Minimum Level to Equip (Item Level Restriction). +/// @param oItem The item object. +/// @param nOverride the nOverride to apply (Before any Modifier) +/// @param bPersist Whether the modifier should persist to gff field. Strongly Recommended to be TRUE (See warning) +/// @note This function (or modifier partner) must be used each server reset to re-enable persistence. Recommended use on OBJECT_INVALID OnModuleLoad. +/// @warning if Persistence is FALSE, or not re-enabled, beware characters may trigger ELC logging in with now-invalid ItemLevelRestrictions equipped. +void NWNX_Item_SetMinEquipLevelOverride(object oItem, int nOverride, int bPersist = TRUE); + +/// @brief Gets the applied override to the Minimum Level to Equip (Item Level Restriction). +/// @param oItem The item object. +int NWNX_Item_GetMinEquipLevelOverride(object oItem); + + /// @} void NWNX_Item_SetWeight(object oItem, int w) { - string sFunc = "SetWeight"; - - NWNX_PushArgumentInt(NWNX_Item, sFunc, w); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(w); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetWeight"); } void NWNX_Item_SetBaseGoldPieceValue(object oItem, int g) { - string sFunc = "SetBaseGoldPieceValue"; - - NWNX_PushArgumentInt(NWNX_Item, sFunc, g); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(g); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetBaseGoldPieceValue"); } void NWNX_Item_SetAddGoldPieceValue(object oItem, int g) { - string sFunc = "SetAddGoldPieceValue"; - - NWNX_PushArgumentInt(NWNX_Item, sFunc, g); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(g); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetAddGoldPieceValue"); } int NWNX_Item_GetBaseGoldPieceValue(object oItem) { - string sFunc = "GetBaseGoldPieceValue"; - - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(NWNX_Item, sFunc); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetBaseGoldPieceValue"); + return NWNXPopInt(); } int NWNX_Item_GetAddGoldPieceValue(object oItem) { - string sFunc = "GetAddGoldPieceValue"; - - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(NWNX_Item, sFunc); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetAddGoldPieceValue"); + return NWNXPopInt(); } void NWNX_Item_SetBaseItemType(object oItem, int nBaseItem) { - string sFunc = "SetBaseItemType"; - - NWNX_PushArgumentInt(NWNX_Item, sFunc, nBaseItem); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushInt(nBaseItem); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetBaseItemType"); } -void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue) +void NWNX_Item_SetItemAppearance(object oItem, int nType, int nIndex, int nValue, int bUpdateCreatureAppearance = FALSE) { - string sFunc = "SetItemAppearance"; - - NWNX_PushArgumentInt(NWNX_Item, sFunc, nValue); - NWNX_PushArgumentInt(NWNX_Item, sFunc, nIndex); - NWNX_PushArgumentInt(NWNX_Item, sFunc, nType); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - + NWNXPushInt(bUpdateCreatureAppearance); + NWNXPushInt(nValue); + NWNXPushInt(nIndex); + NWNXPushInt(nType); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetItemAppearance"); } string NWNX_Item_GetEntireItemAppearance(object oItem) { - string sFunc = "GetEntireItemAppearance"; - - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueString(NWNX_Item, sFunc); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetEntireItemAppearance"); + return NWNXPopString(); } void NWNX_Item_RestoreItemAppearance(object oItem, string sApp) { - string sFunc = "RestoreItemAppearance"; - - NWNX_PushArgumentString(NWNX_Item, sFunc, sApp); - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); + NWNXPushString(sApp); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "RestoreItemAppearance"); } int NWNX_Item_GetBaseArmorClass(object oItem) { - string sFunc = "GetBaseArmorClass"; - - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(NWNX_Item, sFunc); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetBaseArmorClass"); + return NWNXPopInt(); } int NWNX_Item_GetMinEquipLevel(object oItem) { - string sFunc = "GetMinEquipLevel"; - - NWNX_PushArgumentObject(NWNX_Item, sFunc, oItem); - - NWNX_CallFunction(NWNX_Item, sFunc); - return NWNX_GetReturnValueInt(NWNX_Item, sFunc); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevel"); + return NWNXPopInt(); +} + +int NWNX_Item_MoveTo(object oItem, object oTarget, int bHideAllFeedback = FALSE) +{ + NWNXPushInt(bHideAllFeedback); + NWNXPushObject(oTarget); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "MoveTo"); + return NWNXPopInt(); +} + +void NWNX_Item_SetMinEquipLevelModifier(object oItem, int nModifier, int bPersist = TRUE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nModifier); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetMinEquipLevelModifier"); +} + +int NWNX_Item_GetMinEquipLevelModifier(object oItem) +{ + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevelModifier"); + return NWNXPopInt(); +} + +void NWNX_Item_SetMinEquipLevelOverride(object oItem, int nOverride, int bPersist = TRUE) +{ + + NWNXPushInt(bPersist); + NWNXPushInt(nOverride); + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "SetMinEquipLevelOverride"); +} + +int NWNX_Item_GetMinEquipLevelOverride(object oItem) +{ + NWNXPushObject(oItem); + NWNXCall(NWNX_Item, "GetMinEquipLevelOverride"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_itemprop.nss b/_module/nss/nwnx_itemprop.nss index 5385c350..d956add0 100644 --- a/_module/nss/nwnx_itemprop.nss +++ b/_module/nss/nwnx_itemprop.nss @@ -2,13 +2,13 @@ /// @brief Utility functions to manipulate the builtin itemproperty type. /// @{ /// @file nwnx_itemprop.nss -#include "nwnx" const string NWNX_ItemProperty = "NWNX_ItemProperty"; ///< @private /// @brief An unpacked itemproperty. struct NWNX_IPUnpacked { + string sID; ///< @todo Describe int nProperty; ///< @todo Describe int nSubType; ///< @todo Describe int nCostTable; ///< @todo Describe @@ -43,68 +43,58 @@ struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIn struct NWNX_IPUnpacked NWNX_ItemProperty_UnpackIP(itemproperty ip) { - string sFunc = "UnpackIP"; - - NWNX_PushArgumentItemProperty(NWNX_ItemProperty, sFunc, ip); - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - + NWNXPushItemProperty(ip); + NWNXCall(NWNX_ItemProperty, "UnpackIP"); struct NWNX_IPUnpacked n; - - n.nProperty = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nSubType = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nCostTable = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nCostTableValue = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nParam1 = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nParam1Value = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nUsesPerDay = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nChanceToAppear = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.bUsable = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nSpellId = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.oCreator = NWNX_GetReturnValueObject(NWNX_ItemProperty, sFunc); - n.sTag = NWNX_GetReturnValueString(NWNX_ItemProperty, sFunc); - + n.sID = NWNXPopString(); + n.nProperty = NWNXPopInt(); + n.nSubType = NWNXPopInt(); + n.nCostTable = NWNXPopInt(); + n.nCostTableValue = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam1Value = NWNXPopInt(); + n.nUsesPerDay = NWNXPopInt(); + n.nChanceToAppear = NWNXPopInt(); + n.bUsable = NWNXPopInt(); + n.nSpellId = NWNXPopInt(); + n.oCreator = NWNXPopObject(); + n.sTag = NWNXPopString(); return n; } + itemproperty NWNX_ItemProperty_PackIP(struct NWNX_IPUnpacked n) { - string sFunc = "PackIP"; - - NWNX_PushArgumentString(NWNX_ItemProperty, sFunc, n.sTag); - NWNX_PushArgumentObject(NWNX_ItemProperty, sFunc, n.oCreator); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nSpellId); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.bUsable); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nChanceToAppear); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nUsesPerDay); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nParam1Value); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nParam1); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nCostTableValue); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nCostTable); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nSubType); - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, n.nProperty); - - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - return NWNX_GetReturnValueItemProperty(NWNX_ItemProperty, sFunc); + NWNXPushString(n.sTag); + NWNXPushObject(n.oCreator); + NWNXPushInt(n.nSpellId); + NWNXPushInt(n.bUsable); + NWNXPushInt(n.nChanceToAppear); + NWNXPushInt(n.nUsesPerDay); + NWNXPushInt(n.nParam1Value); + NWNXPushInt(n.nParam1); + NWNXPushInt(n.nCostTableValue); + NWNXPushInt(n.nCostTable); + NWNXPushInt(n.nSubType); + NWNXPushInt(n.nProperty); + NWNXCall(NWNX_ItemProperty, "PackIP"); + return NWNXPopItemProperty(); } struct NWNX_IPUnpacked NWNX_ItemProperty_GetActiveProperty(object oItem, int nIndex) { - string sFunc = "GetActiveProperty"; - NWNX_PushArgumentInt(NWNX_ItemProperty, sFunc, nIndex); - NWNX_PushArgumentObject(NWNX_ItemProperty, sFunc, oItem); - NWNX_CallFunction(NWNX_ItemProperty, sFunc); - + NWNXPushInt(nIndex); + NWNXPushObject(oItem); + NWNXCall(NWNX_ItemProperty, "GetActiveProperty"); struct NWNX_IPUnpacked n; - - n.nProperty = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nSubType = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nCostTable = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nCostTableValue = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nParam1 = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nParam1Value = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nUsesPerDay = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.nChanceToAppear = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.bUsable = NWNX_GetReturnValueInt(NWNX_ItemProperty, sFunc); - n.sTag = NWNX_GetReturnValueString(NWNX_ItemProperty, sFunc); - + n.nProperty = NWNXPopInt(); + n.nSubType = NWNXPopInt(); + n.nCostTable = NWNXPopInt(); + n.nCostTableValue = NWNXPopInt(); + n.nParam1 = NWNXPopInt(); + n.nParam1Value = NWNXPopInt(); + n.nUsesPerDay = NWNXPopInt(); + n.nChanceToAppear = NWNXPopInt(); + n.bUsable = NWNXPopInt(); + n.sTag = NWNXPopString(); return n; -} \ No newline at end of file +} diff --git a/_module/nss/nwnx_lua.nss b/_module/nss/nwnx_lua.nss index 70eb707e..42bf158e 100644 --- a/_module/nss/nwnx_lua.nss +++ b/_module/nss/nwnx_lua.nss @@ -2,7 +2,6 @@ /// @brief Execute Lua code and generate events in NWScript /// @{ /// @file nwnx_lua.nss -#include "nwnx" const string NWNX_Lua = "NWNX_Lua"; ///< @private @@ -25,27 +24,21 @@ void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra=""); void NWNX_Lua_EvalVoid(string sCode) { - string sFunc = "EvalVoid"; - - NWNX_PushArgumentString(NWNX_Lua, sFunc, sCode); - NWNX_CallFunction(NWNX_Lua, sFunc); + NWNXPushString(sCode); + NWNXCall(NWNX_Lua, "EvalVoid"); } string NWNX_Lua_Eval(string sCode) { - string sFunc = "Eval"; - - NWNX_PushArgumentString(NWNX_Lua, sFunc, sCode); - NWNX_CallFunction(NWNX_Lua, sFunc); - return NWNX_GetReturnValueString(NWNX_Lua, sFunc); + NWNXPushString(sCode); + NWNXCall(NWNX_Lua, "Eval"); + return NWNXPopString(); } void NWNX_Lua_RunEvent(string sEvent, object oObject, string sExtra="") { - string sFunc = "RunEvent"; - - NWNX_PushArgumentString(NWNX_Lua, sFunc, sExtra); - NWNX_PushArgumentObject(NWNX_Lua, sFunc, oObject); - NWNX_PushArgumentString(NWNX_Lua, sFunc, sEvent); - NWNX_CallFunction(NWNX_Lua, sFunc); + NWNXPushString(sExtra); + NWNXPushObject(oObject); + NWNXPushString(sEvent); + NWNXCall(NWNX_Lua, "RunEvent"); } diff --git a/_module/nss/nwnx_nostack.nss b/_module/nss/nwnx_nostack.nss new file mode 100644 index 00000000..159214f9 --- /dev/null +++ b/_module/nss/nwnx_nostack.nss @@ -0,0 +1,36 @@ +/// @addtogroup nostack NoStack +/// @brief Functions to allow more control over ability/skill/bonuses stacking. +/// @{ +/// @file nwnx_nostack.nss + +const string NWNX_NoStack = "NWNX_NoStack"; ///< @private + +/// @name Spell Effect Bonus Types +/// @anchor spell_bonus_types +/// +/// Used with NWNX_NoStack_SetSpellBonusType() these are the effect bonus types. +/// @{ +const int NWNX_NOSTACK_EFFECT_TYPE_ENHANCEMENT = 0; +const int NWNX_NOSTACK_EFFECT_TYPE_CIRCUMSTANCE = 1; +const int NWNX_NOSTACK_EFFECT_TYPE_COMPETENCE = 2; +const int NWNX_NOSTACK_EFFECT_TYPE_INSIGHT = 3; +const int NWNX_NOSTACK_EFFECT_TYPE_LUCK = 4; +const int NWNX_NOSTACK_EFFECT_TYPE_MORALE = 5; +const int NWNX_NOSTACK_EFFECT_TYPE_PROFANE = 6; +const int NWNX_NOSTACK_EFFECT_TYPE_RESISTANCE = 7; +const int NWNX_NOSTACK_EFFECT_TYPE_SACRED = 8; +/// @} + +/// @brief Sets a spell bonus type to be used by the NoStack feature. +/// @param spell The spell ID from spells.2da. +/// @param type The new type. +void NWNX_NoStack_SetSpellBonusType(int spell, int type); + +/// @} + +void NWNX_NoStack_SetSpellBonusType(int spell, int type) +{ + NWNXPushInt(type); + NWNXPushInt(spell); + NWNXCall(NWNX_NoStack, "SetSpellBonusType"); +} diff --git a/_module/nss/nwnx_nwsqliteext.nss b/_module/nss/nwnx_nwsqliteext.nss new file mode 100644 index 00000000..953a863a --- /dev/null +++ b/_module/nss/nwnx_nwsqliteext.nss @@ -0,0 +1,24 @@ +/// @addtogroup nwsqliteextensions NWSQLiteExtensions +/// @brief Various extensions for the game's built-in sqlite database. +/// @{ +/// @file nwnx_nwsqliteext.nss + +const string NWNX_NWSQLiteExtensions = "NWNX_NWSQLiteExtensions"; ///< @private + +/// @brief Create a virtual table for s2DA in the module sqlite database. +/// @param s2DA The 2DA name, cannot be empty. +/// @param sColumnTypeHints A string containing type hints for the 2DA columns. See this plugin's readme file for more info. +/// @param sTableName The table name, will use the 2da name if empty. +/// @return TRUE if the virtual table was created. +int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTypeHints = "", string sTableName = ""); + +/// @} + +int NWNX_NWSQLiteExtensions_CreateVirtual2DATable(string s2DA, string sColumnTypeHints = "", string sTableName = "") +{ + NWNXPushString(sTableName); + NWNXPushString(sColumnTypeHints); + NWNXPushString(s2DA); + NWNXCall(NWNX_NWSQLiteExtensions, "CreateVirtual2DATable"); + return NWNXPopInt(); +} diff --git a/_module/nss/nwnx_object.nss b/_module/nss/nwnx_object.nss index e6f4eeac..cbc27f77 100644 --- a/_module/nss/nwnx_object.nss +++ b/_module/nss/nwnx_object.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional object properties. /// @{ /// @file nwnx_object.nss -#include "nwnx" const string NWNX_Object = "NWNX_Object"; ///< @private @@ -15,6 +14,7 @@ const int NWNX_OBJECT_LOCALVAR_TYPE_FLOAT = 2; const int NWNX_OBJECT_LOCALVAR_TYPE_STRING = 3; const int NWNX_OBJECT_LOCALVAR_TYPE_OBJECT = 4; const int NWNX_OBJECT_LOCALVAR_TYPE_LOCATION = 5; +const int NWNX_OBJECT_LOCALVAR_TYPE_JSON = 6; /// @} /// @anchor object_internal_types @@ -39,6 +39,13 @@ const int NWNX_OBJECT_TYPE_INTERNAL_PORTAL = 15; const int NWNX_OBJECT_TYPE_INTERNAL_SOUND = 16; /// @} +/// @anchor projectile_types +/// @name Projectile VFX Types +/// @{ +const int NWNX_OBJECT_SPELL_PROJECTILE_TYPE_DEFAULT = 6; +const int NWNX_OBJECT_SPELL_PROJECTILE_TYPE_USE_PATH = 7; +/// @} + /// A local variable structure. struct NWNX_Object_LocalVariable { @@ -61,18 +68,12 @@ int NWNX_Object_GetLocalVariableCount(object obj); /// @note As of build 8193.14, this function takes O(n) time, where n is the number /// of locals on the object. Individual variable access with GetLocalXxx() /// is now O(1) though. -/// @note As of build 8193.14, this function may return variable type UNKNOWN -/// if the value is the default (0/0.0/""/OBJECT_INVALID) for the type. +/// @note As of build 8193.14, this function will not return a variable if the value is +/// the default (0/0.0/""/OBJECT_INVALID/JsonNull()) for the type. They are considered not set. +/// @note Will return type UNKNOWN for cassowary variables. /// @return An NWNX_Object_LocalVariable struct. struct NWNX_Object_LocalVariable NWNX_Object_GetLocalVariable(object obj, int index); -/// @brief Convert an object id to the actual object. -/// @param id The object id. -/// @return An object from the provided object ID. -/// @remark This is the counterpart to ObjectToString. -/// @deprecated Use the basegame StringToObject() function. This will be removed in a future NWNX release. -object NWNX_Object_StringToObject(string id); - /// @brief Set oObject's position. /// @param oObject The object. /// @param vPosition A vector position. @@ -135,12 +136,6 @@ int NWNX_Object_GetAppearance(object oPlaceable); /// @return TRUE if the object has the visual effect applied to it int NWNX_Object_GetHasVisualEffect(object obj, int nVFX); -/// @brief Check if an item can fit in an object's inventory. -/// @param obj The object with an inventory. -/// @param baseitem The base item id to check for a fit. -/// @return TRUE if an item of base item type can fit in object's inventory -int NWNX_Object_CheckFit(object obj, int baseitem); - /// @brief Get an object's damage immunity. /// @param obj The object. /// @param damageType The damage type to check for immunity. Use DAMAGE_TYPE_* constants. @@ -190,23 +185,11 @@ string NWNX_Object_GetTriggerGeometry(object oTrigger); /// @remark The minimum number of vertices is 3. void NWNX_Object_SetTriggerGeometry(object oTrigger, string sGeometry); -/// @brief Add an effect to an object that displays an icon and has no other effect. -/// @remark See effecticons.2da for a list of possible effect icons. -/// @param obj The object to apply the effect. -/// @param nIcon The icon id. -/// @param fDuration If specified the effect will be temporary and last this length in seconds, otherwise the effect -/// will be permanent. -void NWNX_Object_AddIconEffect(object obj, int nIcon, float fDuration=0.0); - -/// @brief Remove an icon effect from an object that was added by the NWNX_Object_AddIconEffect() function. -/// @param obj The object. -/// @param nIcon The icon id. -void NWNX_Object_RemoveIconEffect(object obj, int nIcon); - /// @brief Export an object to the UserDirectory/nwnx folder. /// @param sFileName The filename without extension, 16 or less characters. /// @param oObject The object to export. Valid object types: Creature, Item, Placeable, Waypoint, Door, Store, Trigger -void NWNX_Object_Export(string sFileName, object oObject); +/// @param sAlias The alias of the resource directory to add the .git file to. Default: UserDirectory/nwnx +void NWNX_Object_Export(object oObject, string sFileName, string sAlias = "NWNX"); /// @brief Get oObject's integer variable sVarName. /// @param oObject The object to get the variable from. @@ -287,14 +270,6 @@ int NWNX_Object_GetInternalObjectType(object oObject); /// @return TRUE on success. int NWNX_Object_AcquireItem(object oObject, object oItem); -/// @brief Cause oObject to face fDirection. -/// @note This function is almost identical to SetFacing(), the only difference being that it allows you to specify -/// the target object without the use of AssignCommand(). This is useful when you want to change the facing of an object -/// in an ExecuteScriptChunk() call where AssignCommand() does not work. -/// @param oObject The object to change its facing of -/// @param fDirection The direction the object should face -void NWNX_Object_SetFacing(object oObject, float fDirection); - /// @brief Clear all spell effects oObject has applied to others. /// @param oObject The object that applied the spell effects. void NWNX_Object_ClearSpellEffectsOnOthers(object oObject); @@ -317,14 +292,18 @@ int NWNX_Object_GetIsDestroyable(object oObject); /// @brief Checks for specific spell immunity. Should only be called in spellscripts /// @param oDefender The object defending against the spell. /// @param oCaster The object casting the spell. +/// @param nSpellId The casted spell id. Default value is -1, which corresponds to the normal game behaviour. /// @return -1 if defender has no immunity, 2 if the defender is immune -int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster); +int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster, int nSpellId=-1); /// @brief Checks for spell school/level immunities and mantles. Should only be called in spellscripts /// @param oDefender The object defending against the spell. /// @param oCaster The object casting the spell. +/// @param nSpellId The casted spell id. Default value is -1, which corresponds to the normal game behaviour. +/// @param nSpellLevel The level of the casted spell. Default value is -1, which corresponds to the normal game behaviour. +/// @param nSpellSchool The school of the casted spell (SPELL_SCHOOL_* constant). Default value is -1, which corresponds to the normal game behaviour. /// @return -1 defender no immunity. 2 if immune. 3 if immune, but the immunity has a limit (example: mantles) -int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster); +int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster, int nSpellId=-1, int nSpellLevel=-1, int nSpellSchool=-1); /// @brief Sets if a placeable has an inventory. /// @param obj The placeable. @@ -339,496 +318,593 @@ void NWNX_Object_SetHasInventory(object obj, int bHasInventory); /// @return -1 on error or the engine animation constant int NWNX_Object_GetCurrentAnimation(object oObject); +/// @brief Gets the AI level of an object. +/// @param oObject The object. +/// @return The AI level (AI_LEVEL_* -1 to 4). +int NWNX_Object_GetAILevel(object oObject); + +/// @brief Sets the AI level of an object. +/// @param oObject The object. +/// @param nLevel The level to set (AI_LEVEL_* -1 to 4). +void NWNX_Object_SetAILevel(object oObject, int nLevel); + +/// @brief Retrieves the Map Note (AKA Map Pin) from a waypoint - Returns even if currently disabled. +/// @param oObject The Waypoint object +/// @param nID The Language ID (default English) +/// @param nGender 0 = Male, 1 = Female +string NWNX_Object_GetMapNote(object oObject, int nID = 0, int nGender = 0); + +/// @brief Sets a Map Note (AKA Map Pin) to any waypoint, even if no previous map note. Only updates for clients on area-load. Use SetMapPinEnabled() as required. +/// @param oObject The Waypoint object +/// @param sMapNote The contents to set as the Map Note. +/// @param nID The Language ID (default English) +/// @param nGender 0 = Male, 1 = Female +void NWNX_Object_SetMapNote(object oObject, string sMapNote, int nID = 0, int nGender = 0); + +/// @brief Gets the last spell cast feat of oObject. +/// @note Should be called in a spell script. +/// @param oObject The object. +/// @return The feat ID, or 65535 when not cast by a feat, or -1 on error. +int NWNX_Object_GetLastSpellCastFeat(object oObject); + +/// @brief Sets the last object that triggered door or placeable trap. +/// @note Should be retrieved with GetEnteringObject. +/// @param oObject Door or placeable object +/// @param oLast Object that last triggered trap. +void NWNX_Object_SetLastTriggered(object oObject, object oLast); + +/// @brief Gets the remaining duration of the AoE object. +/// @param oAoE The AreaOfEffect object. +/// @return The remaining duration, in seconds, or the zero on failure. +float NWNX_Object_GetAoEObjectDurationRemaining(object oAoE); + +/// @brief Sets conversations started by oObject to be private or not. +/// @note ActionStartConversation()'s bPrivateConversation parameter will overwrite this flag. +/// @param oObject The object. +/// @param bPrivate TRUE/FALSE. +void NWNX_Object_SetConversationPrivate(object oObject, int bPrivate); + +/// @brief Sets the radius of a circle AoE object. +/// @param oAoE The AreaOfEffect object. +/// @param fRadius The radius, must be bigger than 0.0f. +void NWNX_Object_SetAoEObjectRadius(object oAoE, float fRadius); + +/// @brief Gets the radius of a circle AoE object. +/// @param oAoE The AreaOfEffect object. +/// @return The radius or 0.0f on error +float NWNX_Object_GetAoEObjectRadius(object oAoE); + +/// @brief Gets whether the last spell cast of oObject was spontaneous. +/// @note Should be called in a spell script. +/// @param oObject The object. +/// @return true if the last spell was cast spontaneously +int NWNX_Object_GetLastSpellCastSpontaneous(object oObject); + +/// @brief Gets the last spell cast domain level. +/// @note Should be called in a spell script. +/// @param oObject The object. +/// @return Domain level of the cast spell, 0 if not a domain spell +int NWNX_Object_GetLastSpellCastDomainLevel(object oObject); + +/// @brief Force the given object to carry the given UUID. Any other object currently owning the UUID is stripped of it. +/// @param oObject The object +/// @param sUUID The UUID to force +void NWNX_Object_ForceAssignUUID(object oObject, string sUUID); + +/// @brief Returns how many items are in oObject's inventory. +/// @param oObject A creature, placeable, item or store. +/// @return Returns a count of how many items are in oObject's inventory. +int NWNX_Object_GetInventoryItemCount(object oObject); + +/// @brief Override the projectile visual effect of ranged/throwing weapons and spells. +/// @param oCreature The creature. +/// @param nProjectileType A @ref projectile_types "NWNX_OBJECT_SPELL_PROJECTILE_TYPE_*" constant or -1 to remove the override. +/// @param nProjectilePathType A "PROJECTILE_PATH_TYPE_*" constant or -1 to ignore. +/// @param nSpellID A "SPELL_*" constant. -1 to ignore. +/// @param bPersist Whether the override should persist to the .bic file (for PCs). +/// @note Persistence is enabled after a server reset by the first use of this function. Recommended to trigger on a dummy target OnModuleLoad to enable persistence. +/// This will override all spell projectile VFX from oCreature until the override is removed. +void NWNX_Object_OverrideSpellProjectileVFX(object oCreature, int nProjectileType = -1, int nProjectilePathType = -1, int nSpellID = -1, int bPersist = FALSE); + +/// @brief Returns TRUE if the last spell was cast instantly. This function should only be called in a spell script. +/// @note To initialize the hooks used by this function it is recommended to call this function once in your module load script. +/// @return TRUE if the last spell was instant. +int NWNX_Object_GetLastSpellInstant(); + +/// @brief Sets the creator of a trap on door, placeable, or trigger. Also changes trap Faction to that of the new Creator. +/// @note Triggers (ground traps) will instantly update colour (Green/Red). Placeable/doors will not change if client has already seen them. +/// @param oObject Door, placeable or trigger (trap) object +/// @param oCreator The new creator of the trap. Any non-creature creator will assign OBJECT_INVALID (similar to toolset-laid traps) +void NWNX_Object_SetTrapCreator(object oObject, object oCreator); + +/// @brief Return the name of the object for nLanguage. +/// @param oObject an object +/// @param nLanguage A PLAYER_LANGUAGE constant. +/// @param nGender Gender to use, 0 or 1. +/// @return The localized string. +string NWNX_Object_GetLocalizedName(object oObject, int nLanguage, int nGender = 0); + +/// @brief Set the name of the object as set in the toolset for nLanguage. +/// @note You may have to SetName(oObject, "") for the translated string to show. +/// @param oObject an object +/// @param sName New value to set +/// @param nLanguage A PLAYER_LANGUAGE constant. +/// @param nGender Gender to use, 0 or 1. +void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, int nGender = 0); + /// @} int NWNX_Object_GetLocalVariableCount(object obj) { - string sFunc = "GetLocalVariableCount"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetLocalVariableCount"); + return NWNXPopInt(); } struct NWNX_Object_LocalVariable NWNX_Object_GetLocalVariable(object obj, int index) { - string sFunc = "GetLocalVariable"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, index); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); - + NWNXPushInt(index); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetLocalVariable"); struct NWNX_Object_LocalVariable var; - var.key = NWNX_GetReturnValueString(NWNX_Object, sFunc); - var.type = NWNX_GetReturnValueInt(NWNX_Object, sFunc); + var.key = NWNXPopString(); + var.type = NWNXPopInt(); return var; } -object NWNX_Object_StringToObject(string id) -{ - WriteTimestampedLogEntry("WARNING: NWNX_Object_StringToObject() is deprecated, please use the basegame's StringToObject()"); - - return StringToObject(id); -} - void NWNX_Object_SetPosition(object oObject, vector vPosition, int bUpdateSubareas = TRUE) { - string sFunc = "SetPosition"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bUpdateSubareas); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.x); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.y); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.z); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bUpdateSubareas); + NWNXPushVector(vPosition); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetPosition"); } int NWNX_Object_GetCurrentHitPoints(object creature) { - string sFunc = "GetCurrentHitPoints"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, creature); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "GetCurrentHitPoints"); + return NWNXPopInt(); } void NWNX_Object_SetCurrentHitPoints(object creature, int hp) { - string sFunc = "SetCurrentHitPoints"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, hp); - NWNX_PushArgumentObject(NWNX_Object, sFunc, creature); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(hp); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "SetCurrentHitPoints"); } void NWNX_Object_SetMaxHitPoints(object creature, int hp) { - string sFunc = "SetMaxHitPoints"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, hp); - NWNX_PushArgumentObject(NWNX_Object, sFunc, creature); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(hp); + NWNXPushObject(creature); + NWNXCall(NWNX_Object, "SetMaxHitPoints"); } string NWNX_Object_Serialize(object obj) { - string sFunc = "Serialize"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueString(NWNX_Object, sFunc); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "Serialize"); + return NWNXPopString(); } object NWNX_Object_Deserialize(string serialized) { - string sFunc = "Deserialize"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, serialized); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueObject(NWNX_Object, sFunc); + NWNXPushString(serialized); + NWNXCall(NWNX_Object, "Deserialize"); + return NWNXPopObject(); } string NWNX_Object_GetDialogResref(object obj) { - string sFunc = "GetDialogResref"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueString(NWNX_Object, sFunc); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetDialogResref"); + return NWNXPopString(); } void NWNX_Object_SetDialogResref(object obj, string dialog) { - string sFunc = "SetDialogResref"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, dialog); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(dialog); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetDialogResref"); } void NWNX_Object_SetAppearance(object oPlaceable, int nAppearance) { - string sFunc = "SetAppearance"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, nAppearance); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oPlaceable); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(nAppearance); + NWNXPushObject(oPlaceable); + NWNXCall(NWNX_Object, "SetAppearance"); } int NWNX_Object_GetAppearance(object oPlaceable) { - string sFunc = "GetAppearance"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oPlaceable); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(oPlaceable); + NWNXCall(NWNX_Object, "GetAppearance"); + return NWNXPopInt(); } int NWNX_Object_GetHasVisualEffect(object obj, int nVFX) { - string sFunc = "GetHasVisualEffect"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, nVFX); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); -} - -int NWNX_Object_CheckFit(object obj, int baseitem) -{ - string sFunc = "CheckFit"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, baseitem); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushInt(nVFX); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetHasVisualEffect"); + return NWNXPopInt(); } int NWNX_Object_GetDamageImmunity(object obj, int damageType) { - string sFunc = "GetDamageImmunity"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, damageType); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushInt(damageType); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetDamageImmunity"); + return NWNXPopInt(); } void NWNX_Object_AddToArea(object obj, object area, vector pos) { - string sFunc = "AddToArea"; - - NWNX_PushArgumentFloat(NWNX_Object, sFunc, pos.z); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, pos.y); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, pos.x); - NWNX_PushArgumentObject(NWNX_Object, sFunc, area); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushVector(pos); + NWNXPushObject(area); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "AddToArea"); } int NWNX_Object_GetPlaceableIsStatic(object obj) { - string sFunc = "GetPlaceableIsStatic"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetPlaceableIsStatic"); + return NWNXPopInt(); } void NWNX_Object_SetPlaceableIsStatic(object obj, int isStatic) { - string sFunc = "SetPlaceableIsStatic"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, isStatic); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(isStatic); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetPlaceableIsStatic"); } int NWNX_Object_GetAutoRemoveKey(object obj) { - string sFunc = "GetAutoRemoveKey"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "GetAutoRemoveKey"); + return NWNXPopInt(); } void NWNX_Object_SetAutoRemoveKey(object obj, int bRemoveKey) { - string sFunc = "SetAutoRemoveKey"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bRemoveKey); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bRemoveKey); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetAutoRemoveKey"); } string NWNX_Object_GetTriggerGeometry(object oTrigger) { - string sFunc = "GetTriggerGeometry"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(NWNX_Object, sFunc); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "GetTriggerGeometry"); + return NWNXPopString(); } void NWNX_Object_SetTriggerGeometry(object oTrigger, string sGeometry) { - string sFunc = "SetTriggerGeometry"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sGeometry); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sGeometry); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "SetTriggerGeometry"); } -void NWNX_Object_AddIconEffect(object obj, int nIcon, float fDuration=0.0) +void NWNX_Object_Export(object oObject, string sFileName, string sAlias = "NWNX") { - string sFunc = "AddIconEffect"; - - NWNX_PushArgumentFloat(NWNX_Object, sFunc, fDuration); - NWNX_PushArgumentInt(NWNX_Object, sFunc, nIcon); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); -} - -void NWNX_Object_RemoveIconEffect(object obj, int nIcon) -{ - string sFunc = "RemoveIconEffect"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, nIcon); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - NWNX_CallFunction(NWNX_Object, sFunc); -} - -void NWNX_Object_Export(string sFileName, object oObject) -{ - string sFunc = "Export"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_PushArgumentString(NWNX_Object, sFunc, sFileName); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sAlias); + NWNXPushString(sFileName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "Export"); } int NWNX_Object_GetInt(object oObject, string sVarName) { - string sFunc = "GetInt"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInt"); + return NWNXPopInt(); } void NWNX_Object_SetInt(object oObject, string sVarName, int nValue, int bPersist) { - string sFunc = "SetInt"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Object, sFunc, nValue); - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetInt"); } void NWNX_Object_DeleteInt(object oObject, string sVarName) { - string sFunc = "DeleteInt"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteInt"); } string NWNX_Object_GetString(object oObject, string sVarName) { - string sFunc = "GetString"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetString"); + return NWNXPopString(); } void NWNX_Object_SetString(object oObject, string sVarName, string sValue, int bPersist) { - string sFunc = "SetString"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bPersist); - NWNX_PushArgumentString(NWNX_Object, sFunc, sValue); - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushString(sValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetString"); } void NWNX_Object_DeleteString(object oObject, string sVarName) { - string sFunc = "DeleteString"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteString"); } float NWNX_Object_GetFloat(object oObject, string sVarName) { - string sFunc = "GetFloat"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueFloat(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetFloat"); + return NWNXPopFloat(); } void NWNX_Object_SetFloat(object oObject, string sVarName, float fValue, int bPersist) { - string sFunc = "SetFloat"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bPersist); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, fValue); - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bPersist); + NWNXPushFloat(fValue); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetFloat"); } void NWNX_Object_DeleteFloat(object oObject, string sVarName) { - string sFunc = "DeleteFloat"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sVarName); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sVarName); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteFloat"); } void NWNX_Object_DeleteVarRegex(object oObject, string sRegex) { - string sFunc = "DeleteVarRegex"; - - NWNX_PushArgumentString(NWNX_Object, sFunc, sRegex); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushString(sRegex); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "DeleteVarRegex"); } int NWNX_Object_GetPositionIsInTrigger(object oTrigger, vector vPosition) { - string sFunc = "GetPositionIsInTrigger"; - - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.z); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.y); - NWNX_PushArgumentFloat(NWNX_Object, sFunc, vPosition.x); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oTrigger); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushVector(vPosition); + NWNXPushObject(oTrigger); + NWNXCall(NWNX_Object, "GetPositionIsInTrigger"); + return NWNXPopInt(); } int NWNX_Object_GetInternalObjectType(object oObject) { - string sFunc = "GetInternalObjectType"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInternalObjectType"); + return NWNXPopInt(); } int NWNX_Object_AcquireItem(object oObject, object oItem) { - string sFunc = "AcquireItem"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oItem); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); -} - -void NWNX_Object_SetFacing(object oObject, float fDirection) -{ - string sFunc = "SetFacing"; - - NWNX_PushArgumentFloat(NWNX_Object, sFunc, fDirection); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushObject(oItem); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "AcquireItem"); + return NWNXPopInt(); } void NWNX_Object_ClearSpellEffectsOnOthers(object oObject) { - string sFunc = "ClearSpellEffectsOnOthers"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "ClearSpellEffectsOnOthers"); } string NWNX_Object_PeekUUID(object oObject) { - string sFunc = "PeekUUID"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueString(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "PeekUUID"); + return NWNXPopString(); } int NWNX_Object_GetDoorHasVisibleModel(object oDoor) { - string sFunc = "GetDoorHasVisibleModel"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oDoor); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(oDoor); + NWNXCall(NWNX_Object, "GetDoorHasVisibleModel"); + return NWNXPopInt(); } int NWNX_Object_GetIsDestroyable(object oObject) { - string sFunc = "GetIsDestroyable"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetIsDestroyable"); + return NWNXPopInt(); } -int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster) +int NWNX_Object_DoSpellImmunity(object oDefender, object oCaster, int nSpellId=-1) { - string sFunc = "DoSpellImmunity"; - NWNX_PushArgumentObject(NWNX_Object, sFunc, oCaster); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oDefender); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object,sFunc); + NWNXPushInt(nSpellId); + NWNXPushObject(oCaster); + NWNXPushObject(oDefender); + NWNXCall(NWNX_Object, "DoSpellImmunity"); + return NWNXPopInt(); } -int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster) +int NWNX_Object_DoSpellLevelAbsorption(object oDefender, object oCaster, int nSpellId=-1, int nSpellLevel=-1, int nSpellSchool=-1) { - string sFunc = "DoSpellLevelAbsorption"; - NWNX_PushArgumentObject(NWNX_Object, sFunc, oCaster); - NWNX_PushArgumentObject(NWNX_Object, sFunc, oDefender); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object,sFunc); + NWNXPushInt(nSpellSchool); + NWNXPushInt(nSpellLevel); + NWNXPushInt(nSpellId); + NWNXPushObject(oCaster); + NWNXPushObject(oDefender); + NWNXCall(NWNX_Object, "DoSpellLevelAbsorption"); + return NWNXPopInt(); } void NWNX_Object_SetHasInventory(object obj, int bHasInventory) { - string sFunc = "SetHasInventory"; - - NWNX_PushArgumentInt(NWNX_Object, sFunc, bHasInventory); - NWNX_PushArgumentObject(NWNX_Object, sFunc, obj); - - NWNX_CallFunction(NWNX_Object, sFunc); + NWNXPushInt(bHasInventory); + NWNXPushObject(obj); + NWNXCall(NWNX_Object, "SetHasInventory"); } int NWNX_Object_GetCurrentAnimation(object oObject) { - string sFunc = "GetCurrentAnimation"; - - NWNX_PushArgumentObject(NWNX_Object, sFunc, oObject); - NWNX_CallFunction(NWNX_Object, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Object, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetCurrentAnimation"); + return NWNXPopInt(); +} + +int NWNX_Object_GetAILevel(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetAILevel"); + return NWNXPopInt(); +} + +void NWNX_Object_SetAILevel(object oObject, int nLevel) +{ + NWNXPushInt(nLevel); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetAILevel"); +} + +string NWNX_Object_GetMapNote(object oObject, int nID = 0, int nGender = 0) +{ + NWNXPushInt(nGender); + NWNXPushInt(nID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetMapNote"); + return NWNXPopString(); +} + +void NWNX_Object_SetMapNote(object oObject, string sMapNote, int nID = 0, int nGender = 0) +{ + NWNXPushInt(nGender); + NWNXPushInt(nID); + NWNXPushString(sMapNote); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetMapNote"); +} + +int NWNX_Object_GetLastSpellCastFeat(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastFeat"); + return NWNXPopInt(); +} + +void NWNX_Object_SetLastTriggered(object oObject, object oLast) +{ + NWNXPushObject(oLast); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetLastTriggered"); +} + +float NWNX_Object_GetAoEObjectDurationRemaining(object oAoE) +{ + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "GetAoEObjectDurationRemaining"); + return NWNXPopFloat(); +} + +void NWNX_Object_SetConversationPrivate(object oObject, int bPrivate) +{ + NWNXPushInt(bPrivate); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetConversationPrivate"); +} + +void NWNX_Object_SetAoEObjectRadius(object oAoE, float fRadius) +{ + NWNXPushFloat(fRadius); + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "SetAoEObjectRadius"); +} + +float NWNX_Object_GetAoEObjectRadius(object oAoE) +{ + NWNXPushObject(oAoE); + NWNXCall(NWNX_Object, "GetAoEObjectRadius"); + return NWNXPopFloat(); +} + +int NWNX_Object_GetLastSpellCastSpontaneous(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastSpontaneous"); + return NWNXPopInt(); +} + +int NWNX_Object_GetLastSpellCastDomainLevel(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetLastSpellCastDomainLevel"); + return NWNXPopInt(); +} + +void NWNX_Object_ForceAssignUUID(object oObject, string sUUID) +{ + NWNXPushString(sUUID); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "ForceAssignUUID"); +} + +int NWNX_Object_GetInventoryItemCount(object oObject) +{ + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "GetInventoryItemCount"); + return NWNXPopInt(); +} + +void NWNX_Object_OverrideSpellProjectileVFX(object oCreature, int nProjectileType = -1, int nProjectilePathType = -1, int nSpellID = -1, int bPersist = FALSE) +{ + NWNXPushInt(bPersist); + NWNXPushInt(nSpellID); + NWNXPushInt(nProjectilePathType); + NWNXPushInt(nProjectileType); + NWNXPushObject(oCreature); + NWNXCall(NWNX_Object, "OverrideSpellProjectileVFX"); +} + +int NWNX_Object_GetLastSpellInstant() +{ + NWNXCall(NWNX_Object, "GetLastSpellInstant"); + return NWNXPopInt(); +} + +void NWNX_Object_SetTrapCreator(object oObject, object oCreator) +{ + NWNXPushObject(oCreator); + NWNXPushObject(oObject); + NWNXCall(NWNX_Object, "SetTrapCreator"); +} + +string NWNX_Object_GetLocalizedName(object oObject, int nLanguage, int nGender = 0) +{ + string sFunc = "GetLocalizedName"; + + NWNXPushInt(nGender); + NWNXPushInt(nLanguage); + NWNXPushObject(oObject); + + NWNXCall(NWNX_Object, sFunc); + return NWNXPopString(); +} + +void NWNX_Object_SetLocalizedName(object oObject, string sName, int nLanguage, int nGender = 0) +{ + string sFunc = "SetLocalizedName"; + + NWNXPushInt(nGender); + NWNXPushInt(nLanguage); + NWNXPushString(sName); + NWNXPushObject(oObject); + + NWNXCall(NWNX_Object, sFunc); } diff --git a/_module/nss/nwnx_player.nss b/_module/nss/nwnx_player.nss index 60c4a1c1..c90daddd 100644 --- a/_module/nss/nwnx_player.nss +++ b/_module/nss/nwnx_player.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional player properties. /// @{ /// @file nwnx_player.nss -#include "nwnx" const string NWNX_Player = "NWNX_Player"; ///< @private @@ -78,7 +77,7 @@ const int NWNX_PLAYER_PLATFORM_SONY_PS4 = 70; /// @} /// @brief Force display placeable examine window for player -/// @note If used on a placeable in a different area than the player, the portait will not be shown. +/// @note If used on a placeable in a different area than the player, the portrait will not be shown. /// @param player The player object. /// @param placeable The placeable object. void NWNX_Player_ForcePlaceableExamineWindow(object player, object placeable); @@ -135,7 +134,10 @@ string NWNX_Player_GetBicFileName(object player); /// @param player The player object. /// @param effectId The effect id. /// @param position The position to play the visual effect. -void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position); +/// @param scale The scale of the effect +/// @param translate A translation vector to offset the position of the effect +/// @param rotate A rotation vector to rotate the effect +void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position, float scale=1.0f, vector translate=[], vector rotate=[]); /// @brief Changes the daytime music track for the given player only /// @param player The player object. @@ -190,8 +192,11 @@ void NWNX_Player_SetRestDuration(object player, int duration); /// @param player The player object. /// @param target The target object to play the effect upon. /// @param visualeffect The visual effect id. +/// @param scale The scale of the effect +/// @param translate A translation vector to offset the position of the effect +/// @param rotate A rotation vector to rotate the effect /// @note Only works with instant effects: VFX_COM_*, VFX_FNF_*, VFX_IMP_* -void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect); +void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect, float scale=1.0f, vector translate=[], vector rotate=[]); /// @brief Refreshes the players character sheet /// @param player The player object. @@ -323,7 +328,8 @@ void NWNX_Player_SetCreatureNameOverride(object oPlayer, object oCreature, strin /// @param oPlayer The player to display the text to. /// @param oCreature The creature to display the text above. /// @param sText The text to display. -void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText); +/// @param bChatWindow If TRUE, sText will be displayed in oPlayer's chat window. +void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText, int bChatWindow = TRUE); /// @brief Toggle oPlayer's PlayerDM status. /// @note This function does nothing for actual DMClient DMs or players with a client version < 8193.14 @@ -382,26 +388,90 @@ struct NWNX_Player_JournalEntry NWNX_Player_GetJournalEntry(object oPlayer, stri /// @param oPlayer The player object. void NWNX_Player_CloseStore(object oPlayer); +/// @brief Override nStrRef from the TlkTable with sOverride for oPlayer only. +/// @param oPlayer The player. +/// @param nStrRef The StrRef. +/// @param sOverride The new value for nStrRef or "" to remove the override. +/// @param bRestoreGlobal If TRUE, when removing a personal override it will attempt to restore the global override if it exists. +/// @note Overrides will not persist through relogging. +void NWNX_Player_SetTlkOverride(object oPlayer, int nStrRef, string sOverride, int bRestoreGlobal = TRUE); + +/// @brief Make the player reload it's TlkTable. +/// @param oPlayer The player. +void NWNX_Player_ReloadTlk(object oPlayer); + +/// @brief Update wind for oPlayer only. +/// @param oPlayer The player. +/// @param vDirection The Wind's direction. +/// @param fMagnitude The Wind's magnitude. +/// @param fYaw The Wind's yaw. +/// @param fPitch The Wind's pitch. +void NWNX_Player_UpdateWind(object oPlayer, vector vDirection, float fMagnitude, float fYaw, float fPitch); + +/// @brief Update the SkyBox for oPlayer only. +/// @param oPlayer The player. +/// @param nSkyBox The Skybox ID. +void NWNX_Player_UpdateSkyBox(object oPlayer, int nSkyBox); + +/// @brief Update Sun and Moon Fog Color for oPlayer only. +/// @param oPlayer The player. +/// @param nSunFogColor The int value of Sun Fog color. +/// @param nMoonFogColor The int value of Moon Fog color. +void NWNX_Player_UpdateFogColor(object oPlayer, int nSunFogColor, int nMoonFogColor); + + +/// @brief Update Sun and Moon Fog Amount for oPlayer only. +/// @param oPlayer The player. +/// @param nSunFogAmount The int value of Sun Fog amount (range 0-255). +/// @param nMoonFogAmount The int value of Moon Fog amount (range 0-255). +void NWNX_Player_UpdateFogAmount(object oPlayer, int nSunFogAmount, int nMoonFogAmount); + +/// @brief Return's the currently-possessed game object of a player. +/// @param oPlayer The player object (e.g. from GetFirst/NextPC()). +/// @return the actual game object of oPlayer, or OBJECT_INVALID on error. +object NWNX_Player_GetGameObject(object oPlayer); + +/// @brief Override the ui discovery mask of oObject for oPlayer only +/// @param oPlayer The player object. +/// @param oObject The target object. +/// @param nMask A mask of OBJECT_UI_DISCOVERY_*, or -1 to clear the override +void NWNX_Player_SetObjectUiDiscoveryMaskOverride(object oPlayer, object oObject, int nMask); + +/// @brief Send a party invite from oInviter to oPlayer +/// @param oPlayer The player to invite +/// @param oInviter The one inviting the player +/// @param bForceInvite TRUE: Sends the invite even if the target ignores invites +/// @param bHideDialog TRUE: Does not show the party invitation dialog +void NWNX_Player_SendPartyInvite(object oPlayer, object oInviter, int bForceInvite = FALSE, int bHideDialog = FALSE); + +/// @brief Get the TURD for oPlayer +/// @param oPlayer The offline player to get the TURD from +/// @return the TURD object of oPlayer, or OBJECT_INVALID if no TURD exists +object NWNX_Player_GetTURD(object oPlayer); + +/// @brief Reloads the color palettes for oPlayer +/// @param oPlayer The player to reload the color palette for +void NWNX_Player_ReloadColorPalettes(object oPlayer); + +/// @brief Get the current open store of oPlayer. +/// @param oPlayer The player. +/// @return The open store or OBJECT_INVALID if no store is open. +object NWNX_Player_GetOpenStore(object oPlayer); + /// @} void NWNX_Player_ForcePlaceableExamineWindow(object player, object placeable) { - string sFunc = "ForcePlaceableExamineWindow"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, placeable); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ForcePlaceableExamineWindow"); } void NWNX_Player_ForcePlaceableInventoryWindow(object player, object placeable) { - string sFunc = "ForcePlaceableInventoryWindow"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, placeable); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ForcePlaceableInventoryWindow"); } void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", int id = -1) ///< @private @@ -410,17 +480,12 @@ void NWNX_Player_INTERNAL_StopGuiTimingBar(object player, string script = "", in // Either the timing event was never started, or it already finished. if (activeId == 0) return; - // If id != -1, we ended up here through DelayCommand. Make sure it's for the right ID if (id != -1 && id != activeId) return; - DeleteLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE"); - - string sFunc = "StopGuiTimingBar"; - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - NWNX_CallFunction(NWNX_Player, sFunc); - + NWNXPushObject(player); + NWNXCall(NWNX_Player, "StopGuiTimingBar"); if(script != "") { ExecuteScript(script, player); @@ -431,18 +496,13 @@ void NWNX_Player_StartGuiTimingBar(object player, float seconds, string script = { if (GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE")) return; - - string sFunc = "StartGuiTimingBar"; - NWNX_PushArgumentInt(NWNX_Player, sFunc, type); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, seconds); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); - + NWNXPushInt(type); + NWNXPushFloat(seconds); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "StartGuiTimingBar"); int id = GetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID") + 1; SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ACTIVE", id); SetLocalInt(player, "NWNX_PLAYER_GUI_TIMING_ID", id); - DelayCommand(seconds, NWNX_Player_INTERNAL_StopGuiTimingBar(player, script, id)); } @@ -453,511 +513,478 @@ void NWNX_Player_StopGuiTimingBar(object player, string script = "") void NWNX_Player_SetAlwaysWalk(object player, int bWalk=TRUE) { - string sFunc = "SetAlwaysWalk"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, bWalk); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bWalk); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetAlwaysWalk"); } struct NWNX_Player_QuickBarSlot NWNX_Player_GetQuickBarSlot(object player, int slot) { - string sFunc = "GetQuickBarSlot"; struct NWNX_Player_QuickBarSlot qbs; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, slot); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - NWNX_CallFunction(NWNX_Player, sFunc); - - qbs.oAssociate = NWNX_GetReturnValueObject(NWNX_Player, sFunc); - qbs.nAssociateType = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.nDomainLevel = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.nMetaType = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.nINTParam1 = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.sToolTip = NWNX_GetReturnValueString(NWNX_Player, sFunc); - qbs.sCommandLine = NWNX_GetReturnValueString(NWNX_Player, sFunc); - qbs.sCommandLabel = NWNX_GetReturnValueString(NWNX_Player, sFunc); - qbs.sResRef = NWNX_GetReturnValueString(NWNX_Player, sFunc); - qbs.nMultiClass = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.nObjectType = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - qbs.oSecondaryItem = NWNX_GetReturnValueObject(NWNX_Player, sFunc); - qbs.oItem = NWNX_GetReturnValueObject(NWNX_Player, sFunc); - + NWNXPushInt(slot); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetQuickBarSlot"); + qbs.oAssociate = NWNXPopObject(); + qbs.nAssociateType = NWNXPopInt(); + qbs.nDomainLevel = NWNXPopInt(); + qbs.nMetaType = NWNXPopInt(); + qbs.nINTParam1 = NWNXPopInt(); + qbs.sToolTip = NWNXPopString(); + qbs.sCommandLine = NWNXPopString(); + qbs.sCommandLabel = NWNXPopString(); + qbs.sResRef = NWNXPopString(); + qbs.nMultiClass = NWNXPopInt(); + qbs.nObjectType = NWNXPopInt(); + qbs.oSecondaryItem = NWNXPopObject(); + qbs.oItem = NWNXPopObject(); return qbs; } void NWNX_Player_SetQuickBarSlot(object player, int slot, struct NWNX_Player_QuickBarSlot qbs) { - string sFunc = "SetQuickBarSlot"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.oItem); - NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.oSecondaryItem); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nObjectType); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nMultiClass); - NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.sResRef); - NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.sCommandLabel); - NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.sCommandLine); - NWNX_PushArgumentString(NWNX_Player, sFunc, qbs.sToolTip); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nINTParam1); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nMetaType); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nDomainLevel); - NWNX_PushArgumentInt(NWNX_Player, sFunc, qbs.nAssociateType); - NWNX_PushArgumentObject(NWNX_Player, sFunc, qbs.oAssociate); - - NWNX_PushArgumentInt(NWNX_Player, sFunc, slot); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(qbs.oItem); + NWNXPushObject(qbs.oSecondaryItem); + NWNXPushInt(qbs.nObjectType); + NWNXPushInt(qbs.nMultiClass); + NWNXPushString(qbs.sResRef); + NWNXPushString(qbs.sCommandLabel); + NWNXPushString(qbs.sCommandLine); + NWNXPushString(qbs.sToolTip); + NWNXPushInt(qbs.nINTParam1); + NWNXPushInt(qbs.nMetaType); + NWNXPushInt(qbs.nDomainLevel); + NWNXPushInt(qbs.nAssociateType); + NWNXPushObject(qbs.oAssociate); + NWNXPushInt(slot); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetQuickBarSlot"); } string NWNX_Player_GetBicFileName(object player) { - string sFunc = "GetBicFileName"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueString(NWNX_Player, sFunc); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetBicFileName"); + return NWNXPopString(); } -void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position) +void NWNX_Player_ShowVisualEffect(object player, int effectId, vector position, float scale=1.0f, vector translate=[], vector rotate=[]) { - string sFunc = "ShowVisualEffect"; - - NWNX_PushArgumentFloat(NWNX_Player, sFunc, position.x); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, position.y); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, position.z); - NWNX_PushArgumentInt(NWNX_Player, sFunc, effectId); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushVector(rotate); + NWNXPushVector(translate); + NWNXPushFloat(scale); + NWNXPushVector(position); + NWNXPushInt(effectId); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ShowVisualEffect"); } void NWNX_Player_MusicBackgroundChangeDay(object player, int track) { - string sFunc = "ChangeBackgroundMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, track); - NWNX_PushArgumentInt(NWNX_Player, sFunc, TRUE); // bool day = TRUE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBackgroundMusic"); } void NWNX_Player_MusicBackgroundChangeNight(object player, int track) { - string sFunc = "ChangeBackgroundMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, track); - NWNX_PushArgumentInt(NWNX_Player, sFunc, FALSE); // bool day = FALSE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBackgroundMusic"); } void NWNX_Player_MusicBackgroundStart(object player) { - string sFunc = "PlayBackgroundMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, TRUE); // bool play = TRUE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBackgroundMusic"); } void NWNX_Player_MusicBackgroundStop(object player) { - string sFunc = "PlayBackgroundMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, FALSE); // bool play = FALSE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBackgroundMusic"); } void NWNX_Player_MusicBattleChange(object player, int track) { - string sFunc = "ChangeBattleMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, track); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(track); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ChangeBattleMusic"); } void NWNX_Player_MusicBattleStart(object player) { - string sFunc = "PlayBattleMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, TRUE); // bool play = TRUE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(TRUE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBattleMusic"); } void NWNX_Player_MusicBattleStop(object player) { - string sFunc = "PlayBattleMusic"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, FALSE); // bool play = FALSE - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(FALSE); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlayBattleMusic"); } void NWNX_Player_PlaySound(object player, string sound, object target = OBJECT_INVALID) { - string sFunc = "PlaySound"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, target); - NWNX_PushArgumentString(NWNX_Player, sFunc, sound); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(target); + NWNXPushString(sound); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "PlaySound"); } void NWNX_Player_SetPlaceableUsable(object player, object placeable, int usable) { - string sFunc = "SetPlaceableUsable"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, usable); - NWNX_PushArgumentObject(NWNX_Player, sFunc, placeable); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(usable); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetPlaceableUsable"); } void NWNX_Player_SetRestDuration(object player, int duration) { - string sFunc = "SetRestDuration"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, duration); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(duration); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetRestDuration"); } -void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect) +void NWNX_Player_ApplyInstantVisualEffectToObject(object player, object target, int visualeffect, float scale=1.0f, vector translate=[], vector rotate=[]) { - string sFunc = "ApplyInstantVisualEffectToObject"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, visualeffect); - NWNX_PushArgumentObject(NWNX_Player, sFunc, target); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushVector(rotate); + NWNXPushVector(translate); + NWNXPushFloat(scale); + NWNXPushInt(visualeffect); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ApplyInstantVisualEffectToObject"); } void NWNX_Player_UpdateCharacterSheet(object player) { - string sFunc = "UpdateCharacterSheet"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "UpdateCharacterSheet"); } void NWNX_Player_OpenInventory(object player, object target, int open = TRUE) { - string sFunc = "OpenInventory"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, open); - NWNX_PushArgumentObject(NWNX_Player, sFunc, target); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(open); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "OpenInventory"); } string NWNX_Player_GetAreaExplorationState(object player, object area) { - string sFunc = "GetAreaExplorationState"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, area); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueString(NWNX_Player, sFunc); + NWNXPushObject(area); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetAreaExplorationState"); + return NWNXPopString(); } void NWNX_Player_SetAreaExplorationState(object player, object area, string str) { - string sFunc = "SetAreaExplorationState"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, str); - NWNX_PushArgumentObject(NWNX_Player, sFunc, area); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(str); + NWNXPushObject(area); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetAreaExplorationState"); } void NWNX_Player_SetRestAnimation(object oPlayer, int nAnimation) { - string sFunc = "SetRestAnimation"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, nAnimation); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nAnimation); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetRestAnimation"); } void NWNX_Player_SetObjectVisualTransformOverride(object oPlayer, object oObject, int nTransform, float fValue) { - string sFunc = "SetObjectVisualTransformOverride"; - - NWNX_PushArgumentFloat(NWNX_Player, sFunc, fValue); - NWNX_PushArgumentInt(NWNX_Player, sFunc, nTransform); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oObject); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushFloat(fValue); + NWNXPushInt(nTransform); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectVisualTransformOverride"); } void NWNX_Player_ApplyLoopingVisualEffectToObject(object player, object target, int visualeffect) { - string sFunc = "ApplyLoopingVisualEffectToObject"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, visualeffect); - NWNX_PushArgumentObject(NWNX_Player, sFunc, target); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(visualeffect); + NWNXPushObject(target); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "ApplyLoopingVisualEffectToObject"); } void NWNX_Player_SetPlaceableNameOverride(object player, object placeable, string name) { - string sFunc = "SetPlaceableNameOverride"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, name); - NWNX_PushArgumentObject(NWNX_Player, sFunc, placeable); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(name); + NWNXPushObject(placeable); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "SetPlaceableNameOverride"); } int NWNX_Player_GetQuestCompleted(object player, string sQuestName) { - string sFunc = "GetQuestCompleted"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sQuestName); - NWNX_PushArgumentObject(NWNX_Player, sFunc, player); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushString(sQuestName); + NWNXPushObject(player); + NWNXCall(NWNX_Player, "GetQuestCompleted"); + return NWNXPopInt(); } void NWNX_Player_SetPersistentLocation(string sCDKeyOrCommunityName, string sBicFileName, object oWP, int bFirstConnectOnly = TRUE) { - string sFunc = "SetPersistentLocation"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, bFirstConnectOnly); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oWP); - NWNX_PushArgumentString(NWNX_Player, sFunc, sBicFileName); - NWNX_PushArgumentString(NWNX_Player, sFunc, sCDKeyOrCommunityName); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bFirstConnectOnly); + NWNXPushObject(oWP); + NWNXPushString(sBicFileName); + NWNXPushString(sCDKeyOrCommunityName); + NWNXCall(NWNX_Player, "SetPersistentLocation"); } void NWNX_Player_UpdateItemName(object oPlayer, object oItem) { - string sFunc = "UpdateItemName"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, oItem); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oItem); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateItemName"); } int NWNX_Player_PossessCreature(object oPossessor, object oPossessed, int bMindImmune = TRUE, int bCreateDefaultQB = FALSE) { - string sFunc = "PossessCreature"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, bCreateDefaultQB); - NWNX_PushArgumentInt(NWNX_Player, sFunc, bMindImmune); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPossessed); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPossessor); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushInt(bCreateDefaultQB); + NWNXPushInt(bMindImmune); + NWNXPushObject(oPossessed); + NWNXPushObject(oPossessor); + NWNXCall(NWNX_Player, "PossessCreature"); + return NWNXPopInt(); } int NWNX_Player_GetPlatformId(object oPlayer) { - string sFunc = "GetPlatformId"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetPlatformId"); + return NWNXPopInt(); } int NWNX_Player_GetLanguage(object oPlayer) { - string sFunc = "GetLanguage"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetLanguage"); + return NWNXPopInt(); } void NWNX_Player_SetResManOverride(object oPlayer, int nResType, string sOldResName, string sNewResName) { - string sFunc = "SetResManOverride"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sNewResName); - NWNX_PushArgumentString(NWNX_Player, sFunc, sOldResName); - NWNX_PushArgumentInt(NWNX_Player, sFunc, nResType); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sNewResName); + NWNXPushString(sOldResName); + NWNXPushInt(nResType); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetResManOverride"); } void NWNX_Player_SetCustomToken(object oPlayer, int nCustomTokenNumber, string sTokenValue) { - string sFunc = "SetCustomToken"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sTokenValue); - NWNX_PushArgumentInt(NWNX_Player, sFunc, nCustomTokenNumber); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sTokenValue); + NWNXPushInt(nCustomTokenNumber); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetCustomToken"); } void NWNX_Player_SetCreatureNameOverride(object oPlayer, object oCreature, string sName) { - string sFunc = "SetCreatureNameOverride"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sName); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oCreature); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sName); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetCreatureNameOverride"); } -void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText) +void NWNX_Player_FloatingTextStringOnCreature(object oPlayer, object oCreature, string sText, int bChatWindow = TRUE) { - string sFunc = "FloatingTextStringOnCreature"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sText); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oCreature); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bChatWindow); + NWNXPushString(sText); + NWNXPushObject(oCreature); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "FloatingTextStringOnCreature"); } void NWNX_Player_ToggleDM(object oPlayer, int bIsDM) { - string sFunc = "ToggleDM"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, bIsDM); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(bIsDM); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ToggleDM"); } void NWNX_Player_SetObjectMouseCursorOverride(object oPlayer, object oObject, int nCursor) { - string sFunc = "SetObjectMouseCursorOverride"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, nCursor); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oObject); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nCursor); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectMouseCursorOverride"); } void NWNX_Player_SetObjectHiliteColorOverride(object oPlayer, object oObject, int nColor) { - string sFunc = "SetObjectHiliteColorOverride"; - - NWNX_PushArgumentInt(NWNX_Player, sFunc, nColor); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oObject); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushInt(nColor); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectHiliteColorOverride"); } void NWNX_Player_RemoveEffectFromTURD(object oPlayer, string sEffectTag) { - string sFunc = "RemoveEffectFromTURD"; - - NWNX_PushArgumentString(NWNX_Player, sFunc, sEffectTag); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushString(sEffectTag); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "RemoveEffectFromTURD"); } void NWNX_Player_SetSpawnLocation(object oPlayer, location locSpawn) { - string sFunc = "SetSpawnLocation"; - - vector vPosition = GetPositionFromLocation(locSpawn); - - NWNX_PushArgumentFloat(NWNX_Player, sFunc, GetFacingFromLocation(locSpawn)); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, vPosition.z); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, vPosition.y); - NWNX_PushArgumentFloat(NWNX_Player, sFunc, vPosition.x); - NWNX_PushArgumentObject(NWNX_Player, sFunc, GetAreaFromLocation(locSpawn)); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushLocation(locSpawn); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetSpawnLocation"); } void NWNX_Player_SendDMAllCreatorLists(object oPlayer) { - string sFunc = "SendDMAllCreatorLists"; - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SendDMAllCreatorLists"); } int NWNX_Player_AddCustomJournalEntry(object oPlayer, struct NWNX_Player_JournalEntry journalEntry, int nSilentUpdate = 0) { - string sFunc = "AddCustomJournalEntry"; - NWNX_PushArgumentInt(NWNX_Player, sFunc, nSilentUpdate); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nTimeOfDay); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nCalendarDay); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nUpdated); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nQuestDisplayed); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nQuestCompleted); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nPriority); - NWNX_PushArgumentInt(NWNX_Player, sFunc, journalEntry.nState); - NWNX_PushArgumentString(NWNX_Player, sFunc, journalEntry.sTag); - NWNX_PushArgumentString(NWNX_Player, sFunc, journalEntry.sText); - NWNX_PushArgumentString(NWNX_Player, sFunc, journalEntry.sName); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - return NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushInt(nSilentUpdate); + NWNXPushInt(journalEntry.nTimeOfDay); + NWNXPushInt(journalEntry.nCalendarDay); + NWNXPushInt(journalEntry.nUpdated); + NWNXPushInt(journalEntry.nQuestDisplayed); + NWNXPushInt(journalEntry.nQuestCompleted); + NWNXPushInt(journalEntry.nPriority); + NWNXPushInt(journalEntry.nState); + NWNXPushString(journalEntry.sTag); + NWNXPushString(journalEntry.sText); + NWNXPushString(journalEntry.sName); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "AddCustomJournalEntry"); + return NWNXPopInt(); } struct NWNX_Player_JournalEntry NWNX_Player_GetJournalEntry(object oPlayer, string questTag) { - string sFunc = "GetJournalEntry"; struct NWNX_Player_JournalEntry entry; - - NWNX_PushArgumentString(NWNX_Player, sFunc, questTag); - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); - - entry.nUpdated = NWNX_GetReturnValueInt(NWNX_Player, sFunc); + NWNXPushString(questTag); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetJournalEntry"); + entry.nUpdated = NWNXPopInt(); if(entry.nUpdated == -1) // -1 set as an indicator to say that the entry was not found { return entry; } - entry.nQuestDisplayed = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.nQuestCompleted = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.nPriority = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.nState = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.nTimeOfDay = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.nCalendarDay = NWNX_GetReturnValueInt(NWNX_Player, sFunc); - entry.sName = NWNX_GetReturnValueString(NWNX_Player, sFunc); - entry.sText = NWNX_GetReturnValueString(NWNX_Player, sFunc); + entry.nQuestDisplayed = NWNXPopInt(); + entry.nQuestCompleted = NWNXPopInt(); + entry.nPriority = NWNXPopInt(); + entry.nState = NWNXPopInt(); + entry.nTimeOfDay = NWNXPopInt(); + entry.nCalendarDay = NWNXPopInt(); + entry.sName = NWNXPopString(); + entry.sText = NWNXPopString(); entry.sTag = questTag; return entry; } void NWNX_Player_CloseStore(object oPlayer) { - string sFunc = "CloseStore"; - - NWNX_PushArgumentObject(NWNX_Player, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Player, sFunc); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "CloseStore"); +} + +void NWNX_Player_SetTlkOverride(object oPlayer, int nStrRef, string sOverride, int bRestoreGlobal = TRUE) +{ + NWNXPushInt(bRestoreGlobal); + NWNXPushString(sOverride); + NWNXPushInt(nStrRef); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetTlkOverride"); +} + +void NWNX_Player_ReloadTlk(object oPlayer) +{ + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ReloadTlk"); +} + +void NWNX_Player_UpdateWind(object oPlayer, vector vDirection, float fMagnitude, float fYaw, float fPitch) +{ + NWNXPushFloat(fPitch); + NWNXPushFloat(fYaw); + NWNXPushFloat(fMagnitude); + NWNXPushVector(vDirection); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateWind"); +} + +void NWNX_Player_UpdateSkyBox(object oPlayer, int nSkyBox) +{ + NWNXPushInt(nSkyBox); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateSkyBox"); +} + +void NWNX_Player_UpdateFogColor(object oPlayer, int nSunFogColor, int nMoonFogColor) +{ + NWNXPushInt(nMoonFogColor); + NWNXPushInt(nSunFogColor); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateFogColor"); +} + +void NWNX_Player_UpdateFogAmount(object oPlayer, int nSunFogAmount, int nMoonFogAmount) +{ + NWNXPushInt(nMoonFogAmount); + NWNXPushInt(nSunFogAmount); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "UpdateFogAmount"); +} + +object NWNX_Player_GetGameObject(object oPlayer) +{ + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetGameObject"); + return NWNXPopObject(); +} + +void NWNX_Player_SetObjectUiDiscoveryMaskOverride(object oPlayer, object oObject, int nMask) +{ + NWNXPushInt(nMask); + NWNXPushObject(oObject); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SetObjectUiDiscoveryMaskOverride"); +} + +void NWNX_Player_SendPartyInvite(object oPlayer, object oInviter, int bForceInvite = FALSE, int bHideDialog = FALSE) +{ + NWNXPushInt(bHideDialog); + NWNXPushInt(bForceInvite); + NWNXPushObject(oInviter); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "SendPartyInvite"); +} + +object NWNX_Player_GetTURD(object oPlayer) +{ + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetTURD"); + return NWNXPopObject(); +} + +void NWNX_Player_ReloadColorPalettes(object oPlayer) +{ + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "ReloadColorPalettes"); +} + +object NWNX_Player_GetOpenStore(object oPlayer) +{ + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Player, "GetOpenStore"); + return NWNXPopObject(); } diff --git a/_module/nss/nwnx_profiler.nss b/_module/nss/nwnx_profiler.nss index 4c7393e8..3a516a47 100644 --- a/_module/nss/nwnx_profiler.nss +++ b/_module/nss/nwnx_profiler.nss @@ -3,7 +3,6 @@ /// @remark These functions are for advanced users. /// @{ /// @file nwnx_profiler.nss -#include "nwnx" const string NWNX_Profiler = "NWNX_Profiler"; ///< @private @@ -39,22 +38,16 @@ void NWNX_Profiler_PopPerfScope(); void NWNX_Profiler_PushPerfScope(string name, string tag0_tag = "", string tag0_value = "") { - string sFunc = "PushPerfScope"; - - NWNX_PushArgumentString(NWNX_Profiler, sFunc, name); - if (tag0_value != "" && tag0_tag != "") { - NWNX_PushArgumentString(NWNX_Profiler, sFunc, tag0_value); - NWNX_PushArgumentString(NWNX_Profiler, sFunc, tag0_tag); + NWNXPushString(tag0_value); + NWNXPushString(tag0_tag); } - - NWNX_CallFunction(NWNX_Profiler, sFunc); + NWNXPushString(name); + NWNXCall(NWNX_Profiler, "PushPerfScope"); } void NWNX_Profiler_PopPerfScope() { - string sFunc = "PopPerfScope"; - - NWNX_CallFunction(NWNX_Profiler, sFunc); -} \ No newline at end of file + NWNXCall(NWNX_Profiler, "PopPerfScope"); +} diff --git a/_module/nss/nwnx_race.nss b/_module/nss/nwnx_race.nss index 48360c30..3b892283 100644 --- a/_module/nss/nwnx_race.nss +++ b/_module/nss/nwnx_race.nss @@ -2,7 +2,6 @@ /// @brief Define racial and subrace characteristics. /// @{ /// @file nwnx_race.nss -#include "nwnx" const string NWNX_Race = "NWNX_Race"; ///< @private @@ -54,37 +53,50 @@ int NWNX_Race_GetParentRace(int iRace); /// or Favored Enemy: Wild Elf void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat); +/// @brief Removes any nwnx_race 'Effects' on the targeted creature. Suppression lasts until levelup, next login, or Reactivated by function. +/// @param oCreature The creature to suppress +/// @note Not all nwnx_race modifiers are achieved via effect. Those that are not directly consider the creatures current race. +void NWNX_Race_SuppressCreatureRaceEffects(object oCreature); + +/// @brief Reactivates the nwnx_race 'Effects' on the targeted creature after they were Suppressed. +/// @param oCreature The creature to reactive +/// @note Safe to use on non-suppressed creatures - Triggers a refresh of effects but won't stack. +void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature); + /// @} void NWNX_Race_SetRacialModifier(int iRace, int iMod, int iParam1, int iParam2 = 0xDEADBEEF, int iParam3 = 0xDEADBEEF) { - string sFunc = "SetRacialModifier"; - - NWNX_PushArgumentInt(NWNX_Race, sFunc, iParam3); - NWNX_PushArgumentInt(NWNX_Race, sFunc, iParam2); - NWNX_PushArgumentInt(NWNX_Race, sFunc, iParam1); - NWNX_PushArgumentInt(NWNX_Race, sFunc, iMod); - NWNX_PushArgumentInt(NWNX_Race, sFunc, iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); + NWNXPushInt(iParam3); + NWNXPushInt(iParam2); + NWNXPushInt(iParam1); + NWNXPushInt(iMod); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "SetRacialModifier"); } int NWNX_Race_GetParentRace(int iRace) { - string sFunc = "GetParentRace"; - - NWNX_PushArgumentInt(NWNX_Race, sFunc, iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); - return NWNX_GetReturnValueInt(NWNX_Race, sFunc); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "GetParentRace"); + return NWNXPopInt(); } void NWNX_Race_SetFavoredEnemyFeat(int iRace, int iFeat) { - string sFunc = "SetFavoredEnemyFeat"; - - NWNX_PushArgumentInt(NWNX_Race, sFunc, iFeat); - NWNX_PushArgumentInt(NWNX_Race, sFunc, iRace); - - NWNX_CallFunction(NWNX_Race, sFunc); + NWNXPushInt(iFeat); + NWNXPushInt(iRace); + NWNXCall(NWNX_Race, "SetFavoredEnemyFeat"); +} + +void NWNX_Race_SuppressCreatureRaceEffects(object creature) +{ + NWNXPushObject(creature); + NWNXCall(NWNX_Race, "SuppressCreatureRaceEffects"); +} + +void NWNX_Race_ReactivateCreatureRaceEffects(object oCreature) +{ + NWNXPushObject(oCreature); + NWNXCall(NWNX_Race, "ReactivateCreatureRaceEffects"); } diff --git a/_module/nss/nwnx_race_2da.nss b/_module/nss/nwnx_race_2da.nss index 5b6f8021..cacd9d24 100644 --- a/_module/nss/nwnx_race_2da.nss +++ b/_module/nss/nwnx_race_2da.nss @@ -2,7 +2,6 @@ /// @file nwnx_race_2da.nss /// @brief Parse a column in the racialtypes.2da to load the modifiers. #include "nwnx_race" -#include "nwnx_util" /// @ingroup race /// @brief Translate a modifier type from a string to its constant. @@ -45,14 +44,14 @@ int NWNX_Race_GetModifierConstant(string raceMod) void NWNX_Race_LoadRacialModifiers(string sColumnName = "RacialModsTable") { - int iRaceRows = NWNX_Util_Get2DARowCount("racialtypes"); + int iRaceRows = Get2DARowCount("racialtypes"); int iRace; for (iRace = 0; iRace < iRaceRows; iRace++) { string sRaceModTable = Get2DAString("racialtypes", sColumnName, iRace); if(sRaceModTable != "") { - int iRaceModRows = NWNX_Util_Get2DARowCount(sRaceModTable); + int iRaceModRows = Get2DARowCount(sRaceModTable); int iRaceMod; for (iRaceMod = 0; iRaceMod < iRaceModRows; iRaceMod++) { diff --git a/_module/nss/nwnx_redis.nss b/_module/nss/nwnx_redis.nss index 56d00967..9c88eb2e 100644 --- a/_module/nss/nwnx_redis.nss +++ b/_module/nss/nwnx_redis.nss @@ -3,7 +3,6 @@ /// @{ /// @file nwnx_redis.nss /// @name Redis Commands -#include "nwnx" #include "nwnx_redis_lib" @@ -77,7 +76,7 @@ int NWNX_Redis_BITCOUNT( * Perform arbitrary bitfield integer operations on strings * * Time complexity: O(1) for each subcommand specified - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_BITFIELD( string key, @@ -211,7 +210,7 @@ int NWNX_Redis_BZPOPMAX( * Returns the client ID for the current connection * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_CLIENT_ID(); @@ -299,7 +298,7 @@ int NWNX_Redis_CLIENT_SETNAME( * Time complexity: O(log N) where N is the number of client connections * - Valid values for unblock_type: "TIMEOUT", "ERROR" - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_CLIENT_UNBLOCK( string client_id, @@ -521,7 +520,7 @@ int NWNX_Redis_CLUSTER_SETSLOT( * List replica nodes of the specified master node * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_CLUSTER_SLAVES( string node_id @@ -533,7 +532,7 @@ int NWNX_Redis_CLUSTER_SLAVES( * List replica nodes of the specified master node * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_CLUSTER_REPLICAS( string node_id @@ -736,7 +735,7 @@ int NWNX_Redis_ECHO( * Execute a Lua script server side * * Time complexity: Depends on the script that is executed. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_EVAL( string script, @@ -752,7 +751,7 @@ int NWNX_Redis_EVAL( * Execute a Lua script server side * * Time complexity: Depends on the script that is executed. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_EVALSHA( string sha1, @@ -961,7 +960,7 @@ int NWNX_Redis_GEORADIUS( * - Valid values for withhash: "WITHHASH" * - Valid values for order: "ASC", "DESC" - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_GEORADIUSBYMEMBER( string key, @@ -1557,7 +1556,7 @@ int NWNX_Redis_MIGRATE( * MONITOR * * Listen for all requests received by the server in real time - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_MONITOR(); @@ -1615,7 +1614,7 @@ int NWNX_Redis_MULTI(); * Inspect the internals of Redis objects * * Time complexity: O(1) for all the currently implemented subcommands. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_OBJECT( string subcommand, @@ -1720,7 +1719,7 @@ int NWNX_Redis_PING( * Set the value and expiration in milliseconds of a key * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_PSETEX( string key, @@ -2218,7 +2217,7 @@ int NWNX_Redis_REPLICAOF( * SLOWLOG * * Manages the Redis slow queries log - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_SLOWLOG( string subcommand, @@ -2382,7 +2381,7 @@ int NWNX_Redis_SWAPDB( * SYNC * * Internal command used for replication - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_SYNC(); @@ -2889,7 +2888,7 @@ int NWNX_Redis_ZUNIONSTORE( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_SCAN( // Redis type: integer @@ -2909,7 +2908,7 @@ int NWNX_Redis_SCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_SSCAN( string key, @@ -2929,7 +2928,7 @@ int NWNX_Redis_SSCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_HSCAN( string key, @@ -2949,7 +2948,7 @@ int NWNX_Redis_HSCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_ZSCAN( string key, @@ -2971,7 +2970,7 @@ int NWNX_Redis_ZSCAN( * items in the stream. * - Valid values for help: "HELP" - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_XINFO( // Redis type: key @@ -3078,7 +3077,7 @@ int NWNX_Redis_XREVRANGE( /** * XLEN * - * Return the number of entires in a stream + * Return the number of entries in a stream * * Time complexity: O(1) * Annotated return value: integer @@ -3093,7 +3092,7 @@ int NWNX_Redis_XLEN( * Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block. * * Time complexity: For each stream mentioned: O(N) with N being the number of elements being - * returned, it menas that XREAD-ing with a fixed COUNT is O(1). Note that when + * returned, it means that XREAD-ing with a fixed COUNT is O(1). Note that when * the BLOCK option is used, XADD will pay O(M) time in order to serve the M * clients blocked on the stream getting new data. @@ -3119,7 +3118,7 @@ int NWNX_Redis_XREAD( * Time complexity: O(1) for all the subcommands, with the exception of the DESTROY subcommand * which takes an additional O(M) time in order to delete the M entries inside * the consumer group pending entries list (PEL). - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_XGROUP( // Redis type: key @@ -3153,7 +3152,7 @@ int NWNX_Redis_XGROUP( * - Valid values for noack: "NOACK" * - Valid values for streams: "STREAMS" - * Annotated return value: + * Annotated return value: */ int NWNX_Redis_XREADGROUP( string group_group, @@ -3235,32 +3234,32 @@ int NWNX_Redis_APPEND( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "APPEND"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("APPEND"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_AUTH( string password ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "AUTH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", password); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("AUTH"); + NWNXPushString(password); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BGREWRITEAOF() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BGREWRITEAOF"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BGREWRITEAOF"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BGSAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BGSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BGSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITCOUNT( @@ -3270,12 +3269,12 @@ int NWNX_Redis_BITCOUNT( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (start != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - if (end != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITCOUNT"); + NWNXPushString(key); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITFIELD( @@ -3297,18 +3296,18 @@ int NWNX_Redis_BITFIELD( // Redis type: integer int incrby_increment = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITFIELD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (get_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", get_type); - if (get_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(get_offset)); - if (set_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", set_type); - if (set_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(set_offset)); - if (set_value != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(set_value)); - if (incrby_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", incrby_type); - if (incrby_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(incrby_offset)); - if (incrby_increment != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(incrby_increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITFIELD"); + NWNXPushString(key); + if (get_type != "") NWNXPushString(get_type); + if (get_offset != 0) NWNXPushString(IntToString(get_offset)); + if (set_type != "") NWNXPushString(set_type); + if (set_offset != 0) NWNXPushString(IntToString(set_offset)); + if (set_value != 0) NWNXPushString(IntToString(set_value)); + if (incrby_type != "") NWNXPushString(incrby_type); + if (incrby_offset != 0) NWNXPushString(IntToString(incrby_offset)); + if (incrby_increment != 0) NWNXPushString(IntToString(incrby_increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITOP( @@ -3317,12 +3316,12 @@ int NWNX_Redis_BITOP( string destkey, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", operation); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destkey); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITOP"); + NWNXPushString(operation); + NWNXPushString(destkey); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BITPOS( @@ -3334,13 +3333,13 @@ int NWNX_Redis_BITPOS( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITPOS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(bit)); - if (start != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - if (end != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITPOS"); + NWNXPushString(key); + NWNXPushString(IntToString(bit)); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BLPOP( @@ -3348,11 +3347,11 @@ int NWNX_Redis_BLPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BLPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BLPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BRPOP( @@ -3360,11 +3359,11 @@ int NWNX_Redis_BRPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BRPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BRPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BRPOPLPUSH( @@ -3375,12 +3374,12 @@ int NWNX_Redis_BRPOPLPUSH( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BRPOPLPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BRPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BZPOPMIN( @@ -3388,11 +3387,11 @@ int NWNX_Redis_BZPOPMIN( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BZPOPMIN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BZPOPMIN"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_BZPOPMAX( @@ -3400,17 +3399,17 @@ int NWNX_Redis_BZPOPMAX( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BZPOPMAX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BZPOPMAX"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_ID() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_ID"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_ID"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_KILL( @@ -3420,54 +3419,54 @@ int NWNX_Redis_CLIENT_KILL( string addr_ip_port = "", string skipme_yes_no = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_KILL"); - if (ip_port != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", ip_port); - if (id_client_id != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(id_client_id)); - if (addr_ip_port != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", addr_ip_port); - if (skipme_yes_no != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", skipme_yes_no); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_KILL"); + if (ip_port != "") NWNXPushString(ip_port); + if (id_client_id != 0) NWNXPushString(IntToString(id_client_id)); + if (addr_ip_port != "") NWNXPushString(addr_ip_port); + if (skipme_yes_no != "") NWNXPushString(skipme_yes_no); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_LIST() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_LIST"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_LIST"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_GETNAME() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_GETNAME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_GETNAME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_PAUSE( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_PAUSE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_PAUSE"); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_REPLY( // Redis type: enum string reply_mode ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_REPLY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", reply_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_REPLY"); + NWNXPushString(reply_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_SETNAME( string connection_name ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_SETNAME"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", connection_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_SETNAME"); + NWNXPushString(connection_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLIENT_UNBLOCK( @@ -3475,69 +3474,69 @@ int NWNX_Redis_CLIENT_UNBLOCK( // Redis type: enum string unblock_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_UNBLOCK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", client_id); - if (unblock_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", unblock_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_UNBLOCK"); + NWNXPushString(client_id); + if (unblock_type != "") NWNXPushString(unblock_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_ADDSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_ADDSLOTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_ADDSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_COUNT_FAILURE_REPORTS( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_COUNT_FAILURE_REPORTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_COUNT_FAILURE_REPORTS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_COUNTKEYSINSLOT( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_COUNTKEYSINSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_COUNTKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_DELSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_DELSLOTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_DELSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_FAILOVER( // Redis type: enum string options = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_FAILOVER"); - if (options != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", options); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_FAILOVER"); + if (options != "") NWNXPushString(options); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_FORGET( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_FORGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_FORGET"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_GETKEYSINSLOT( @@ -3546,26 +3545,26 @@ int NWNX_Redis_CLUSTER_GETKEYSINSLOT( // Redis type: integer int count ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_GETKEYSINSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_GETKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_INFO() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_INFO"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_INFO"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_KEYSLOT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_KEYSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_KEYSLOT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_MEET( @@ -3573,52 +3572,52 @@ int NWNX_Redis_CLUSTER_MEET( // Redis type: integer int port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_MEET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ip); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(port)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_MEET"); + NWNXPushString(ip); + NWNXPushString(IntToString(port)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_NODES() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_NODES"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_NODES"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_REPLICATE( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_REPLICATE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_REPLICATE"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_RESET( // Redis type: enum string reset_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_RESET"); - if (reset_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", reset_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_RESET"); + if (reset_type != "") NWNXPushString(reset_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SAVECONFIG() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SAVECONFIG"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SAVECONFIG"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SET_CONFIG_EPOCH( // Redis type: integer int config_epoch ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SET_CONFIG_EPOCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(config_epoch)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SET_CONFIG_EPOCH"); + NWNXPushString(IntToString(config_epoch)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SETSLOT( @@ -3628,125 +3627,125 @@ int NWNX_Redis_CLUSTER_SETSLOT( string subcommand, string node_id = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SETSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (node_id != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SETSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(subcommand); + if (node_id != "") NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SLAVES( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SLAVES"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SLAVES"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_REPLICAS( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_REPLICAS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_REPLICAS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CLUSTER_SLOTS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SLOTS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SLOTS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_COUNT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_COUNT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_COUNT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_GETKEYS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_GETKEYS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_GETKEYS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_COMMAND_INFO( string command_name ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_INFO"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", command_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_INFO"); + NWNXPushString(command_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_GET( string parameter ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_GET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", parameter); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_GET"); + NWNXPushString(parameter); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_REWRITE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_REWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_REWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_SET( string parameter, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_SET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", parameter); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_SET"); + NWNXPushString(parameter); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_CONFIG_RESETSTAT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_RESETSTAT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_RESETSTAT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DBSIZE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DBSIZE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DBSIZE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEBUG_OBJECT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEBUG_OBJECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEBUG_OBJECT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEBUG_SEGFAULT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEBUG_SEGFAULT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEBUG_SEGFAULT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DECR( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DECR"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DECR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DECRBY( @@ -3754,44 +3753,44 @@ int NWNX_Redis_DECRBY( // Redis type: integer int decrement ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DECRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(decrement)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DECRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(decrement)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DEL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DISCARD() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DISCARD"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DISCARD"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_DUMP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DUMP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DUMP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ECHO( string message ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ECHO"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ECHO"); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EVAL( @@ -3801,13 +3800,13 @@ int NWNX_Redis_EVAL( string key, string arg ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EVAL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", script); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EVAL"); + NWNXPushString(script); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EVALSHA( @@ -3817,28 +3816,28 @@ int NWNX_Redis_EVALSHA( string key, string arg ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EVALSHA"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sha1); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EVALSHA"); + NWNXPushString(sha1); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXEC() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXEC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXEC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXISTS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXISTS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXPIRE( @@ -3846,11 +3845,11 @@ int NWNX_Redis_EXPIRE( // Redis type: integer int seconds ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXPIRE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(seconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_EXPIREAT( @@ -3858,31 +3857,31 @@ int NWNX_Redis_EXPIREAT( // Redis type: posix time string timestamp ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXPIREAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXPIREAT"); + NWNXPushString(key); + NWNXPushString(timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_FLUSHALL( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "FLUSHALL"); - if (async != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("FLUSHALL"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_FLUSHDB( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "FLUSHDB"); - if (async != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("FLUSHDB"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOADD( @@ -3893,35 +3892,35 @@ int NWNX_Redis_GEOADD( float latitude, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(longitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(latitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOADD"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOHASH( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOHASH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOHASH"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEOPOS( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOPOS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOPOS"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEODIST( @@ -3930,13 +3929,13 @@ int NWNX_Redis_GEODIST( string member2, string unit = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEODIST"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member1); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member2); - if (unit != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEODIST"); + NWNXPushString(key); + NWNXPushString(member1); + NWNXPushString(member2); + if (unit != "") NWNXPushString(unit); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEORADIUS( @@ -3964,21 +3963,21 @@ int NWNX_Redis_GEORADIUS( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEORADIUS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(longitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(latitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(radius, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - if (withcoord != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withcoord); - if (withdist != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withdist); - if (withhash != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withhash); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (store_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_key); - if (storedist_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEORADIUS"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GEORADIUSBYMEMBER( @@ -4003,29 +4002,29 @@ int NWNX_Redis_GEORADIUSBYMEMBER( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEORADIUSBYMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(radius, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - if (withcoord != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withcoord); - if (withdist != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withdist); - if (withhash != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withhash); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (store_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_key); - if (storedist_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEORADIUSBYMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GET( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETBIT( @@ -4033,11 +4032,11 @@ int NWNX_Redis_GETBIT( // Redis type: integer int offset ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETBIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETRANGE( @@ -4047,65 +4046,65 @@ int NWNX_Redis_GETRANGE( // Redis type: integer int end ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_GETSET( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HDEL( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HDEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HDEL"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HEXISTS( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HEXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HEXISTS"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HGET( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HGETALL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HGETALL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HGETALL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HINCRBY( @@ -4114,12 +4113,12 @@ int NWNX_Redis_HINCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HINCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HINCRBY"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HINCRBYFLOAT( @@ -4128,41 +4127,41 @@ int NWNX_Redis_HINCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HINCRBYFLOAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HINCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HKEYS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HKEYS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HKEYS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HMGET( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HMGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HMGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HMSET( @@ -4170,12 +4169,12 @@ int NWNX_Redis_HMSET( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HMSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HMSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSET( @@ -4183,12 +4182,12 @@ int NWNX_Redis_HSET( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSETNX( @@ -4196,41 +4195,41 @@ int NWNX_Redis_HSETNX( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSETNX"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSTRLEN( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSTRLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSTRLEN"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HVALS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HVALS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HVALS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCR( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCR"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCRBY( @@ -4238,11 +4237,11 @@ int NWNX_Redis_INCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INCRBYFLOAT( @@ -4250,35 +4249,35 @@ int NWNX_Redis_INCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCRBYFLOAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_INFO( string section = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INFO"); - if (section != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", section); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INFO"); + if (section != "") NWNXPushString(section); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_KEYS( string pattern ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "KEYS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", pattern); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("KEYS"); + NWNXPushString(pattern); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LASTSAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LASTSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LASTSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LINDEX( @@ -4286,11 +4285,11 @@ int NWNX_Redis_LINDEX( // Redis type: integer int index ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LINDEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LINDEX"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LINSERT( @@ -4300,53 +4299,53 @@ int NWNX_Redis_LINSERT( string pivot, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LINSERT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", where); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", pivot); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LINSERT"); + NWNXPushString(key); + NWNXPushString(where); + NWNXPushString(pivot); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPOP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPUSH( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LPUSHX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPUSHX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LRANGE( @@ -4356,12 +4355,12 @@ int NWNX_Redis_LRANGE( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LREM( @@ -4370,12 +4369,12 @@ int NWNX_Redis_LREM( int count, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LREM"); + NWNXPushString(key); + NWNXPushString(IntToString(count)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LSET( @@ -4384,12 +4383,12 @@ int NWNX_Redis_LSET( int index, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LSET"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_LTRIM( @@ -4399,42 +4398,42 @@ int NWNX_Redis_LTRIM( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LTRIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LTRIM"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_DOCTOR() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_DOCTOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_DOCTOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_HELP() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_HELP"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_HELP"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_MALLOC_STATS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_MALLOC_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_MALLOC_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_PURGE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_PURGE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_PURGE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_STATS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MEMORY_USAGE( @@ -4442,20 +4441,20 @@ int NWNX_Redis_MEMORY_USAGE( // Redis type: integer int samples_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_USAGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (samples_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(samples_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_USAGE"); + NWNXPushString(key); + if (samples_count != 0) NWNXPushString(IntToString(samples_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MGET( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MGET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MIGRATE( @@ -4475,24 +4474,24 @@ int NWNX_Redis_MIGRATE( // Redis type: key string keys_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MIGRATE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(destination_db)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - if (copy != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", copy); - if (replace != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", replace); - if (auth_password != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", auth_password); - if (keys_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", keys_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MIGRATE"); + NWNXPushString(host); + NWNXPushString(port); + NWNXPushString(key); + NWNXPushString(IntToString(destination_db)); + NWNXPushString(IntToString(timeout)); + if (copy != "") NWNXPushString(copy); + if (replace != "") NWNXPushString(replace); + if (auth_password != "") NWNXPushString(auth_password); + if (keys_key != "") NWNXPushString(keys_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MONITOR() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MONITOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MONITOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MOVE( @@ -4500,59 +4499,59 @@ int NWNX_Redis_MOVE( // Redis type: integer int db ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MOVE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(db)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MOVE"); + NWNXPushString(key); + NWNXPushString(IntToString(db)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MSET( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MSETNX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MSETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MSETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_MULTI() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MULTI"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MULTI"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_OBJECT( string subcommand, string arguments = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "OBJECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (arguments != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", arguments); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("OBJECT"); + NWNXPushString(subcommand); + if (arguments != "") NWNXPushString(arguments); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PERSIST( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PERSIST"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PERSIST"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PEXPIRE( @@ -4560,11 +4559,11 @@ int NWNX_Redis_PEXPIRE( // Redis type: integer int milliseconds ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PEXPIRE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(milliseconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PEXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PEXPIREAT( @@ -4572,31 +4571,31 @@ int NWNX_Redis_PEXPIREAT( // Redis type: posix time string milliseconds_timestamp ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PEXPIREAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", milliseconds_timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PEXPIREAT"); + NWNXPushString(key); + NWNXPushString(milliseconds_timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFADD( string key, string element ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", element); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFADD"); + NWNXPushString(key); + NWNXPushString(element); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFCOUNT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFCOUNT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PFMERGE( @@ -4605,20 +4604,20 @@ int NWNX_Redis_PFMERGE( // Redis type: key string sourcekey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFMERGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destkey); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sourcekey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFMERGE"); + NWNXPushString(destkey); + NWNXPushString(sourcekey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PING( string message = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PING"); - if (message != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PING"); + if (message != "") NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PSETEX( @@ -4627,67 +4626,67 @@ int NWNX_Redis_PSETEX( int milliseconds, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PSETEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(milliseconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PSETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PUBSUB( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PUBSUB"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (argument != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PUBSUB"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PTTL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PTTL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PTTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_PUBLISH( string channel, string message ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PUBLISH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", channel); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PUBLISH"); + NWNXPushString(channel); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_QUIT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "QUIT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("QUIT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RANDOMKEY() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RANDOMKEY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RANDOMKEY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_READONLY() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "READONLY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("READONLY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_READWRITE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "READWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("READWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RENAME( @@ -4695,11 +4694,11 @@ int NWNX_Redis_RENAME( // Redis type: key string newkey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RENAME"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RENAME"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RENAMENX( @@ -4707,11 +4706,11 @@ int NWNX_Redis_RENAMENX( // Redis type: key string newkey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RENAMENX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RENAMENX"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RESTORE( @@ -4728,31 +4727,31 @@ int NWNX_Redis_RESTORE( // Redis type: integer int freq_frequency = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RESTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(ttl)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", serialized_value); - if (replace != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", replace); - if (absttl != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", absttl); - if (idletime_seconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(idletime_seconds)); - if (freq_frequency != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(freq_frequency)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RESTORE"); + NWNXPushString(key); + NWNXPushString(IntToString(ttl)); + NWNXPushString(serialized_value); + if (replace != "") NWNXPushString(replace); + if (absttl != "") NWNXPushString(absttl); + if (idletime_seconds != 0) NWNXPushString(IntToString(idletime_seconds)); + if (freq_frequency != 0) NWNXPushString(IntToString(freq_frequency)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ROLE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ROLE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ROLE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPOP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPOPLPUSH( @@ -4761,108 +4760,108 @@ int NWNX_Redis_RPOPLPUSH( // Redis type: key string destination ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPOPLPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPUSH( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_RPUSHX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPUSHX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SADD( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SADD"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCARD( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCARD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_DEBUG( // Redis type: enum string mode ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_DEBUG"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_DEBUG"); + NWNXPushString(mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_EXISTS( string sha1 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_EXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sha1); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_EXISTS"); + NWNXPushString(sha1); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_FLUSH() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_FLUSH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_FLUSH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_KILL() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_KILL"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_KILL"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCRIPT_LOAD( string script ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_LOAD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", script); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_LOAD"); + NWNXPushString(script); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SDIFF( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SDIFF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SDIFF"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SDIFFSTORE( @@ -4870,21 +4869,21 @@ int NWNX_Redis_SDIFFSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SDIFFSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SDIFFSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SELECT( // Redis type: integer int index ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SELECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SELECT"); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SET( @@ -4893,12 +4892,12 @@ int NWNX_Redis_SET( // Redis type: enum string condition = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - if (condition != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", condition); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SET"); + NWNXPushString(key); + NWNXPushString(value); + if (condition != "") NWNXPushString(condition); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETBIT( @@ -4907,12 +4906,12 @@ int NWNX_Redis_SETBIT( int offset, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETBIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETEX( @@ -4921,23 +4920,23 @@ int NWNX_Redis_SETEX( int seconds, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(seconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETNX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SETRANGE( @@ -4946,31 +4945,31 @@ int NWNX_Redis_SETRANGE( int offset, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SHUTDOWN( // Redis type: enum string save_mode = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SHUTDOWN"); - if (save_mode != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", save_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SHUTDOWN"); + if (save_mode != "") NWNXPushString(save_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SINTER( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SINTER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SINTER"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SINTERSTORE( @@ -4978,64 +4977,64 @@ int NWNX_Redis_SINTERSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SINTERSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SISMEMBER( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SISMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SISMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SLAVEOF( string host, string port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SLAVEOF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SLAVEOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_REPLICAOF( string host, string port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "REPLICAOF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("REPLICAOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SLOWLOG( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SLOWLOG"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (argument != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SLOWLOG"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SMEMBERS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SMEMBERS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SMEMBERS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SMOVE( @@ -5045,12 +5044,12 @@ int NWNX_Redis_SMOVE( string destination, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SMOVE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SMOVE"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SORT( @@ -5069,17 +5068,17 @@ int NWNX_Redis_SORT( // Redis type: key string store_destination = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SORT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (by_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", by_pattern); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - if (get_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", get_pattern); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (sorting != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", sorting); - if (store_destination != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SORT"); + NWNXPushString(key); + if (by_pattern != "") NWNXPushString(by_pattern); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + if (get_pattern != "") NWNXPushString(get_pattern); + if (order != "") NWNXPushString(order); + if (sorting != "") NWNXPushString(sorting); + if (store_destination != "") NWNXPushString(store_destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SPOP( @@ -5087,11 +5086,11 @@ int NWNX_Redis_SPOP( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SPOP"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SRANDMEMBER( @@ -5099,40 +5098,40 @@ int NWNX_Redis_SRANDMEMBER( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SRANDMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SRANDMEMBER"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SREM( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_STRLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "STRLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("STRLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SUNION( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SUNION"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SUNION"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SUNIONSTORE( @@ -5140,11 +5139,11 @@ int NWNX_Redis_SUNIONSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SUNIONSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SWAPDB( @@ -5153,65 +5152,65 @@ int NWNX_Redis_SWAPDB( // Redis type: integer int index_1 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SWAPDB"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index_1)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SWAPDB"); + NWNXPushString(IntToString(index)); + NWNXPushString(IntToString(index_1)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SYNC() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SYNC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SYNC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TIME() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TIME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TIME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TOUCH( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TOUCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TOUCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TTL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TTL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_TYPE( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TYPE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TYPE"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_UNLINK( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "UNLINK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("UNLINK"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_UNWATCH() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "UNWATCH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("UNWATCH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_WAIT( @@ -5220,20 +5219,20 @@ int NWNX_Redis_WAIT( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "WAIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numreplicas)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("WAIT"); + NWNXPushString(IntToString(numreplicas)); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_WATCH( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "WATCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("WATCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZADD( @@ -5248,24 +5247,24 @@ int NWNX_Redis_ZADD( float score = 0.0, string member = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (condition != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", condition); - if (change != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", change); - if (increment != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", increment); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(score, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZADD"); + NWNXPushString(key); + if (condition != "") NWNXPushString(condition); + if (change != "") NWNXPushString(change); + if (increment != "") NWNXPushString(increment); + NWNXPushString(FloatToString(score, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZCARD( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZCARD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZCOUNT( @@ -5275,12 +5274,12 @@ int NWNX_Redis_ZCOUNT( // Redis type: double float max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZCOUNT"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZINCRBY( @@ -5289,12 +5288,12 @@ int NWNX_Redis_ZINCRBY( int increment, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZINCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZINCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZINTERSTORE( @@ -5308,14 +5307,14 @@ int NWNX_Redis_ZINTERSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZINTERSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (weights_weight != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZLEXCOUNT( @@ -5323,12 +5322,12 @@ int NWNX_Redis_ZLEXCOUNT( string min, string max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZLEXCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZLEXCOUNT"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZPOPMAX( @@ -5336,11 +5335,11 @@ int NWNX_Redis_ZPOPMAX( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZPOPMAX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZPOPMAX"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZPOPMIN( @@ -5348,11 +5347,11 @@ int NWNX_Redis_ZPOPMIN( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZPOPMIN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZPOPMIN"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGE( @@ -5364,13 +5363,13 @@ int NWNX_Redis_ZRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGEBYLEX( @@ -5382,14 +5381,14 @@ int NWNX_Redis_ZRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGEBYLEX( @@ -5401,14 +5400,14 @@ int NWNX_Redis_ZREVRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(max); + NWNXPushString(min); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANGEBYSCORE( @@ -5424,37 +5423,37 @@ int NWNX_Redis_ZRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZRANK( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREM( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYLEX( @@ -5462,12 +5461,12 @@ int NWNX_Redis_ZREMRANGEBYLEX( string min, string max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYRANK( @@ -5477,12 +5476,12 @@ int NWNX_Redis_ZREMRANGEBYRANK( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYRANK"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREMRANGEBYSCORE( @@ -5492,12 +5491,12 @@ int NWNX_Redis_ZREMRANGEBYSCORE( // Redis type: double float max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGE( @@ -5509,13 +5508,13 @@ int NWNX_Redis_ZREVRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANGEBYSCORE( @@ -5531,37 +5530,37 @@ int NWNX_Redis_ZREVRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(max, 0)); + NWNXPushString(FloatToString(min, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZREVRANK( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZSCORE( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZSCORE"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZUNIONSTORE( @@ -5575,14 +5574,14 @@ int NWNX_Redis_ZUNIONSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZUNIONSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (weights_weight != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SCAN( @@ -5594,13 +5593,13 @@ int NWNX_Redis_SCAN( int count_count = 0, string type_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (type_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", type_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCAN"); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (type_type != "") NWNXPushString(type_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_SSCAN( @@ -5612,13 +5611,13 @@ int NWNX_Redis_SSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_HSCAN( @@ -5630,13 +5629,13 @@ int NWNX_Redis_HSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_ZSCAN( @@ -5648,13 +5647,13 @@ int NWNX_Redis_ZSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XINFO( @@ -5668,14 +5667,14 @@ int NWNX_Redis_XINFO( // Redis type: enum string help = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XINFO"); - if (consumers_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumers_key); - if (consumers_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumers_groupname); - if (groups_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", groups_key); - if (stream_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", stream_key); - if (help != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", help); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XINFO"); + if (consumers_key != "") NWNXPushString(consumers_key); + if (consumers_groupname != "") NWNXPushString(consumers_groupname); + if (groups_key != "") NWNXPushString(groups_key); + if (stream_key != "") NWNXPushString(stream_key); + if (help != "") NWNXPushString(help); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XADD( @@ -5685,13 +5684,13 @@ int NWNX_Redis_XADD( string field, string str ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", str); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XADD"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXPushString(field); + NWNXPushString(str); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XTRIM( @@ -5703,24 +5702,24 @@ int NWNX_Redis_XTRIM( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XTRIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", strategy); - if (approx != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", approx); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XTRIM"); + NWNXPushString(key); + NWNXPushString(strategy); + if (approx != "") NWNXPushString(approx); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XDEL( string key, string ID ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XDEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XDEL"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XRANGE( @@ -5730,13 +5729,13 @@ int NWNX_Redis_XRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XRANGE"); + NWNXPushString(key); + NWNXPushString(start); + NWNXPushString(end); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREVRANGE( @@ -5746,22 +5745,22 @@ int NWNX_Redis_XREVRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREVRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREVRANGE"); + NWNXPushString(key); + NWNXPushString(end); + NWNXPushString(start); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREAD( @@ -5774,14 +5773,14 @@ int NWNX_Redis_XREAD( string key = "", string ID = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREAD"); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(block_milliseconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", streams); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREAD"); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XGROUP( @@ -5801,20 +5800,20 @@ int NWNX_Redis_XGROUP( string delconsumer_groupname = "", string delconsumer_consumername = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XGROUP"); - if (create_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_key); - if (create_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_groupname); - if (create_id_or__ != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_id_or__); - if (setid_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_key); - if (setid_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_groupname); - if (setid_id_or__ != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_id_or__); - if (destroy_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", destroy_key); - if (destroy_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", destroy_groupname); - if (delconsumer_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_key); - if (delconsumer_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_groupname); - if (delconsumer_consumername != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_consumername); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XGROUP"); + if (create_key != "") NWNXPushString(create_key); + if (create_groupname != "") NWNXPushString(create_groupname); + if (create_id_or__ != "") NWNXPushString(create_id_or__); + if (setid_key != "") NWNXPushString(setid_key); + if (setid_groupname != "") NWNXPushString(setid_groupname); + if (setid_id_or__ != "") NWNXPushString(setid_id_or__); + if (destroy_key != "") NWNXPushString(destroy_key); + if (destroy_groupname != "") NWNXPushString(destroy_groupname); + if (delconsumer_key != "") NWNXPushString(delconsumer_key); + if (delconsumer_groupname != "") NWNXPushString(delconsumer_groupname); + if (delconsumer_consumername != "") NWNXPushString(delconsumer_consumername); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XREADGROUP( @@ -5831,17 +5830,17 @@ int NWNX_Redis_XREADGROUP( string key = "", string ID = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREADGROUP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group_group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group_consumer); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(block_milliseconds)); - if (noack != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", noack); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", streams); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREADGROUP"); + NWNXPushString(group_group); + NWNXPushString(group_consumer); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + if (noack != "") NWNXPushString(noack); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XACK( @@ -5849,12 +5848,12 @@ int NWNX_Redis_XACK( string group, string ID ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XACK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XACK"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XCLAIM( @@ -5870,17 +5869,17 @@ int NWNX_Redis_XCLAIM( // Redis type: integer int retrycount_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XCLAIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumer); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min_idle_time); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - if (idle_ms != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(idle_ms)); - if (time_ms_unix_time != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(time_ms_unix_time)); - if (retrycount_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(retrycount_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XCLAIM"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(consumer); + NWNXPushString(min_idle_time); + NWNXPushString(ID); + if (idle_ms != 0) NWNXPushString(IntToString(idle_ms)); + if (time_ms_unix_time != 0) NWNXPushString(IntToString(time_ms_unix_time)); + if (retrycount_count != 0) NWNXPushString(IntToString(retrycount_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int NWNX_Redis_XPENDING( @@ -5892,15 +5891,15 @@ int NWNX_Redis_XPENDING( int count = 0, string consumer = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XPENDING"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - if (start != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - if (end != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - if (consumer != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumer); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XPENDING"); + NWNXPushString(key); + NWNXPushString(group); + if (start != "") NWNXPushString(start); + if (end != "") NWNXPushString(end); + if (count != 0) NWNXPushString(IntToString(count)); + if (consumer != "") NWNXPushString(consumer); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } /// @} diff --git a/_module/nss/nwnx_redis_lib.nss b/_module/nss/nwnx_redis_lib.nss index 759c61e1..ce931a2b 100644 --- a/_module/nss/nwnx_redis_lib.nss +++ b/_module/nss/nwnx_redis_lib.nss @@ -3,7 +3,6 @@ /// @{ /// @file nwnx_redis_lib.nss /// @brief Allows connection and interfacing with a redis server. -#include "nwnx" /// @anchor redis_results /// @name Redis Results @@ -65,44 +64,44 @@ string NWNX_Redis_GetResultAsString(int resultId); int NWNX_Redis_GetResultType(int resultId) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultType", resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultType"); - return NWNX_GetReturnValueInt("NWNX_Redis", "GetResultType"); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultType"); + return NWNXPopInt(); } int NWNX_Redis_GetArrayLength(int resultId) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultArrayLength", resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultArrayLength"); - return NWNX_GetReturnValueInt("NWNX_Redis", "GetResultArrayLength"); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultArrayLength"); + return NWNXPopInt(); } // Returns the last int NWNX_Redis_GetArrayElement(int resultId, int idx) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultArrayElement", resultId); - NWNX_PushArgumentInt("NWNX_Redis", "GetResultArrayElement", idx); - NWNX_CallFunction("NWNX_Redis", "GetResultArrayElement"); - return NWNX_GetReturnValueInt("NWNX_Redis", "GetResultArrayElement"); + NWNXPushInt(resultId); + NWNXPushInt(idx); + NWNXCall("NWNX_Redis", "GetResultArrayElement"); + return NWNXPopInt(); } float NWNX_Redis_GetResultAsFloat(int resultId) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultAsString", resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return StringToFloat(NWNX_GetReturnValueString("NWNX_Redis", "GetResultAsString")); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return StringToFloat(NWNXPopString()); } int NWNX_Redis_GetResultAsInt(int resultId) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultAsString", resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return StringToInt(NWNX_GetReturnValueString("NWNX_Redis", "GetResultAsString")); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return StringToInt(NWNXPopString()); } string NWNX_Redis_GetResultAsString(int resultId) { - NWNX_PushArgumentInt("NWNX_Redis", "GetResultAsString", resultId); - NWNX_CallFunction("NWNX_Redis", "GetResultAsString"); - return NWNX_GetReturnValueString("NWNX_Redis", "GetResultAsString"); + NWNXPushInt(resultId); + NWNXCall("NWNX_Redis", "GetResultAsString"); + return NWNXPopString(); } diff --git a/_module/nss/nwnx_redis_ps.nss b/_module/nss/nwnx_redis_ps.nss index 1d59dd15..ca03f317 100644 --- a/_module/nss/nwnx_redis_ps.nss +++ b/_module/nss/nwnx_redis_ps.nss @@ -2,7 +2,6 @@ /// @brief Interface to Redis PUBSUB /// @{ /// @file nwnx_redis_ps.nss -#include "nwnx" /// A redis PUBSUB message struct NWNX_Redis_PubSubMessageData { @@ -15,9 +14,9 @@ struct NWNX_Redis_PubSubMessageData { struct NWNX_Redis_PubSubMessageData NWNX_Redis_GetPubSubMessageData() { struct NWNX_Redis_PubSubMessageData ret; - NWNX_CallFunction("NWNX_Redis", "GetPubSubData"); - ret.message = NWNX_GetReturnValueString("NWNX_Redis", "GetPubSubData"); - ret.channel = NWNX_GetReturnValueString("NWNX_Redis", "GetPubSubData"); + NWNXCall("NWNX_Redis", "GetPubSubData"); + ret.message = NWNXPopString(); + ret.channel = NWNXPopString(); return ret; } /// @} diff --git a/_module/nss/nwnx_redis_short.nss b/_module/nss/nwnx_redis_short.nss index c8adc656..9dd8a6ef 100644 --- a/_module/nss/nwnx_redis_short.nss +++ b/_module/nss/nwnx_redis_short.nss @@ -1,4 +1,3 @@ -#include "nwnx" #include "nwnx_redis_lib" @@ -72,7 +71,7 @@ int BITCOUNT( * Perform arbitrary bitfield integer operations on strings * * Time complexity: O(1) for each subcommand specified - * Annotated return value: + * Annotated return value: */ int BITFIELD( string key, @@ -206,7 +205,7 @@ int BZPOPMAX( * Returns the client ID for the current connection * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int CLIENT_ID(); @@ -294,7 +293,7 @@ int CLIENT_SETNAME( * Time complexity: O(log N) where N is the number of client connections * - Valid values for unblock_type: "TIMEOUT", "ERROR" - * Annotated return value: + * Annotated return value: */ int CLIENT_UNBLOCK( string client_id, @@ -516,7 +515,7 @@ int CLUSTER_SETSLOT( * List replica nodes of the specified master node * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int CLUSTER_SLAVES( string node_id @@ -528,7 +527,7 @@ int CLUSTER_SLAVES( * List replica nodes of the specified master node * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int CLUSTER_REPLICAS( string node_id @@ -731,7 +730,7 @@ int ECHO( * Execute a Lua script server side * * Time complexity: Depends on the script that is executed. - * Annotated return value: + * Annotated return value: */ int EVAL( string script, @@ -747,7 +746,7 @@ int EVAL( * Execute a Lua script server side * * Time complexity: Depends on the script that is executed. - * Annotated return value: + * Annotated return value: */ int EVALSHA( string sha1, @@ -956,7 +955,7 @@ int GEORADIUS( * - Valid values for withhash: "WITHHASH" * - Valid values for order: "ASC", "DESC" - * Annotated return value: + * Annotated return value: */ int GEORADIUSBYMEMBER( string key, @@ -1552,7 +1551,7 @@ int MIGRATE( * MONITOR * * Listen for all requests received by the server in real time - * Annotated return value: + * Annotated return value: */ int MONITOR(); @@ -1610,7 +1609,7 @@ int MULTI(); * Inspect the internals of Redis objects * * Time complexity: O(1) for all the currently implemented subcommands. - * Annotated return value: + * Annotated return value: */ int OBJECT( string subcommand, @@ -1715,7 +1714,7 @@ int PING( * Set the value and expiration in milliseconds of a key * * Time complexity: O(1) - * Annotated return value: + * Annotated return value: */ int PSETEX( string key, @@ -2213,7 +2212,7 @@ int REPLICAOF( * SLOWLOG * * Manages the Redis slow queries log - * Annotated return value: + * Annotated return value: */ int SLOWLOG( string subcommand, @@ -2377,7 +2376,7 @@ int SWAPDB( * SYNC * * Internal command used for replication - * Annotated return value: + * Annotated return value: */ int SYNC(); @@ -2884,7 +2883,7 @@ int ZUNIONSTORE( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection. - * Annotated return value: + * Annotated return value: */ int SCAN( // Redis type: integer @@ -2904,7 +2903,7 @@ int SCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int SSCAN( string key, @@ -2924,7 +2923,7 @@ int SSCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int HSCAN( string key, @@ -2944,7 +2943,7 @@ int HSCAN( * Time complexity: O(1) for every call. O(N) for a complete iteration, including enough command * calls for the cursor to return back to 0. N is the number of elements inside * the collection.. - * Annotated return value: + * Annotated return value: */ int ZSCAN( string key, @@ -2966,7 +2965,7 @@ int ZSCAN( * items in the stream. * - Valid values for help: "HELP" - * Annotated return value: + * Annotated return value: */ int XINFO( // Redis type: key @@ -3073,7 +3072,7 @@ int XREVRANGE( /** * XLEN * - * Return the number of entires in a stream + * Return the number of entries in a stream * * Time complexity: O(1) * Annotated return value: integer @@ -3088,7 +3087,7 @@ int XLEN( * Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block. * * Time complexity: For each stream mentioned: O(N) with N being the number of elements being - * returned, it menas that XREAD-ing with a fixed COUNT is O(1). Note that when + * returned, it means that XREAD-ing with a fixed COUNT is O(1). Note that when * the BLOCK option is used, XADD will pay O(M) time in order to serve the M * clients blocked on the stream getting new data. @@ -3114,7 +3113,7 @@ int XREAD( * Time complexity: O(1) for all the subcommands, with the exception of the DESTROY subcommand * which takes an additional O(M) time in order to delete the M entries inside * the consumer group pending entries list (PEL). - * Annotated return value: + * Annotated return value: */ int XGROUP( // Redis type: key @@ -3148,7 +3147,7 @@ int XGROUP( * - Valid values for noack: "NOACK" * - Valid values for streams: "STREAMS" - * Annotated return value: + * Annotated return value: */ int XREADGROUP( string group_group, @@ -3230,32 +3229,32 @@ int APPEND( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "APPEND"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("APPEND"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int AUTH( string password ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "AUTH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", password); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("AUTH"); + NWNXPushString(password); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BGREWRITEAOF() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BGREWRITEAOF"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BGREWRITEAOF"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BGSAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BGSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BGSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITCOUNT( @@ -3265,12 +3264,12 @@ int BITCOUNT( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (start != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - if (end != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITCOUNT"); + NWNXPushString(key); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITFIELD( @@ -3292,18 +3291,18 @@ int BITFIELD( // Redis type: integer int incrby_increment = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITFIELD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (get_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", get_type); - if (get_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(get_offset)); - if (set_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", set_type); - if (set_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(set_offset)); - if (set_value != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(set_value)); - if (incrby_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", incrby_type); - if (incrby_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(incrby_offset)); - if (incrby_increment != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(incrby_increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITFIELD"); + NWNXPushString(key); + if (get_type != "") NWNXPushString(get_type); + if (get_offset != 0) NWNXPushString(IntToString(get_offset)); + if (set_type != "") NWNXPushString(set_type); + if (set_offset != 0) NWNXPushString(IntToString(set_offset)); + if (set_value != 0) NWNXPushString(IntToString(set_value)); + if (incrby_type != "") NWNXPushString(incrby_type); + if (incrby_offset != 0) NWNXPushString(IntToString(incrby_offset)); + if (incrby_increment != 0) NWNXPushString(IntToString(incrby_increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITOP( @@ -3312,12 +3311,12 @@ int BITOP( string destkey, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", operation); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destkey); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITOP"); + NWNXPushString(operation); + NWNXPushString(destkey); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BITPOS( @@ -3329,13 +3328,13 @@ int BITPOS( // Redis type: integer int end = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BITPOS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(bit)); - if (start != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - if (end != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BITPOS"); + NWNXPushString(key); + NWNXPushString(IntToString(bit)); + if (start != 0) NWNXPushString(IntToString(start)); + if (end != 0) NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BLPOP( @@ -3343,11 +3342,11 @@ int BLPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BLPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BLPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BRPOP( @@ -3355,11 +3354,11 @@ int BRPOP( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BRPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BRPOP"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BRPOPLPUSH( @@ -3370,12 +3369,12 @@ int BRPOPLPUSH( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BRPOPLPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BRPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BZPOPMIN( @@ -3383,11 +3382,11 @@ int BZPOPMIN( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BZPOPMIN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BZPOPMIN"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int BZPOPMAX( @@ -3395,17 +3394,17 @@ int BZPOPMAX( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "BZPOPMAX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("BZPOPMAX"); + NWNXPushString(key); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_ID() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_ID"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_ID"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_KILL( @@ -3415,54 +3414,54 @@ int CLIENT_KILL( string addr_ip_port = "", string skipme_yes_no = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_KILL"); - if (ip_port != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", ip_port); - if (id_client_id != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(id_client_id)); - if (addr_ip_port != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", addr_ip_port); - if (skipme_yes_no != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", skipme_yes_no); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_KILL"); + if (ip_port != "") NWNXPushString(ip_port); + if (id_client_id != 0) NWNXPushString(IntToString(id_client_id)); + if (addr_ip_port != "") NWNXPushString(addr_ip_port); + if (skipme_yes_no != "") NWNXPushString(skipme_yes_no); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_LIST() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_LIST"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_LIST"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_GETNAME() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_GETNAME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_GETNAME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_PAUSE( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_PAUSE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_PAUSE"); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_REPLY( // Redis type: enum string reply_mode ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_REPLY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", reply_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_REPLY"); + NWNXPushString(reply_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_SETNAME( string connection_name ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_SETNAME"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", connection_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_SETNAME"); + NWNXPushString(connection_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLIENT_UNBLOCK( @@ -3470,69 +3469,69 @@ int CLIENT_UNBLOCK( // Redis type: enum string unblock_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLIENT_UNBLOCK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", client_id); - if (unblock_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", unblock_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLIENT_UNBLOCK"); + NWNXPushString(client_id); + if (unblock_type != "") NWNXPushString(unblock_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_ADDSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_ADDSLOTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_ADDSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_COUNT_FAILURE_REPORTS( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_COUNT_FAILURE_REPORTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_COUNT_FAILURE_REPORTS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_COUNTKEYSINSLOT( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_COUNTKEYSINSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_COUNTKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_DELSLOTS( // Redis type: integer int slot ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_DELSLOTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_DELSLOTS"); + NWNXPushString(IntToString(slot)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_FAILOVER( // Redis type: enum string options = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_FAILOVER"); - if (options != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", options); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_FAILOVER"); + if (options != "") NWNXPushString(options); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_FORGET( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_FORGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_FORGET"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_GETKEYSINSLOT( @@ -3541,26 +3540,26 @@ int CLUSTER_GETKEYSINSLOT( // Redis type: integer int count ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_GETKEYSINSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_GETKEYSINSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_INFO() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_INFO"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_INFO"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_KEYSLOT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_KEYSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_KEYSLOT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_MEET( @@ -3568,52 +3567,52 @@ int CLUSTER_MEET( // Redis type: integer int port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_MEET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ip); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(port)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_MEET"); + NWNXPushString(ip); + NWNXPushString(IntToString(port)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_NODES() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_NODES"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_NODES"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_REPLICATE( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_REPLICATE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_REPLICATE"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_RESET( // Redis type: enum string reset_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_RESET"); - if (reset_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", reset_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_RESET"); + if (reset_type != "") NWNXPushString(reset_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SAVECONFIG() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SAVECONFIG"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SAVECONFIG"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SET_CONFIG_EPOCH( // Redis type: integer int config_epoch ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SET_CONFIG_EPOCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(config_epoch)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SET_CONFIG_EPOCH"); + NWNXPushString(IntToString(config_epoch)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SETSLOT( @@ -3623,125 +3622,125 @@ int CLUSTER_SETSLOT( string subcommand, string node_id = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SETSLOT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(slot)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (node_id != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SETSLOT"); + NWNXPushString(IntToString(slot)); + NWNXPushString(subcommand); + if (node_id != "") NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SLAVES( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SLAVES"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SLAVES"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_REPLICAS( string node_id ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_REPLICAS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", node_id); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_REPLICAS"); + NWNXPushString(node_id); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CLUSTER_SLOTS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CLUSTER_SLOTS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CLUSTER_SLOTS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_COUNT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_COUNT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_COUNT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_GETKEYS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_GETKEYS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_GETKEYS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int COMMAND_INFO( string command_name ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "COMMAND_INFO"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", command_name); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("COMMAND_INFO"); + NWNXPushString(command_name); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_GET( string parameter ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_GET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", parameter); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_GET"); + NWNXPushString(parameter); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_REWRITE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_REWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_REWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_SET( string parameter, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_SET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", parameter); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_SET"); + NWNXPushString(parameter); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int CONFIG_RESETSTAT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "CONFIG_RESETSTAT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("CONFIG_RESETSTAT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DBSIZE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DBSIZE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DBSIZE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEBUG_OBJECT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEBUG_OBJECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEBUG_OBJECT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEBUG_SEGFAULT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEBUG_SEGFAULT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEBUG_SEGFAULT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DECR( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DECR"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DECR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DECRBY( @@ -3749,44 +3748,44 @@ int DECRBY( // Redis type: integer int decrement ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DECRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(decrement)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DECRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(decrement)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DEL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DEL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DISCARD() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DISCARD"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DISCARD"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int DUMP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "DUMP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("DUMP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ECHO( string message ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ECHO"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ECHO"); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EVAL( @@ -3796,13 +3795,13 @@ int EVAL( string key, string arg ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EVAL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", script); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EVAL"); + NWNXPushString(script); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EVALSHA( @@ -3812,28 +3811,28 @@ int EVALSHA( string key, string arg ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EVALSHA"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sha1); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", arg); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EVALSHA"); + NWNXPushString(sha1); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + NWNXPushString(arg); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXEC() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXEC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXEC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXISTS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXISTS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXPIRE( @@ -3841,11 +3840,11 @@ int EXPIRE( // Redis type: integer int seconds ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXPIRE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(seconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int EXPIREAT( @@ -3853,31 +3852,31 @@ int EXPIREAT( // Redis type: posix time string timestamp ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "EXPIREAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("EXPIREAT"); + NWNXPushString(key); + NWNXPushString(timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int FLUSHALL( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "FLUSHALL"); - if (async != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("FLUSHALL"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int FLUSHDB( // Redis type: enum string async = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "FLUSHDB"); - if (async != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", async); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("FLUSHDB"); + if (async != "") NWNXPushString(async); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOADD( @@ -3888,35 +3887,35 @@ int GEOADD( float latitude, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(longitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(latitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOADD"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOHASH( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOHASH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOHASH"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEOPOS( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEOPOS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEOPOS"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEODIST( @@ -3925,13 +3924,13 @@ int GEODIST( string member2, string unit = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEODIST"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member1); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member2); - if (unit != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEODIST"); + NWNXPushString(key); + NWNXPushString(member1); + NWNXPushString(member2); + if (unit != "") NWNXPushString(unit); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEORADIUS( @@ -3959,21 +3958,21 @@ int GEORADIUS( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEORADIUS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(longitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(latitude, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(radius, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - if (withcoord != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withcoord); - if (withdist != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withdist); - if (withhash != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withhash); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (store_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_key); - if (storedist_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEORADIUS"); + NWNXPushString(key); + NWNXPushString(FloatToString(longitude, 0)); + NWNXPushString(FloatToString(latitude, 0)); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GEORADIUSBYMEMBER( @@ -3998,29 +3997,29 @@ int GEORADIUSBYMEMBER( // Redis type: key string storedist_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GEORADIUSBYMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(radius, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", unit); - if (withcoord != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withcoord); - if (withdist != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withdist); - if (withhash != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withhash); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (store_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_key); - if (storedist_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", storedist_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GEORADIUSBYMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXPushString(FloatToString(radius, 0)); + NWNXPushString(unit); + if (withcoord != "") NWNXPushString(withcoord); + if (withdist != "") NWNXPushString(withdist); + if (withhash != "") NWNXPushString(withhash); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (order != "") NWNXPushString(order); + if (store_key != "") NWNXPushString(store_key); + if (storedist_key != "") NWNXPushString(storedist_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GET( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETBIT( @@ -4028,11 +4027,11 @@ int GETBIT( // Redis type: integer int offset ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETBIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETRANGE( @@ -4042,65 +4041,65 @@ int GETRANGE( // Redis type: integer int end ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(end)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(end)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int GETSET( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "GETSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("GETSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HDEL( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HDEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HDEL"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HEXISTS( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HEXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HEXISTS"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HGET( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HGETALL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HGETALL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HGETALL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HINCRBY( @@ -4109,12 +4108,12 @@ int HINCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HINCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HINCRBY"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HINCRBYFLOAT( @@ -4123,41 +4122,41 @@ int HINCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HINCRBYFLOAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HINCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HKEYS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HKEYS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HKEYS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HMGET( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HMGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HMGET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HMSET( @@ -4165,12 +4164,12 @@ int HMSET( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HMSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HMSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSET( @@ -4178,12 +4177,12 @@ int HSET( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSET"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSETNX( @@ -4191,41 +4190,41 @@ int HSETNX( string field, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSETNX"); + NWNXPushString(key); + NWNXPushString(field); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSTRLEN( string key, string field ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSTRLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSTRLEN"); + NWNXPushString(key); + NWNXPushString(field); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HVALS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HVALS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HVALS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCR( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCR"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCR"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCRBY( @@ -4233,11 +4232,11 @@ int INCRBY( // Redis type: integer int increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INCRBYFLOAT( @@ -4245,35 +4244,35 @@ int INCRBYFLOAT( // Redis type: double float increment ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INCRBYFLOAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(increment, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INCRBYFLOAT"); + NWNXPushString(key); + NWNXPushString(FloatToString(increment, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int INFO( string section = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "INFO"); - if (section != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", section); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("INFO"); + if (section != "") NWNXPushString(section); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int KEYS( string pattern ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "KEYS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", pattern); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("KEYS"); + NWNXPushString(pattern); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LASTSAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LASTSAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LASTSAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LINDEX( @@ -4281,11 +4280,11 @@ int LINDEX( // Redis type: integer int index ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LINDEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LINDEX"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LINSERT( @@ -4295,53 +4294,53 @@ int LINSERT( string pivot, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LINSERT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", where); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", pivot); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LINSERT"); + NWNXPushString(key); + NWNXPushString(where); + NWNXPushString(pivot); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPOP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPUSH( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LPUSHX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LPUSHX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LRANGE( @@ -4351,12 +4350,12 @@ int LRANGE( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LREM( @@ -4365,12 +4364,12 @@ int LREM( int count, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LREM"); + NWNXPushString(key); + NWNXPushString(IntToString(count)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LSET( @@ -4379,12 +4378,12 @@ int LSET( int index, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LSET"); + NWNXPushString(key); + NWNXPushString(IntToString(index)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int LTRIM( @@ -4394,42 +4393,42 @@ int LTRIM( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "LTRIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("LTRIM"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_DOCTOR() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_DOCTOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_DOCTOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_HELP() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_HELP"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_HELP"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_MALLOC_STATS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_MALLOC_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_MALLOC_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_PURGE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_PURGE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_PURGE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_STATS() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_STATS"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_STATS"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MEMORY_USAGE( @@ -4437,20 +4436,20 @@ int MEMORY_USAGE( // Redis type: integer int samples_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MEMORY_USAGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (samples_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(samples_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MEMORY_USAGE"); + NWNXPushString(key); + if (samples_count != 0) NWNXPushString(IntToString(samples_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MGET( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MGET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MGET"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MIGRATE( @@ -4470,24 +4469,24 @@ int MIGRATE( // Redis type: key string keys_key = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MIGRATE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(destination_db)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - if (copy != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", copy); - if (replace != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", replace); - if (auth_password != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", auth_password); - if (keys_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", keys_key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MIGRATE"); + NWNXPushString(host); + NWNXPushString(port); + NWNXPushString(key); + NWNXPushString(IntToString(destination_db)); + NWNXPushString(IntToString(timeout)); + if (copy != "") NWNXPushString(copy); + if (replace != "") NWNXPushString(replace); + if (auth_password != "") NWNXPushString(auth_password); + if (keys_key != "") NWNXPushString(keys_key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MONITOR() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MONITOR"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MONITOR"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MOVE( @@ -4495,59 +4494,59 @@ int MOVE( // Redis type: integer int db ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MOVE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(db)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MOVE"); + NWNXPushString(key); + NWNXPushString(IntToString(db)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MSET( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MSET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MSET"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MSETNX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MSETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MSETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int MULTI() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "MULTI"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("MULTI"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int OBJECT( string subcommand, string arguments = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "OBJECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (arguments != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", arguments); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("OBJECT"); + NWNXPushString(subcommand); + if (arguments != "") NWNXPushString(arguments); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PERSIST( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PERSIST"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PERSIST"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PEXPIRE( @@ -4555,11 +4554,11 @@ int PEXPIRE( // Redis type: integer int milliseconds ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PEXPIRE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(milliseconds)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PEXPIRE"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PEXPIREAT( @@ -4567,31 +4566,31 @@ int PEXPIREAT( // Redis type: posix time string milliseconds_timestamp ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PEXPIREAT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", milliseconds_timestamp); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PEXPIREAT"); + NWNXPushString(key); + NWNXPushString(milliseconds_timestamp); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFADD( string key, string element ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", element); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFADD"); + NWNXPushString(key); + NWNXPushString(element); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFCOUNT( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFCOUNT"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PFMERGE( @@ -4600,20 +4599,20 @@ int PFMERGE( // Redis type: key string sourcekey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PFMERGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destkey); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sourcekey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PFMERGE"); + NWNXPushString(destkey); + NWNXPushString(sourcekey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PING( string message = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PING"); - if (message != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PING"); + if (message != "") NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PSETEX( @@ -4622,67 +4621,67 @@ int PSETEX( int milliseconds, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PSETEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(milliseconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PSETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(milliseconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PUBSUB( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PUBSUB"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (argument != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PUBSUB"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PTTL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PTTL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PTTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int PUBLISH( string channel, string message ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "PUBLISH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", channel); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", message); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("PUBLISH"); + NWNXPushString(channel); + NWNXPushString(message); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int QUIT() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "QUIT"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("QUIT"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RANDOMKEY() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RANDOMKEY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RANDOMKEY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int READONLY() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "READONLY"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("READONLY"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int READWRITE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "READWRITE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("READWRITE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RENAME( @@ -4690,11 +4689,11 @@ int RENAME( // Redis type: key string newkey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RENAME"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RENAME"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RENAMENX( @@ -4702,11 +4701,11 @@ int RENAMENX( // Redis type: key string newkey ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RENAMENX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", newkey); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RENAMENX"); + NWNXPushString(key); + NWNXPushString(newkey); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RESTORE( @@ -4723,31 +4722,31 @@ int RESTORE( // Redis type: integer int freq_frequency = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RESTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(ttl)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", serialized_value); - if (replace != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", replace); - if (absttl != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", absttl); - if (idletime_seconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(idletime_seconds)); - if (freq_frequency != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(freq_frequency)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RESTORE"); + NWNXPushString(key); + NWNXPushString(IntToString(ttl)); + NWNXPushString(serialized_value); + if (replace != "") NWNXPushString(replace); + if (absttl != "") NWNXPushString(absttl); + if (idletime_seconds != 0) NWNXPushString(IntToString(idletime_seconds)); + if (freq_frequency != 0) NWNXPushString(IntToString(freq_frequency)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ROLE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ROLE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ROLE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPOP( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPOP"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPOPLPUSH( @@ -4756,108 +4755,108 @@ int RPOPLPUSH( // Redis type: key string destination ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPOPLPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPOPLPUSH"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPUSH( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPUSH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPUSH"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int RPUSHX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "RPUSHX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("RPUSHX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SADD( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SADD"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SAVE() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SAVE"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SAVE"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCARD( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCARD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_DEBUG( // Redis type: enum string mode ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_DEBUG"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_DEBUG"); + NWNXPushString(mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_EXISTS( string sha1 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_EXISTS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", sha1); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_EXISTS"); + NWNXPushString(sha1); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_FLUSH() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_FLUSH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_FLUSH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_KILL() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_KILL"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_KILL"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCRIPT_LOAD( string script ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCRIPT_LOAD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", script); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCRIPT_LOAD"); + NWNXPushString(script); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SDIFF( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SDIFF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SDIFF"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SDIFFSTORE( @@ -4865,21 +4864,21 @@ int SDIFFSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SDIFFSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SDIFFSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SELECT( // Redis type: integer int index ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SELECT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SELECT"); + NWNXPushString(IntToString(index)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SET( @@ -4888,12 +4887,12 @@ int SET( // Redis type: enum string condition = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SET"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - if (condition != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", condition); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SET"); + NWNXPushString(key); + NWNXPushString(value); + if (condition != "") NWNXPushString(condition); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETBIT( @@ -4902,12 +4901,12 @@ int SETBIT( int offset, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETBIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETBIT"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETEX( @@ -4916,23 +4915,23 @@ int SETEX( int seconds, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(seconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETEX"); + NWNXPushString(key); + NWNXPushString(IntToString(seconds)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETNX( string key, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETNX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETNX"); + NWNXPushString(key); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SETRANGE( @@ -4941,31 +4940,31 @@ int SETRANGE( int offset, string value ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SETRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(offset)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", value); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SETRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(offset)); + NWNXPushString(value); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SHUTDOWN( // Redis type: enum string save_mode = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SHUTDOWN"); - if (save_mode != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", save_mode); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SHUTDOWN"); + if (save_mode != "") NWNXPushString(save_mode); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SINTER( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SINTER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SINTER"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SINTERSTORE( @@ -4973,64 +4972,64 @@ int SINTERSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SINTERSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SISMEMBER( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SISMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SISMEMBER"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SLAVEOF( string host, string port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SLAVEOF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SLAVEOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int REPLICAOF( string host, string port ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "REPLICAOF"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", host); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", port); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("REPLICAOF"); + NWNXPushString(host); + NWNXPushString(port); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SLOWLOG( string subcommand, string argument = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SLOWLOG"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", subcommand); - if (argument != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", argument); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SLOWLOG"); + NWNXPushString(subcommand); + if (argument != "") NWNXPushString(argument); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SMEMBERS( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SMEMBERS"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SMEMBERS"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SMOVE( @@ -5040,12 +5039,12 @@ int SMOVE( string destination, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SMOVE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", source); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SMOVE"); + NWNXPushString(source); + NWNXPushString(destination); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SORT( @@ -5064,17 +5063,17 @@ int SORT( // Redis type: key string store_destination = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SORT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (by_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", by_pattern); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - if (get_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", get_pattern); - if (order != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", order); - if (sorting != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", sorting); - if (store_destination != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", store_destination); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SORT"); + NWNXPushString(key); + if (by_pattern != "") NWNXPushString(by_pattern); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + if (get_pattern != "") NWNXPushString(get_pattern); + if (order != "") NWNXPushString(order); + if (sorting != "") NWNXPushString(sorting); + if (store_destination != "") NWNXPushString(store_destination); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SPOP( @@ -5082,11 +5081,11 @@ int SPOP( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SPOP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SPOP"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SRANDMEMBER( @@ -5094,40 +5093,40 @@ int SRANDMEMBER( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SRANDMEMBER"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SRANDMEMBER"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SREM( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int STRLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "STRLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("STRLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SUNION( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SUNION"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SUNION"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SUNIONSTORE( @@ -5135,11 +5134,11 @@ int SUNIONSTORE( string destination, string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SUNIONSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SWAPDB( @@ -5148,65 +5147,65 @@ int SWAPDB( // Redis type: integer int index_1 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SWAPDB"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(index_1)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SWAPDB"); + NWNXPushString(IntToString(index)); + NWNXPushString(IntToString(index_1)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SYNC() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SYNC"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SYNC"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TIME() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TIME"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TIME"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TOUCH( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TOUCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TOUCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TTL( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TTL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TTL"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int TYPE( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "TYPE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("TYPE"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int UNLINK( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "UNLINK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("UNLINK"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int UNWATCH() { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "UNWATCH"); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("UNWATCH"); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int WAIT( @@ -5215,20 +5214,20 @@ int WAIT( // Redis type: integer int timeout ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "WAIT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numreplicas)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(timeout)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("WAIT"); + NWNXPushString(IntToString(numreplicas)); + NWNXPushString(IntToString(timeout)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int WATCH( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "WATCH"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("WATCH"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZADD( @@ -5243,24 +5242,24 @@ int ZADD( float score = 0.0, string member = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (condition != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", condition); - if (change != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", change); - if (increment != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", increment); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(score, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZADD"); + NWNXPushString(key); + if (condition != "") NWNXPushString(condition); + if (change != "") NWNXPushString(change); + if (increment != "") NWNXPushString(increment); + NWNXPushString(FloatToString(score, 0)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZCARD( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZCARD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZCARD"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZCOUNT( @@ -5270,12 +5269,12 @@ int ZCOUNT( // Redis type: double float max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZCOUNT"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZINCRBY( @@ -5284,12 +5283,12 @@ int ZINCRBY( int increment, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZINCRBY"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(increment)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZINCRBY"); + NWNXPushString(key); + NWNXPushString(IntToString(increment)); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZINTERSTORE( @@ -5303,14 +5302,14 @@ int ZINTERSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZINTERSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (weights_weight != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZINTERSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZLEXCOUNT( @@ -5318,12 +5317,12 @@ int ZLEXCOUNT( string min, string max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZLEXCOUNT"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZLEXCOUNT"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZPOPMAX( @@ -5331,11 +5330,11 @@ int ZPOPMAX( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZPOPMAX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZPOPMAX"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZPOPMIN( @@ -5343,11 +5342,11 @@ int ZPOPMIN( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZPOPMIN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZPOPMIN"); + NWNXPushString(key); + if (count != 0) NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGE( @@ -5359,13 +5358,13 @@ int ZRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGEBYLEX( @@ -5377,14 +5376,14 @@ int ZRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGEBYLEX( @@ -5396,14 +5395,14 @@ int ZREVRANGEBYLEX( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(max); + NWNXPushString(min); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANGEBYSCORE( @@ -5419,37 +5418,37 @@ int ZRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZRANK( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREM( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREM"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYLEX( @@ -5457,12 +5456,12 @@ int ZREMRANGEBYLEX( string min, string max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYLEX"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", max); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYLEX"); + NWNXPushString(key); + NWNXPushString(min); + NWNXPushString(max); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYRANK( @@ -5472,12 +5471,12 @@ int ZREMRANGEBYRANK( // Redis type: integer int stop ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYRANK"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREMRANGEBYSCORE( @@ -5487,12 +5486,12 @@ int ZREMRANGEBYSCORE( // Redis type: double float max ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREMRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREMRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(min, 0)); + NWNXPushString(FloatToString(max, 0)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGE( @@ -5504,13 +5503,13 @@ int ZREVRANGE( // Redis type: enum string withscores = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(start)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(stop)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGE"); + NWNXPushString(key); + NWNXPushString(IntToString(start)); + NWNXPushString(IntToString(stop)); + if (withscores != "") NWNXPushString(withscores); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANGEBYSCORE( @@ -5526,37 +5525,37 @@ int ZREVRANGEBYSCORE( // Redis type: integer int limit_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANGEBYSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(max, 0)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", FloatToString(min, 0)); - if (withscores != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", withscores); - if (limit_offset != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_offset)); - if (limit_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(limit_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANGEBYSCORE"); + NWNXPushString(key); + NWNXPushString(FloatToString(max, 0)); + NWNXPushString(FloatToString(min, 0)); + if (withscores != "") NWNXPushString(withscores); + if (limit_offset != 0) NWNXPushString(IntToString(limit_offset)); + if (limit_count != 0) NWNXPushString(IntToString(limit_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZREVRANK( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZREVRANK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZREVRANK"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZSCORE( string key, string member ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZSCORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", member); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZSCORE"); + NWNXPushString(key); + NWNXPushString(member); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZUNIONSTORE( @@ -5570,14 +5569,14 @@ int ZUNIONSTORE( // Redis type: enum string aggregate_aggregate = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZUNIONSTORE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", destination); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(numkeys)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - if (weights_weight != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(weights_weight)); - if (aggregate_aggregate != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", aggregate_aggregate); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZUNIONSTORE"); + NWNXPushString(destination); + NWNXPushString(IntToString(numkeys)); + NWNXPushString(key); + if (weights_weight != 0) NWNXPushString(IntToString(weights_weight)); + if (aggregate_aggregate != "") NWNXPushString(aggregate_aggregate); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SCAN( @@ -5589,13 +5588,13 @@ int SCAN( int count_count = 0, string type_type = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (type_type != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", type_type); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SCAN"); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (type_type != "") NWNXPushString(type_type); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int SSCAN( @@ -5607,13 +5606,13 @@ int SSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "SSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("SSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int HSCAN( @@ -5625,13 +5624,13 @@ int HSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "HSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("HSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int ZSCAN( @@ -5643,13 +5642,13 @@ int ZSCAN( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "ZSCAN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(cursor)); - if (match_pattern != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", match_pattern); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("ZSCAN"); + NWNXPushString(key); + NWNXPushString(IntToString(cursor)); + if (match_pattern != "") NWNXPushString(match_pattern); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XINFO( @@ -5663,14 +5662,14 @@ int XINFO( // Redis type: enum string help = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XINFO"); - if (consumers_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumers_key); - if (consumers_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumers_groupname); - if (groups_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", groups_key); - if (stream_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", stream_key); - if (help != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", help); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XINFO"); + if (consumers_key != "") NWNXPushString(consumers_key); + if (consumers_groupname != "") NWNXPushString(consumers_groupname); + if (groups_key != "") NWNXPushString(groups_key); + if (stream_key != "") NWNXPushString(stream_key); + if (help != "") NWNXPushString(help); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XADD( @@ -5680,13 +5679,13 @@ int XADD( string field, string str ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XADD"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", field); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", str); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XADD"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXPushString(field); + NWNXPushString(str); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XTRIM( @@ -5698,24 +5697,24 @@ int XTRIM( // Redis type: integer int count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XTRIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", strategy); - if (approx != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", approx); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XTRIM"); + NWNXPushString(key); + NWNXPushString(strategy); + if (approx != "") NWNXPushString(approx); + NWNXPushString(IntToString(count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XDEL( string key, string ID ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XDEL"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XDEL"); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XRANGE( @@ -5725,13 +5724,13 @@ int XRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XRANGE"); + NWNXPushString(key); + NWNXPushString(start); + NWNXPushString(end); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREVRANGE( @@ -5741,22 +5740,22 @@ int XREVRANGE( // Redis type: integer int count_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREVRANGE"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREVRANGE"); + NWNXPushString(key); + NWNXPushString(end); + NWNXPushString(start); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XLEN( string key ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XLEN"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XLEN"); + NWNXPushString(key); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREAD( @@ -5769,14 +5768,14 @@ int XREAD( string key = "", string ID = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREAD"); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(block_milliseconds)); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", streams); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREAD"); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XGROUP( @@ -5796,20 +5795,20 @@ int XGROUP( string delconsumer_groupname = "", string delconsumer_consumername = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XGROUP"); - if (create_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_key); - if (create_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_groupname); - if (create_id_or__ != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", create_id_or__); - if (setid_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_key); - if (setid_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_groupname); - if (setid_id_or__ != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", setid_id_or__); - if (destroy_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", destroy_key); - if (destroy_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", destroy_groupname); - if (delconsumer_key != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_key); - if (delconsumer_groupname != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_groupname); - if (delconsumer_consumername != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", delconsumer_consumername); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XGROUP"); + if (create_key != "") NWNXPushString(create_key); + if (create_groupname != "") NWNXPushString(create_groupname); + if (create_id_or__ != "") NWNXPushString(create_id_or__); + if (setid_key != "") NWNXPushString(setid_key); + if (setid_groupname != "") NWNXPushString(setid_groupname); + if (setid_id_or__ != "") NWNXPushString(setid_id_or__); + if (destroy_key != "") NWNXPushString(destroy_key); + if (destroy_groupname != "") NWNXPushString(destroy_groupname); + if (delconsumer_key != "") NWNXPushString(delconsumer_key); + if (delconsumer_groupname != "") NWNXPushString(delconsumer_groupname); + if (delconsumer_consumername != "") NWNXPushString(delconsumer_consumername); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XREADGROUP( @@ -5826,17 +5825,17 @@ int XREADGROUP( string key = "", string ID = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XREADGROUP"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group_group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group_consumer); - if (count_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count_count)); - if (block_milliseconds != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(block_milliseconds)); - if (noack != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", noack); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", streams); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XREADGROUP"); + NWNXPushString(group_group); + NWNXPushString(group_consumer); + if (count_count != 0) NWNXPushString(IntToString(count_count)); + if (block_milliseconds != 0) NWNXPushString(IntToString(block_milliseconds)); + if (noack != "") NWNXPushString(noack); + NWNXPushString(streams); + NWNXPushString(key); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XACK( @@ -5844,12 +5843,12 @@ int XACK( string group, string ID ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XACK"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XACK"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(ID); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XCLAIM( @@ -5865,17 +5864,17 @@ int XCLAIM( // Redis type: integer int retrycount_count = 0 ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XCLAIM"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumer); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", min_idle_time); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", ID); - if (idle_ms != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(idle_ms)); - if (time_ms_unix_time != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(time_ms_unix_time)); - if (retrycount_count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(retrycount_count)); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XCLAIM"); + NWNXPushString(key); + NWNXPushString(group); + NWNXPushString(consumer); + NWNXPushString(min_idle_time); + NWNXPushString(ID); + if (idle_ms != 0) NWNXPushString(IntToString(idle_ms)); + if (time_ms_unix_time != 0) NWNXPushString(IntToString(time_ms_unix_time)); + if (retrycount_count != 0) NWNXPushString(IntToString(retrycount_count)); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } int XPENDING( @@ -5887,14 +5886,13 @@ int XPENDING( int count = 0, string consumer = "" ) { - NWNX_PushArgumentString("NWNX_Redis", "Deferred", "XPENDING"); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", key); - NWNX_PushArgumentString("NWNX_Redis", "Deferred", group); - if (start != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", start); - if (end != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", end); - if (count != 0) NWNX_PushArgumentString("NWNX_Redis", "Deferred", IntToString(count)); - if (consumer != "") NWNX_PushArgumentString("NWNX_Redis", "Deferred", consumer); - NWNX_CallFunction("NWNX_Redis", "Deferred"); - return NWNX_GetReturnValueInt("NWNX_Redis", "Deferred"); + NWNXPushString("XPENDING"); + NWNXPushString(key); + NWNXPushString(group); + if (start != "") NWNXPushString(start); + if (end != "") NWNXPushString(end); + if (count != 0) NWNXPushString(IntToString(count)); + if (consumer != "") NWNXPushString(consumer); + NWNXCall("NWNX_Redis", "Deferred"); + return NWNXPopInt(); } - diff --git a/_module/nss/nwnx_rename.nss b/_module/nss/nwnx_rename.nss index 053fb2a5..f7270581 100644 --- a/_module/nss/nwnx_rename.nss +++ b/_module/nss/nwnx_rename.nss @@ -2,7 +2,6 @@ /// @brief Facilitates renaming, overriding and customization of player names. /// @{ /// @file nwnx_rename.nss -#include "nwnx" const string NWNX_Rename = "NWNX_Rename"; ///< @private @@ -35,7 +34,7 @@ string NWNX_Rename_GetPCNameOverride(object oTarget, object oObserver = OBJECT_I /// @brief Clears an overridden PC Name. /// @param oTarget The PC whose overridden name to clear, use OBJECT_INVALID if you're clearing all overrides for an observer. -/// @param oObserver The observer whose overriden name of oTarget is being cleared. +/// @param oObserver The observer whose overridden name of oTarget is being cleared. /// If oTarget is OBJECT_INVALID then all overrides are cleared. /// @param clearAll If true, both the global and personal overrides will be cleared for that target PC. /// Requires oObserver be OBJECT_INVALID. @@ -46,35 +45,26 @@ void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_I void NWNX_Rename_SetPCNameOverride(object oTarget, string sNewName, string sPrefix = "" , string sSuffix = "" , int iPlayerNameState = NWNX_RENAME_PLAYERNAME_DEFAULT, object oObserver = OBJECT_INVALID) { - string sFunc = "SetPCNameOverride"; - - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oObserver); - NWNX_PushArgumentInt(NWNX_Rename, sFunc, iPlayerNameState); - NWNX_PushArgumentString(NWNX_Rename, sFunc, sSuffix); - NWNX_PushArgumentString(NWNX_Rename, sFunc, sPrefix); - NWNX_PushArgumentString(NWNX_Rename, sFunc, sNewName); - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); + NWNXPushObject(oObserver); + NWNXPushInt(iPlayerNameState); + NWNXPushString(sSuffix); + NWNXPushString(sPrefix); + NWNXPushString(sNewName); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "SetPCNameOverride"); } string NWNX_Rename_GetPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID) { - string sFunc = "GetPCNameOverride"; - - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oObserver); - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); - return NWNX_GetReturnValueString(NWNX_Rename, sFunc); + NWNXPushObject(oObserver); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "GetPCNameOverride"); + return NWNXPopString(); } void NWNX_Rename_ClearPCNameOverride(object oTarget, object oObserver = OBJECT_INVALID, int clearAll = FALSE) { - string sFunc = "ClearPCNameOverride"; - - NWNX_PushArgumentInt(NWNX_Rename, sFunc, clearAll); - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oObserver); - NWNX_PushArgumentObject(NWNX_Rename, sFunc, oTarget); - - NWNX_CallFunction(NWNX_Rename, sFunc); + NWNXPushInt(clearAll); + NWNXPushObject(oObserver); + NWNXPushObject(oTarget); + NWNXCall(NWNX_Rename, "ClearPCNameOverride"); } diff --git a/_module/nss/nwnx_reveal.nss b/_module/nss/nwnx_reveal.nss index 8ddf2f1f..12618306 100644 --- a/_module/nss/nwnx_reveal.nss +++ b/_module/nss/nwnx_reveal.nss @@ -2,7 +2,6 @@ /// @brief Allows the selective revealing of a stealthing character to another character or their party. /// @{ /// @file nwnx_reveal.nss -#include "nwnx" const string NWNX_Reveal = "NWNX_Reveal"; ///< @private @@ -28,22 +27,16 @@ void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMet void NWNX_Reveal_RevealTo(object oHiding, object oObserver, int iDetectionMethod = NWNX_REVEAL_HEARD) { - string sFunc = "RevealTo"; - - NWNX_PushArgumentInt(NWNX_Reveal, sFunc, iDetectionMethod); - NWNX_PushArgumentObject(NWNX_Reveal, sFunc, oObserver); - NWNX_PushArgumentObject(NWNX_Reveal, sFunc, oHiding); - - NWNX_CallFunction(NWNX_Reveal, sFunc); + NWNXPushInt(iDetectionMethod); + NWNXPushObject(oObserver); + NWNXPushObject(oHiding); + NWNXCall(NWNX_Reveal, "RevealTo"); } void NWNX_Reveal_SetRevealToParty(object oHiding, int bReveal, int iDetectionMethod = NWNX_REVEAL_HEARD) { - string sFunc = "SetRevealToParty"; - - NWNX_PushArgumentInt(NWNX_Reveal, sFunc, iDetectionMethod); - NWNX_PushArgumentInt(NWNX_Reveal, sFunc, bReveal); - NWNX_PushArgumentObject(NWNX_Reveal, sFunc, oHiding); - - NWNX_CallFunction(NWNX_Reveal, sFunc); + NWNXPushInt(iDetectionMethod); + NWNXPushInt(bReveal); + NWNXPushObject(oHiding); + NWNXCall(NWNX_Reveal, "SetRevealToParty"); } diff --git a/_module/nss/nwnx_ruby.nss b/_module/nss/nwnx_ruby.nss index 24c8f85d..ce377cc8 100644 --- a/_module/nss/nwnx_ruby.nss +++ b/_module/nss/nwnx_ruby.nss @@ -2,22 +2,19 @@ /// @brief Allows users to execute arbitrary Ruby from the game. /// @{ /// @file nwnx_ruby.nss -#include "nwnx" const string NWNX_Ruby = "NWNX_Ruby"; ///< @private -string NWNX_Ruby_Evaluate (string sCode); +string NWNX_Ruby_Evaluate(string sCode); /// @brief Evaluates some ruby code. /// @param sCode The code to evaluate. /// @return The output of the call. string NWNX_Ruby_Evaluate(string sCode) { - string sFunc = "Evaluate"; - - NWNX_PushArgumentString (NWNX_Ruby, sFunc, sCode); - NWNX_CallFunction (NWNX_Ruby, sFunc); - return NWNX_GetReturnValueString (NWNX_Ruby, sFunc); + NWNXPushString(sCode); + NWNXCall(NWNX_Ruby, "Evaluate"); + return NWNXPopString(); } /// @} diff --git a/_module/nss/nwnx_skillranks.nss b/_module/nss/nwnx_skillranks.nss index cc884831..ae38d96f 100644 --- a/_module/nss/nwnx_skillranks.nss +++ b/_module/nss/nwnx_skillranks.nss @@ -3,7 +3,6 @@ /// skill related feats as well as modifying stock feats. /// @{ /// @file nwnx_skillranks.nss -#include "nwnx" const string NWNX_SkillRanks = "NWNX_SkillRanks"; ///< @private @@ -144,82 +143,67 @@ void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier); int NWNX_SkillRanks_GetSkillFeatCountForSkill(int iSkill) { - string sFunc = "GetSkillFeatCountForSkill"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeatCountForSkill"); + return NWNXPopInt(); } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeatForSkillByIndex(int iSkill, int iIndex) { - string sFunc = "GetSkillFeatForSkillByIndex"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iIndex); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - + NWNXPushInt(iIndex); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeatForSkillByIndex"); struct NWNX_SkillRanks_SkillFeat skillFeat; - skillFeat.iSkill = iSkill; - skillFeat.iFeat = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iModifier = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iFocusFeat = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.sClasses = NWNX_GetReturnValueString(NWNX_SkillRanks, sFunc); - skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat(NWNX_SkillRanks, sFunc); - skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iDayOrNight = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - + skillFeat.iFeat = NWNXPopInt(); + skillFeat.iModifier = NWNXPopInt(); + skillFeat.iFocusFeat = NWNXPopInt(); + skillFeat.sClasses = NWNXPopString(); + skillFeat.fClassLevelMod = NWNXPopFloat(); + skillFeat.iAreaFlagsRequired = NWNXPopInt(); + skillFeat.iAreaFlagsForbidden = NWNXPopInt(); + skillFeat.iDayOrNight = NWNXPopInt(); + skillFeat.bBypassArmorCheckPenalty = NWNXPopInt(); + skillFeat.iKeyAbilityMask = NWNXPopInt(); return skillFeat; } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeat(int iSkill, int iFeat) { - string sFunc = "GetSkillFeat"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iFeat); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - + NWNXPushInt(iFeat); + NWNXPushInt(iSkill); + NWNXCall(NWNX_SkillRanks, "GetSkillFeat"); struct NWNX_SkillRanks_SkillFeat skillFeat; - skillFeat.iSkill = iSkill; skillFeat.iFeat = iFeat; - skillFeat.iModifier = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iFocusFeat = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.sClasses = NWNX_GetReturnValueString(NWNX_SkillRanks, sFunc); - skillFeat.fClassLevelMod = NWNX_GetReturnValueFloat(NWNX_SkillRanks, sFunc); - skillFeat.iAreaFlagsRequired = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iAreaFlagsForbidden = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iDayOrNight = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.bBypassArmorCheckPenalty = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - skillFeat.iKeyAbilityMask = NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); - + skillFeat.iModifier = NWNXPopInt(); + skillFeat.iFocusFeat = NWNXPopInt(); + skillFeat.sClasses = NWNXPopString(); + skillFeat.fClassLevelMod = NWNXPopFloat(); + skillFeat.iAreaFlagsRequired = NWNXPopInt(); + skillFeat.iAreaFlagsForbidden = NWNXPopInt(); + skillFeat.iDayOrNight = NWNXPopInt(); + skillFeat.bBypassArmorCheckPenalty = NWNXPopInt(); + skillFeat.iKeyAbilityMask = NWNXPopInt(); return skillFeat; } void NWNX_SkillRanks_SetSkillFeat(struct NWNX_SkillRanks_SkillFeat skillFeat, int createIfNonExistent = FALSE) { - string sFunc = "SetSkillFeat"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, createIfNonExistent); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iKeyAbilityMask); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.bBypassArmorCheckPenalty); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iDayOrNight); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iAreaFlagsForbidden); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iAreaFlagsRequired); - NWNX_PushArgumentFloat(NWNX_SkillRanks, sFunc, skillFeat.fClassLevelMod); + NWNXPushInt(createIfNonExistent); + NWNXPushInt(skillFeat.iKeyAbilityMask); + NWNXPushInt(skillFeat.bBypassArmorCheckPenalty); + NWNXPushInt(skillFeat.iDayOrNight); + NWNXPushInt(skillFeat.iAreaFlagsForbidden); + NWNXPushInt(skillFeat.iAreaFlagsRequired); + NWNXPushFloat(skillFeat.fClassLevelMod); // We only need to send the string from the point of the first set bit - NWNX_PushArgumentString(NWNX_SkillRanks, sFunc, GetStringRight(skillFeat.sClasses, GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses, "1"))); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iFocusFeat); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iModifier); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iFeat); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, skillFeat.iSkill); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushString(GetStringRight(skillFeat.sClasses,GetStringLength(skillFeat.sClasses)-FindSubString(skillFeat.sClasses,"1"))); + NWNXPushInt(skillFeat.iFocusFeat); + NWNXPushInt(skillFeat.iModifier); + NWNXPushInt(skillFeat.iFeat); + NWNXPushInt(skillFeat.iSkill); + NWNXCall(NWNX_SkillRanks, "SetSkillFeat"); } struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_SkillRanks_SkillFeat skillFeat, int iClass) @@ -237,47 +221,35 @@ struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_S void NWNX_SkillRanks_SetSkillFeatFocusModifier(int iModifier, int epicFocus = FALSE) { - string sFunc = "SetSkillFeatFocusModifier"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, epicFocus); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iModifier); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(epicFocus); + NWNXPushInt(iModifier); + NWNXCall(NWNX_SkillRanks, "SetSkillFeatFocusModifier"); } int NWNX_SkillRanks_GetBlindnessPenalty() { - string sFunc = "GetBlindnessPenalty"; - - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); + NWNXCall(NWNX_SkillRanks, "GetBlindnessPenalty"); + return NWNXPopInt(); } void NWNX_SkillRanks_SetBlindnessPenalty(int iModifier) { - string sFunc = "SetBlindnessPenalty"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iModifier); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(iModifier); + NWNXCall(NWNX_SkillRanks, "SetBlindnessPenalty"); } int NWNX_SkillRanks_GetAreaModifier(object oArea, int iSkill) { - string sFunc = "GetAreaModifier"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iSkill); - NWNX_PushArgumentObject(NWNX_SkillRanks, sFunc, oArea); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); - - return NWNX_GetReturnValueInt(NWNX_SkillRanks, sFunc); + NWNXPushInt(iSkill); + NWNXPushObject(oArea); + NWNXCall(NWNX_SkillRanks, "GetAreaModifier"); + return NWNXPopInt(); } void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier) { - string sFunc = "SetAreaModifier"; - - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iModifier); - NWNX_PushArgumentInt(NWNX_SkillRanks, sFunc, iSkill); - NWNX_PushArgumentObject(NWNX_SkillRanks, sFunc, oArea); - NWNX_CallFunction(NWNX_SkillRanks, sFunc); + NWNXPushInt(iModifier); + NWNXPushInt(iSkill); + NWNXPushObject(oArea); + NWNXCall(NWNX_SkillRanks, "SetAreaModifier"); } diff --git a/_module/nss/nwnx_spellcheck.nss b/_module/nss/nwnx_spellcheck.nss index 5c75bee0..45a0e659 100644 --- a/_module/nss/nwnx_spellcheck.nss +++ b/_module/nss/nwnx_spellcheck.nss @@ -2,7 +2,6 @@ /// @brief Functions related to spellchecking /// @{ /// @file nwnx_spellcheck.nss -#include "nwnx" const string NWNX_SpellChecker = "NWNX_SpellChecker"; ///< @private @@ -27,17 +26,14 @@ string NWNX_SpellChecker_GetSuggestSpell(string word); string NWNX_SpellChecker_FindMisspell(string sentence) { - string sFunc = "FindMisspell"; - - NWNX_PushArgumentString(NWNX_SpellChecker, sFunc, sentence); - NWNX_CallFunction(NWNX_SpellChecker, sFunc); - return NWNX_GetReturnValueString(NWNX_SpellChecker, sFunc); + NWNXPushString(sentence); + NWNXCall(NWNX_SpellChecker, "FindMisspell"); + return NWNXPopString(); } string NWNX_SpellChecker_GetSuggestSpell(string word) { - string sFunc = "GetSuggestSpell"; - NWNX_PushArgumentString(NWNX_SpellChecker, sFunc, word); - NWNX_CallFunction(NWNX_SpellChecker, sFunc); - return NWNX_GetReturnValueString(NWNX_SpellChecker, sFunc); + NWNXPushString(word); + NWNXCall(NWNX_SpellChecker, "GetSuggestSpell"); + return NWNXPopString(); } diff --git a/_module/nss/nwnx_sql.nss b/_module/nss/nwnx_sql.nss index fdd583fb..05639340 100644 --- a/_module/nss/nwnx_sql.nss +++ b/_module/nss/nwnx_sql.nss @@ -2,7 +2,6 @@ /// @brief Functions to interface with a database through SQL /// @{ /// @file nwnx_sql.nss -#include "nwnx" const string NWNX_SQL = "NWNX_SQL"; ///< @private @@ -61,6 +60,16 @@ void NWNX_SQL_PreparedObjectId(int position, object value); /// @param base64 Use base64-encoded string format if TRUE (default), otherwise use binary format. void NWNX_SQL_PreparedObjectFull(int position, object value, int base64 = TRUE); +/// @brief Set the NULL value of a prepared statement at given position. +/// @param position The nth ? in a prepared statement. +void NWNX_SQL_PreparedNULL(int position); + +/// @brief Set the Json value of a prepared statement at given position. +/// Convenience function to match other Prepared(type) functions. +/// @param position The nth ? in a prepared statement. +/// @param value The value to set. +void NWNX_SQL_PreparedJson(int position, json value); + /// @brief Like NWNX_SQL_ReadDataInActiveRow, but for full serialized objects. /// /// The object will be deserialized and created in the game. New object ID is returned. @@ -94,27 +103,27 @@ void NWNX_SQL_DestroyPreparedQuery(); /// @return The last error message generated by the database. string NWNX_SQL_GetLastError(); -/// @brief Gets the number of parameteres expected by a prepared query. +/// @brief Gets the number of parameters expected by a prepared query. /// @return Returns the number of parameters expected by the prepared query or -1 if no query is prepared. int NWNX_SQL_GetPreparedQueryParamCount(); +/// @brief Set the next query to return full binary results **ON THE FIRST COLUMN ONLY**. +/// @note This is ONLY needed on PostgreSQL, and ONLY if you want to deserialize raw bytea in NWNX_SQL_ReadFullObjectInActiveRow with base64=FALSE. +void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode(); + /// @} int NWNX_SQL_PrepareQuery(string query) { - string sFunc = "PrepareQuery"; - - NWNX_PushArgumentString(NWNX_SQL, sFunc, query); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(NWNX_SQL, sFunc); + NWNXPushString(query); + NWNXCall(NWNX_SQL, "PrepareQuery"); + return NWNXPopInt(); } int NWNX_SQL_ExecutePreparedQuery() { - string sFunc = "ExecutePreparedQuery"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "ExecutePreparedQuery"); + return NWNXPopInt(); } int NWNX_SQL_ExecuteQuery(string query) @@ -132,123 +141,109 @@ int NWNX_SQL_ExecuteQuery(string query) int NWNX_SQL_ReadyToReadNextRow() { - string sFunc = "ReadyToReadNextRow"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "ReadyToReadNextRow"); + return NWNXPopInt(); } void NWNX_SQL_ReadNextRow() { - string sFunc = "ReadNextRow"; - - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "ReadNextRow"); } string NWNX_SQL_ReadDataInActiveRow(int column = 0) { - string sFunc = "ReadDataInActiveRow"; - - NWNX_PushArgumentInt(NWNX_SQL, sFunc, column); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(NWNX_SQL, sFunc); + NWNXPushInt(column); + NWNXCall(NWNX_SQL, "ReadDataInActiveRow"); + return NWNXPopString(); } void NWNX_SQL_PreparedInt(int position, int value) { - string sFunc = "PreparedInt"; - - NWNX_PushArgumentInt(NWNX_SQL, sFunc, value); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushInt(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedInt"); } void NWNX_SQL_PreparedString(int position, string value) { - string sFunc = "PreparedString"; - - NWNX_PushArgumentString(NWNX_SQL, sFunc, value); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, position); - NWNX_CallFunction(NWNX_SQL, sFunc); - + NWNXPushString(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedString"); } void NWNX_SQL_PreparedFloat(int position, float value) { - string sFunc = "PreparedFloat"; - - NWNX_PushArgumentFloat(NWNX_SQL, sFunc, value); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, position); - NWNX_CallFunction(NWNX_SQL, sFunc); - + NWNXPushFloat(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedFloat"); } void NWNX_SQL_PreparedObjectId(int position, object value) { - string sFunc = "PreparedObjectId"; - - NWNX_PushArgumentObject(NWNX_SQL, sFunc, value); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, position); - NWNX_CallFunction(NWNX_SQL, sFunc); - + NWNXPushObject(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedObjectId"); } void NWNX_SQL_PreparedObjectFull(int position, object value, int base64 = TRUE) { - string sFunc = "PreparedObjectFull"; - - NWNX_PushArgumentInt(NWNX_SQL, sFunc, base64); - NWNX_PushArgumentObject(NWNX_SQL, sFunc, value); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, position); - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXPushInt(base64); + NWNXPushObject(value); + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedObjectFull"); } +void NWNX_SQL_PreparedNULL(int position) +{ + NWNXPushInt(position); + NWNXCall(NWNX_SQL, "PreparedNULL"); +} +void NWNX_SQL_PreparedJson(int position, json value) +{ + // Dump to string and continue as a string from here. + // Famously assuming we're sent valid Json here. + NWNX_SQL_PreparedString(position, JsonDump(value)); +} + object NWNX_SQL_ReadFullObjectInActiveRow(int column = 0, object owner = OBJECT_INVALID, float x = 0.0, float y = 0.0, float z = 0.0, int base64 = TRUE) { - string sFunc = "ReadFullObjectInActiveRow"; - - NWNX_PushArgumentInt(NWNX_SQL, sFunc, base64); - NWNX_PushArgumentFloat(NWNX_SQL, sFunc, z); - NWNX_PushArgumentFloat(NWNX_SQL, sFunc, y); - NWNX_PushArgumentFloat(NWNX_SQL, sFunc, x); - NWNX_PushArgumentObject(NWNX_SQL, sFunc, owner); - NWNX_PushArgumentInt(NWNX_SQL, sFunc, column); - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueObject(NWNX_SQL, sFunc); + NWNXPushInt(base64); + NWNXPushFloat(z); + NWNXPushFloat(y); + NWNXPushFloat(x); + NWNXPushObject(owner); + NWNXPushInt(column); + NWNXCall(NWNX_SQL, "ReadFullObjectInActiveRow"); + return NWNXPopObject(); } int NWNX_SQL_GetAffectedRows() { - string sFunc = "GetAffectedRows"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "GetAffectedRows"); + return NWNXPopInt(); } string NWNX_SQL_GetDatabaseType() { - string sFunc = "GetDatabaseType"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "GetDatabaseType"); + return NWNXPopString(); } void NWNX_SQL_DestroyPreparedQuery() { - string sFunc = "DestroyPreparedQuery"; - - NWNX_CallFunction(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "DestroyPreparedQuery"); } string NWNX_SQL_GetLastError() { - string sFunc = "GetLastError"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueString(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "GetLastError"); + return NWNXPopString(); } int NWNX_SQL_GetPreparedQueryParamCount() { - string sFunc = "GetPreparedQueryParamCount"; - - NWNX_CallFunction(NWNX_SQL, sFunc); - return NWNX_GetReturnValueInt(NWNX_SQL, sFunc); + NWNXCall(NWNX_SQL, "GetPreparedQueryParamCount"); + return NWNXPopInt(); +} + +void NWNX_SQL_PostgreSQL_SetNextQueryResultsBinaryMode() +{ + NWNXCall(NWNX_SQL, "PostgreSQL_SetNextQueryResultsBinaryMode"); } diff --git a/_module/nss/nwnx_store.nss b/_module/nss/nwnx_store.nss new file mode 100644 index 00000000..8f6d2524 --- /dev/null +++ b/_module/nss/nwnx_store.nss @@ -0,0 +1,106 @@ +/// @addtogroup store +/// @brief Functions exposing additional store properties. +/// @{ +/// @file nwnx_store.nss + +const string NWNX_Store = "NWNX_Store"; ///< @private + +/// @brief Return status of a base item purchase status. +/// @param oStore The store object. +/// @param nBaseItem A BASE_ITEM_* value +/// @return TRUE if the quest has been completed. -1 if the player does not have the journal entry. +int NWNX_Store_GetIsRestrictedBuyItem(object oStore, int nBaseItem); + +/// @brief Return the blackmarket mark down of a store +/// @param oStore The store object. +/// @return mark down of a store, -1 on error +int NWNX_Store_GetBlackMarketMarkDown(object oStore); + +/// @brief Set the blackmarket mark down of a store +/// @param oStore The store object. +/// @param nValue The amount. +void NWNX_Store_SetBlackMarketMarkDown(object oStore, int nValue); + +/// @brief Return the mark down of a store +/// @param oStore The store object. +/// @return mark down of a store, -1 on error +int NWNX_Store_GetMarkDown(object oStore); + +/// @brief Set the mark down of a store +/// @param oStore The store object. +/// @param nValue The amount. +void NWNX_Store_SetMarkDown(object oStore, int nValue); + +/// @brief Return the mark up of a store +/// @param oStore The store object. +/// @return mark up of a store, -1 on error +int NWNX_Store_GetMarkUp(object oStore); + +/// @brief Set the mark up of a store +/// @param oStore The store object. +/// @param nValue The amount. +void NWNX_Store_SetMarkUp(object oStore, int nValue); + +/// @brief Return current customer count +/// @param oStore The store object. +/// @return count, or -1 on error +int NWNX_Store_GetCurrentCustomersCount(object oStore); + +/// @} + +int NWNX_Store_GetIsRestrictedBuyItem(object oStore, int nBaseItem) +{ + NWNXPushInt(nBaseItem); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetIsRestrictedBuyItem"); + return NWNXPopInt(); +} + +int NWNX_Store_GetBlackMarketMarkDown(object oStore) +{ + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetBlackMarketMarkDown"); + return NWNXPopInt(); +} + +void NWNX_Store_SetBlackMarketMarkDown(object oStore, int nValue) +{ + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetBlackMarketMarkDown"); +} + +int NWNX_Store_GetMarkDown(object oStore) +{ + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetMarkDown"); + return NWNXPopInt(); +} + +void NWNX_Store_SetMarkDown(object oStore, int nValue) +{ + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetMarkDown"); +} + +int NWNX_Store_GetMarkUp(object oStore) +{ + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetMarkUp"); + return NWNXPopInt(); +} + +void NWNX_Store_SetMarkUp(object oStore, int nValue) +{ + NWNXPushInt(nValue); + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "SetMarkUp"); +} + +int NWNX_Store_GetCurrentCustomersCount(object oStore) +{ + NWNXPushObject(oStore); + NWNXCall(NWNX_Store, "GetCurrentCustomersCount"); + return NWNXPopInt(); +} diff --git a/_module/nss/nwnx_tileset.nss b/_module/nss/nwnx_tileset.nss index 3b9f71db..fa07a379 100644 --- a/_module/nss/nwnx_tileset.nss +++ b/_module/nss/nwnx_tileset.nss @@ -2,7 +2,6 @@ /// @brief An advanced plugin that exposes additional tileset and tile properties and allows builders to override the tiles of an area created with CreateArea(). /// @{ /// @file nwnx_tileset.nss -#include "nwnx" const string NWNX_Tileset = "NWNX_Tileset"; ///< @private @@ -95,11 +94,12 @@ string NWNX_Tileset_GetTilesetCrosser(string sTileset, int nIndex); /// @return A NWNX_Tileset_TilesetGroupData struct. struct NWNX_Tileset_TilesetGroupData NWNX_Tileset_GetTilesetGroupData(string sTileset, int nIndex); -/// @brief Get tile ID of the tile at nIndex. -/// @note NWNX_Tileset_GetTilesetGroupData() needs to be called first. -/// @param nIndex The index of the tile. Range: (NWNX_Tileset_TilesetGroupData.nRows * NWNX_Tileset_TilesetGroupData.nColumns) > nIndex >= 0 +/// @brief Get the tile ID at nTileIndex in nGroupIndex of sTileset. +/// @param sTileset The tileset. +/// @param nGroupIndex The index of the group. Range: NWNX_Tileset_TilesetData.nNumGroups > nGroupIndex >= 0 +/// @param nTileIndex The index of the tile. Range: (NWNX_Tileset_TilesetGroupData.nRows * NWNX_Tileset_TilesetGroupData.nColumns) > nTileIndex >= 0 /// @return The tile ID or 0 on error. -int NWNX_Tileset_GetTilesetGroupTile(int nIndex); +int NWNX_Tileset_GetTilesetGroupTile(string sTileset, int nGroupIndex, int nTileIndex); /// @brief Get the model name of a tile in sTileset. /// @param sTileset The tileset. @@ -165,207 +165,160 @@ void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex); struct NWNX_Tileset_TilesetData NWNX_Tileset_GetTilesetData(string sTileset) { - string sFunc = "GetTilesetData"; - - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetData"); struct NWNX_Tileset_TilesetData str; - str.bHasHeightTransition = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.bInterior = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.sUnlocalizedName = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.nDisplayNameStrRef = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.sFloorTerrain = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sDefaultTerrain = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sBorderTerrain = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.nNumGroups = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.nNumCrossers = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.nNumTerrain = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.fHeightTransition = NWNX_GetReturnValueFloat(NWNX_Tileset, sFunc); - str.nNumTileData = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - + str.bHasHeightTransition = NWNXPopInt(); + str.bInterior = NWNXPopInt(); + str.sUnlocalizedName = NWNXPopString(); + str.nDisplayNameStrRef = NWNXPopInt(); + str.sFloorTerrain = NWNXPopString(); + str.sDefaultTerrain = NWNXPopString(); + str.sBorderTerrain = NWNXPopString(); + str.nNumGroups = NWNXPopInt(); + str.nNumCrossers = NWNXPopInt(); + str.nNumTerrain = NWNXPopInt(); + str.fHeightTransition = NWNXPopFloat(); + str.nNumTileData = NWNXPopInt(); return str; } string NWNX_Tileset_GetTilesetTerrain(string sTileset, int nIndex) { - string sFunc = "GetTilesetTerrain"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueString(NWNX_Tileset, sFunc); + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetTerrain"); + return NWNXPopString(); } string NWNX_Tileset_GetTilesetCrosser(string sTileset, int nIndex) { - string sFunc = "GetTilesetCrosser"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueString(NWNX_Tileset, sFunc); + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetCrosser"); + return NWNXPopString(); } struct NWNX_Tileset_TilesetGroupData NWNX_Tileset_GetTilesetGroupData(string sTileset, int nIndex) { - string sFunc = "GetTilesetGroupData"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - + NWNXPushInt(nIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetGroupData"); struct NWNX_Tileset_TilesetGroupData str; - str.nColumns = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.nRows = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.nStrRef = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - str.sName = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - + str.nColumns = NWNXPopInt(); + str.nRows = NWNXPopInt(); + str.nStrRef = NWNXPopInt(); + str.sName = NWNXPopString(); return str; } -int NWNX_Tileset_GetTilesetGroupTile(int nIndex) +int NWNX_Tileset_GetTilesetGroupTile(string sTileset, int nGroupIndex, int nTileIndex) { - string sFunc = "GetTilesetGroupTile"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); + NWNXPushInt(nTileIndex); + NWNXPushInt(nGroupIndex); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTilesetGroupTile"); + return NWNXPopInt(); } string NWNX_Tileset_GetTileModel(string sTileset, int nTileID) { - string sFunc = "GetTileModel"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nTileID); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueString(NWNX_Tileset, sFunc); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileModel"); + return NWNXPopString(); } string NWNX_Tileset_GetTileMinimapTexture(string sTileset, int nTileID) { - string sFunc = "GetTileMinimapTexture"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nTileID); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueString(NWNX_Tileset, sFunc); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileMinimapTexture"); + return NWNXPopString(); } struct NWNX_Tileset_TileEdgesAndCorners NWNX_Tileset_GetTileEdgesAndCorners(string sTileset, int nTileID) { - string sFunc = "GetTileEdgesAndCorners"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nTileID); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileEdgesAndCorners"); struct NWNX_Tileset_TileEdgesAndCorners str; - str.sLeft = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sBottomLeft = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sBottom = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sBottomRight = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sRight = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sTopRight = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sTop = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - str.sTopLeft = NWNX_GetReturnValueString(NWNX_Tileset, sFunc); - + str.sLeft = NWNXPopString(); + str.sBottomLeft = NWNXPopString(); + str.sBottom = NWNXPopString(); + str.sBottomRight = NWNXPopString(); + str.sRight = NWNXPopString(); + str.sTopRight = NWNXPopString(); + str.sTop = NWNXPopString(); + str.sTopLeft = NWNXPopString(); return str; } int NWNX_Tileset_GetTileNumDoors(string sTileset, int nTileID) { - string sFunc = "GetTileNumDoors"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nTileID); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileNumDoors"); + return NWNXPopInt(); } struct NWNX_Tileset_TileDoorData NWNX_Tileset_GetTileDoorData(string sTileset, int nTileID, int nIndex = 0) { - string sFunc = "GetTileDoorData"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nTileID); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileset); - NWNX_CallFunction(NWNX_Tileset, sFunc); - + NWNXPushInt(nIndex); + NWNXPushInt(nTileID); + NWNXPushString(sTileset); + NWNXCall(NWNX_Tileset, "GetTileDoorData"); struct NWNX_Tileset_TileDoorData str; - str.fOrientation = NWNX_GetReturnValueFloat(NWNX_Tileset, sFunc); - str.fZ = NWNX_GetReturnValueFloat(NWNX_Tileset, sFunc); - str.fY = NWNX_GetReturnValueFloat(NWNX_Tileset, sFunc); - str.fX = NWNX_GetReturnValueFloat(NWNX_Tileset, sFunc); - str.nType = NWNX_GetReturnValueInt(NWNX_Tileset, sFunc); - + str.fOrientation = NWNXPopFloat(); + str.fZ = NWNXPopFloat(); + str.fY = NWNXPopFloat(); + str.fX = NWNXPopFloat(); + str.nType = NWNXPopInt(); return str; } void NWNX_Tileset_SetAreaTileOverride(string sAreaResRef, string sOverrideName) { - string sFunc = "SetAreaTileOverride"; - - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sOverrideName); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sAreaResRef); - - NWNX_CallFunction(NWNX_Tileset, sFunc); + NWNXPushString(sOverrideName); + NWNXPushString(sAreaResRef); + NWNXCall(NWNX_Tileset, "SetAreaTileOverride"); } void NWNX_Tileset_CreateTileOverride(string sOverrideName, string sTileSet, int nWidth, int nHeight) { - string sFunc = "CreateTileOverride"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nHeight); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nWidth); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sTileSet); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sOverrideName); - - NWNX_CallFunction(NWNX_Tileset, sFunc); + NWNXPushInt(nHeight); + NWNXPushInt(nWidth); + NWNXPushString(sTileSet); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "CreateTileOverride"); } void NWNX_Tileset_DeleteTileOverride(string sOverrideName) { - string sFunc = "DeleteTileOverride"; - - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sOverrideName); - - NWNX_CallFunction(NWNX_Tileset, sFunc); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "DeleteTileOverride"); } void NWNX_Tileset_SetOverrideTileData(string sOverrideName, int nIndex, struct NWNX_Tileset_CustomTileData strCustomTileData) { - string sFunc = "SetOverrideTileData"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.bAnimLoop3); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.bAnimLoop2); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.bAnimLoop1); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nSourceLightColor2); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nSourceLightColor1); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nMainLightColor2); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nMainLightColor1); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nHeight); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nOrientation); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, strCustomTileData.nTileID); - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sOverrideName); - - NWNX_CallFunction(NWNX_Tileset, sFunc); + NWNXPushInt(strCustomTileData.bAnimLoop3); + NWNXPushInt(strCustomTileData.bAnimLoop2); + NWNXPushInt(strCustomTileData.bAnimLoop1); + NWNXPushInt(strCustomTileData.nSourceLightColor2); + NWNXPushInt(strCustomTileData.nSourceLightColor1); + NWNXPushInt(strCustomTileData.nMainLightColor2); + NWNXPushInt(strCustomTileData.nMainLightColor1); + NWNXPushInt(strCustomTileData.nHeight); + NWNXPushInt(strCustomTileData.nOrientation); + NWNXPushInt(strCustomTileData.nTileID); + NWNXPushInt(nIndex); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "SetOverrideTileData"); } void NWNX_Tileset_DeleteOverrideTileData(string sOverrideName, int nIndex) { - string sFunc = "DeleteOverrideTileData"; - - NWNX_PushArgumentInt(NWNX_Tileset, sFunc, nIndex); - NWNX_PushArgumentString(NWNX_Tileset, sFunc, sOverrideName); - - NWNX_CallFunction(NWNX_Tileset, sFunc); + NWNXPushInt(nIndex); + NWNXPushString(sOverrideName); + NWNXCall(NWNX_Tileset, "DeleteOverrideTileData"); } diff --git a/_module/nss/nwnx_time.nss b/_module/nss/nwnx_time.nss index 1e4e71bf..7b1788b7 100644 --- a/_module/nss/nwnx_time.nss +++ b/_module/nss/nwnx_time.nss @@ -2,18 +2,22 @@ /// @brief Provides various time related functions /// @{ /// @file nwnx_time.nss -#include "nwnx" +#include "nwnx_util" +#include "inc_sqlite_time" const string NWNX_Time = "NWNX_Time"; ///< @private /// @brief Returns the current date. +/// @deprecated Use SQLite functions (see inc_sqlite_time). This will be removed in future NWNX releases. /// @return The date in the format (mm/dd/yyyy). string NWNX_Time_GetSystemDate(); /// @brief Returns current time. +/// @deprecated Use SQLite functions (see inc_sqlite_time). This will be removed in future NWNX releases. /// @return The current time in the format (24:mm:ss). string NWNX_Time_GetSystemTime(); +/// @deprecated Use SQLite functions (see inc_sqlite_time). This will be removed in future NWNX releases. /// @return Returns the number of seconds since midnight on January 1, 1970. int NWNX_Time_GetTimeStamp(); @@ -24,6 +28,7 @@ struct NWNX_Time_HighResTimestamp int microseconds; ///< Microseconds }; +/// @deprecated Use NWNX_Util_GetHighResTimeStamp(). This will be removed in future NWNX releases. /// @return Returns the number of microseconds since midnight on January 1, 1970. struct NWNX_Time_HighResTimestamp NWNX_Time_GetHighResTimeStamp(); @@ -31,33 +36,28 @@ struct NWNX_Time_HighResTimestamp NWNX_Time_GetHighResTimeStamp(); string NWNX_Time_GetSystemDate() { - string sFunc = "GetSystemDate"; - NWNX_CallFunction(NWNX_Time, sFunc); - return NWNX_GetReturnValueString(NWNX_Time, sFunc); + WriteTimestampedLogEntry("WARNING: NWNX_Time is deprecated. You should migrate to SQLite based functions (see inc_sqlite_time)."); + return SQLite_GetSystemDate(); } string NWNX_Time_GetSystemTime() { - string sFunc = "GetSystemTime"; - NWNX_CallFunction(NWNX_Time, sFunc); - return NWNX_GetReturnValueString(NWNX_Time, sFunc); + WriteTimestampedLogEntry("WARNING: NWNX_Time is deprecated. You should migrate to SQLite based functions (see inc_sqlite_time)."); + return SQLite_GetSystemTime(); } int NWNX_Time_GetTimeStamp() { - string sFunc = "GetTimeStamp"; - - NWNX_CallFunction(NWNX_Time, sFunc); - return NWNX_GetReturnValueInt(NWNX_Time, sFunc); + WriteTimestampedLogEntry("WARNING: NWNX_Time is deprecated. You should migrate to SQLite based functions (see inc_sqlite_time)."); + return SQLite_GetTimeStamp(); } struct NWNX_Time_HighResTimestamp NWNX_Time_GetHighResTimeStamp() { + WriteTimestampedLogEntry("WARNING: NWNX_Time is deprecated. NWNX_Time_GetHighResTimeStamp is moving to NWNX_Util."); + struct NWNX_Util_HighResTimestamp u = NWNX_Util_GetHighResTimeStamp(); struct NWNX_Time_HighResTimestamp t; - string sFunc = "GetHighResTimeStamp"; - - NWNX_CallFunction(NWNX_Time, sFunc); - t.microseconds = NWNX_GetReturnValueInt(NWNX_Time, sFunc); - t.seconds = NWNX_GetReturnValueInt(NWNX_Time, sFunc); + t.seconds = u.seconds; + t.microseconds = u.microseconds; return t; } diff --git a/_module/nss/nwnx_util.nss b/_module/nss/nwnx_util.nss index 929a5f62..1de3d14d 100644 --- a/_module/nss/nwnx_util.nss +++ b/_module/nss/nwnx_util.nss @@ -2,7 +2,6 @@ /// @brief Provides various utility functions that don't have a better home /// @{ /// @file nwnx_util.nss -#include "nwnx" const string NWNX_Util = "NWNX_Util"; ///< @private @@ -35,6 +34,13 @@ struct NWNX_Util_WorldTime int nTimeOfDay; ///< The time of day }; +/// @brief A high resolution timestamp +struct NWNX_Util_HighResTimestamp +{ + int seconds; ///< Seconds since epoch + int microseconds; ///< Microseconds +}; + /// @brief Gets the name of the currently executing script. /// @note If depth is > 0, it will return the name of the script that called this one via ExecuteScript(). /// @param depth to seek the executing script. @@ -51,6 +57,14 @@ string NWNX_Util_GetAsciiTableString(); /// @return The hashed string as an integer. int NWNX_Util_Hash(string str); +/// @brief Gets the last modified timestamp (mtime) of the module file in seconds. +/// @return The mtime of the module file. +int NWNX_Util_GetModuleMtime(); + +/// @brief Gets the module short file name. +/// @return The module file as a string. +string NWNX_Util_GetModuleFile(); + /// @brief Gets the value of customTokenNumber. /// @param customTokenNumber The token number to query. /// @return The string representation of the token value. @@ -61,7 +75,6 @@ string NWNX_Util_GetCustomToken(int customTokenNumber); /// @return The converted itemproperty. itemproperty NWNX_Util_EffectToItemProperty(effect e); -/// /// @brief Convert an itemproperty type to an effect type. /// @param ip The itemproperty to convert to an effect. /// @return The converted effect. @@ -72,12 +85,6 @@ effect NWNX_Util_ItemPropertyToEffect(itemproperty ip); /// @return The new string without any color codes. string NWNX_Util_StripColors(string str); -/// @brief Determines if the supplied resref exists. -/// @param resref The resref to check. -/// @param type The @ref resref_types "Resref Type". -/// @return TRUE/FALSE -int NWNX_Util_IsValidResRef(string resref, int type = NWNX_UTIL_RESREF_TYPE_CREATURE); - /// @brief Retrieves an environment variable. /// @param sVarname The environment variable to query. /// @return The value of the environment variable. @@ -97,12 +104,6 @@ void NWNX_Util_SetMinutesPerHour(int minutes); /// @return The url encoded string. string NWNX_Util_EncodeStringForURL(string str); -/// @anchor twoda_row_count -/// @brief Gets the row count for a 2da. -/// @param str The 2da to check (do not include the .2da). -/// @return The amount of rows in the 2da. -int NWNX_Util_Get2DARowCount(string str); - /// @brief Get the first resref of nType. /// @param nType A @ref resref_types "Resref Type". /// @param sRegexFilter Lets you filter out resrefs using a regexfilter. @@ -116,11 +117,6 @@ string NWNX_Util_GetFirstResRef(int nType, string sRegexFilter = "", int bModule /// @return The next resref found or "" if none is found. string NWNX_Util_GetNextResRef(); -/// @brief Get the ticks per second of the server. -/// @remark Useful to dynamically detect lag and adjust behavior accordingly. -/// @return The ticks per second. -int NWNX_Util_GetServerTicksPerSecond(); - /// @brief Get the last created object. /// @param nObjectType Does not take the NWScript OBJECT_TYPE_* constants. /// Use NWNX_Consts_TranslateNWScriptObjectType() to get their NWNX equivalent. @@ -137,12 +133,6 @@ object NWNX_Util_GetLastCreatedObject(int nObjectType, int nNthLast = 1); /// @return "" on success, or the compilation error. string NWNX_Util_AddScript(string sFileName, string sScriptData, int bWrapIntoMain = FALSE, string sAlias = "NWNX"); -/// @brief Gets the contents of a .nss script file as a string. -/// @param sScriptName The name of the script to get the contents of. -/// @param nMaxLength The max length of the return string, -1 to get everything -/// @return The script file contents or "" on error. -string NWNX_Util_GetNSSContents(string sScriptName, int nMaxLength = -1); - /// @brief Adds a nss file to the UserDirectory/nwnx folder, or to the location of sAlias. /// @note Will override existing nss files that are in the module /// @param sFileName The script filename without extension, 16 or less characters. @@ -183,12 +173,6 @@ int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk) /// @param sCommand The name of the command. void NWNX_Util_UnregisterServerConsoleCommand(string sCommand); -/// @brief Determines if the given plugin exists and is enabled. -/// @param sPlugin The name of the plugin to check. This is the case sensitive plugin name as used by NWNX_CallFunction, NWNX_PushArgumentX -/// @note Example usage: NWNX_Util_PluginExists("NWNX_Creature"); -/// @return TRUE if the plugin exists and is enabled, otherwise FALSE. -int NWNX_Util_PluginExists(string sPlugin); - /// @brief Gets the server's current working user folder. /// @return The absolute path of the server's home directory (-userDirectory) string NWNX_Util_GetUserDirectory(); @@ -237,366 +221,370 @@ int NWNX_Util_GetScriptParamIsSet(string sParamName); /// @param nDawnHour The new dawn hour void NWNX_Util_SetDawnHour(int nDawnHour); +/// @brief Get the module dawn hour. +/// @return The dawn hour +int NWNX_Util_GetDawnHour(); + /// @brief Set the module dusk hour. /// @param nDuskHour The new dusk hour void NWNX_Util_SetDuskHour(int nDuskHour); +/// @brief Get the module dusk hour. +/// @return The dusk hour +int NWNX_Util_GetDuskHour(); + +/// @return Returns the number of microseconds since midnight on January 1, 1970. +struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp(); + +/// @return Return name of a terminal, "" if not a TTY +string NWNX_Util_GetTTY(); + +/// @brief Set the currently running script event. +/// @param nEventID The ID of the event. +void NWNX_Util_SetCurrentlyRunningEvent(int nEventID); + +/// @brief Calculate the levenshtein distance of two strings +/// @param sString The string to compare with. +/// @param sCompareTo The string to compare sString to. +/// @return The number of characters different between the compared strings. +int NWNX_Util_GetStringLevenshteinDistance(string sString, string sCompareTo); + +/// @brief Sends a full object update of oObjectToUpdate to all clients +/// @param oObjectToUpdate The object to update +/// @param oPlayer The player for which the objects needs to update, OBJECT_INVALID for all players +void NWNX_Util_UpdateClientObject(object oObjectToUpdate, object oPlayer = OBJECT_INVALID); + +/// @brief Clean a resource directory, deleting all files of nResType. +/// @param sAlias A resource directory alias, NWNX or one defined in the custom resource directory file. +/// @param nResType The type of file to delete or 0xFFFF for all types. +/// @return TRUE if successful, FALSE on error. +int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF); + +/// @brief Return the filename of the tlk file. +/// @return The name +string NWNX_Util_GetModuleTlkFile(); + +/// @brief Update a resource directory by having ResMan reindex it. +/// @param sAlias A resource directory alias, eg: TEMP +/// @return TRUE if successful, FALSE on error. +int NWNX_Util_UpdateResourceDirectory(string sAlias); + /// @} string NWNX_Util_GetCurrentScriptName(int depth = 0) { - string sFunc = "GetCurrentScriptName"; - NWNX_PushArgumentInt(NWNX_Util, sFunc, depth); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushInt(depth); + NWNXCall(NWNX_Util, "GetCurrentScriptName"); + return NWNXPopString(); } string NWNX_Util_GetAsciiTableString() { - string sFunc = "GetAsciiTableString"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetAsciiTableString"); + return NWNXPopString(); } int NWNX_Util_Hash(string str) { - string sFunc = "Hash"; - NWNX_PushArgumentString(NWNX_Util, sFunc, str); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(str); + NWNXCall(NWNX_Util, "Hash"); + return NWNXPopInt(); +} + +int NWNX_Util_GetModuleMtime() +{ + NWNXCall(NWNX_Util, "GetModuleMtime"); + return NWNXPopInt(); +} + +string NWNX_Util_GetModuleFile() +{ + NWNXCall(NWNX_Util, "GetModuleFile"); + return NWNXPopString(); } string NWNX_Util_GetCustomToken(int customTokenNumber) { - string sFunc = "GetCustomToken"; - NWNX_PushArgumentInt(NWNX_Util, sFunc, customTokenNumber); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushInt(customTokenNumber); + NWNXCall(NWNX_Util, "GetCustomToken"); + return NWNXPopString(); } itemproperty NWNX_Util_EffectToItemProperty(effect e) { - string sFunc = "EffectTypeCast"; - NWNX_PushArgumentEffect(NWNX_Util, sFunc, e); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueItemProperty(NWNX_Util, sFunc); + NWNXPushEffect(e); + NWNXCall(NWNX_Util, "EffectTypeCast"); + return NWNXPopItemProperty(); } effect NWNX_Util_ItemPropertyToEffect(itemproperty ip) { - string sFunc = "EffectTypeCast"; - NWNX_PushArgumentItemProperty(NWNX_Util, sFunc, ip); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueEffect(NWNX_Util, sFunc); + NWNXPushItemProperty(ip); + NWNXCall(NWNX_Util, "EffectTypeCast"); + return NWNXPopEffect(); } string NWNX_Util_StripColors(string str) { - string sFunc = "StripColors"; - NWNX_PushArgumentString(NWNX_Util, sFunc, str); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); -} - -int NWNX_Util_IsValidResRef(string resref, int type = NWNX_UTIL_RESREF_TYPE_CREATURE) -{ - string sFunc = "IsValidResRef"; - NWNX_PushArgumentInt(NWNX_Util, sFunc, type); - NWNX_PushArgumentString(NWNX_Util, sFunc, resref); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(str); + NWNXCall(NWNX_Util, "StripColors"); + return NWNXPopString(); } string NWNX_Util_GetEnvironmentVariable(string sVarname) { - string sFunc = "GetEnvironmentVariable"; - NWNX_PushArgumentString(NWNX_Util, sFunc, sVarname); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushString(sVarname); + NWNXCall(NWNX_Util, "GetEnvironmentVariable"); + return NWNXPopString(); } int NWNX_Util_GetMinutesPerHour() { - string sFunc = "GetMinutesPerHour"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetMinutesPerHour"); + return NWNXPopInt(); } void NWNX_Util_SetMinutesPerHour(int minutes) { - string sFunc = "SetMinutesPerHour"; - NWNX_PushArgumentInt(NWNX_Util, sFunc, minutes); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(minutes); + NWNXCall(NWNX_Util, "SetMinutesPerHour"); } string NWNX_Util_EncodeStringForURL(string sURL) { - string sFunc = "EncodeStringForURL"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sURL); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); -} - -int NWNX_Util_Get2DARowCount(string str) -{ - string sFunc = "Get2DARowCount"; - NWNX_PushArgumentString(NWNX_Util, sFunc, str); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sURL); + NWNXCall(NWNX_Util, "EncodeStringForURL"); + return NWNXPopString(); } string NWNX_Util_GetFirstResRef(int nType, string sRegexFilter = "", int bModuleResourcesOnly = TRUE) { - string sFunc = "GetFirstResRef"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, bModuleResourcesOnly); - NWNX_PushArgumentString(NWNX_Util, sFunc, sRegexFilter); - NWNX_PushArgumentInt(NWNX_Util, sFunc, nType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushInt(bModuleResourcesOnly); + NWNXPushString(sRegexFilter); + NWNXPushInt(nType); + NWNXCall(NWNX_Util, "GetFirstResRef"); + return NWNXPopString(); } string NWNX_Util_GetNextResRef() { - string sFunc = "GetNextResRef"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); -} - -int NWNX_Util_GetServerTicksPerSecond() -{ - string sFunc = "GetServerTicksPerSecond"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetNextResRef"); + return NWNXPopString(); } object NWNX_Util_GetLastCreatedObject(int nObjectType, int nNthLast = 1) { - string sFunc = "GetLastCreatedObject"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nNthLast); - NWNX_PushArgumentInt(NWNX_Util, sFunc, nObjectType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Util, sFunc); + NWNXPushInt(nNthLast); + NWNXPushInt(nObjectType); + NWNXCall(NWNX_Util, "GetLastCreatedObject"); + return NWNXPopObject(); } string NWNX_Util_AddScript(string sFileName, string sScriptData, int bWrapIntoMain = FALSE, string sAlias = "NWNX") { - string sFunc = "AddScript"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sAlias); - NWNX_PushArgumentInt(NWNX_Util, sFunc, bWrapIntoMain); - NWNX_PushArgumentString(NWNX_Util, sFunc, sScriptData); - NWNX_PushArgumentString(NWNX_Util, sFunc, sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); -} - -string NWNX_Util_GetNSSContents(string sScriptName, int nMaxLength = -1) -{ - string sFunc = "GetNSSContents"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nMaxLength); - NWNX_PushArgumentString(NWNX_Util, sFunc, sScriptName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushString(sAlias); + NWNXPushInt(bWrapIntoMain); + NWNXPushString(sScriptData); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "AddScript"); + return NWNXPopString(); } int NWNX_Util_AddNSSFile(string sFileName, string sContents, string sAlias = "NWNX") { - string sFunc = "AddNSSFile"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sAlias); - NWNX_PushArgumentString(NWNX_Util, sFunc, sContents); - NWNX_PushArgumentString(NWNX_Util, sFunc, sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sAlias); + NWNXPushString(sContents); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "AddNSSFile"); + return NWNXPopInt(); } int NWNX_Util_RemoveNWNXResourceFile(string sFileName, int nType, string sAlias = "NWNX") { - string sFunc = "RemoveNWNXResourceFile"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sAlias); - NWNX_PushArgumentInt(NWNX_Util, sFunc, nType); - NWNX_PushArgumentString(NWNX_Util, sFunc, sFileName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sAlias); + NWNXPushInt(nType); + NWNXPushString(sFileName); + NWNXCall(NWNX_Util, "RemoveNWNXResourceFile"); + return NWNXPopInt(); } void NWNX_Util_SetInstructionLimit(int nInstructionLimit) { - string sFunc = "SetInstructionLimit"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nInstructionLimit); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nInstructionLimit); + NWNXCall(NWNX_Util, "SetInstructionLimit"); } int NWNX_Util_GetInstructionLimit() { - string sFunc = "GetInstructionLimit"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetInstructionLimit"); + return NWNXPopInt(); } void NWNX_Util_SetInstructionsExecuted(int nInstructions) { - string sFunc = "SetInstructionsExecuted"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nInstructions); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nInstructions); + NWNXCall(NWNX_Util, "SetInstructionsExecuted"); } int NWNX_Util_GetInstructionsExecuted() { - string sFunc = "GetInstructionsExecuted"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetInstructionsExecuted"); + return NWNXPopInt(); } int NWNX_Util_RegisterServerConsoleCommand(string sCommand, string sScriptChunk) { - string sFunc = "RegisterServerConsoleCommand"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sScriptChunk); - NWNX_PushArgumentString(NWNX_Util, sFunc, sCommand); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sScriptChunk); + NWNXPushString(sCommand); + NWNXCall(NWNX_Util, "RegisterServerConsoleCommand"); + return NWNXPopInt(); } void NWNX_Util_UnregisterServerConsoleCommand(string sCommand) { - string sFunc = "UnregisterServerConsoleCommand"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sCommand); - NWNX_CallFunction(NWNX_Util, sFunc); -} - -int NWNX_Util_PluginExists(string sPlugin) -{ - string sFunc = "PluginExists"; - NWNX_PushArgumentString(NWNX_Util, sFunc, sPlugin); - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sCommand); + NWNXCall(NWNX_Util, "UnregisterServerConsoleCommand"); } string NWNX_Util_GetUserDirectory() { - string sFunc = "GetUserDirectory"; - NWNX_CallFunction(NWNX_Util, sFunc); - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetUserDirectory"); + return NWNXPopString(); } int NWNX_Util_GetScriptReturnValue() { - string sFunc = "GetScriptReturnValue"; - - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXCall(NWNX_Util, "GetScriptReturnValue"); + return NWNXPopInt(); } object NWNX_Util_CreateDoor(string sResRef, location locLocation, string sNewTag = "", int nAppearanceType = -1) { - string sFunc = "CreateDoor"; - - vector vPosition = GetPositionFromLocation(locLocation); - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nAppearanceType); - NWNX_PushArgumentString(NWNX_Util, sFunc, sNewTag); - NWNX_PushArgumentFloat(NWNX_Util, sFunc, GetFacingFromLocation(locLocation)); - NWNX_PushArgumentFloat(NWNX_Util, sFunc, vPosition.z); - NWNX_PushArgumentFloat(NWNX_Util, sFunc, vPosition.y); - NWNX_PushArgumentFloat(NWNX_Util, sFunc, vPosition.x); - NWNX_PushArgumentObject(NWNX_Util, sFunc, GetAreaFromLocation(locLocation)); - NWNX_PushArgumentString(NWNX_Util, sFunc, sResRef); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueObject(NWNX_Util, sFunc); + NWNXPushInt(nAppearanceType); + NWNXPushString(sNewTag); + NWNXPushLocation(locLocation); + NWNXPushString(sResRef); + NWNXCall(NWNX_Util, "CreateDoor"); + return NWNXPopObject(); } void NWNX_Util_SetItemActivator(object oObject) { - string sFunc = "SetItemActivator"; - - NWNX_PushArgumentObject(NWNX_Util, sFunc, oObject); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushObject(oObject); + NWNXCall(NWNX_Util, "SetItemActivator"); } struct NWNX_Util_WorldTime NWNX_Util_GetWorldTime(float fAdjustment = 0.0f) { - string sFunc = "GetWorldTime"; - - NWNX_PushArgumentFloat(NWNX_Util, sFunc, fAdjustment); - NWNX_CallFunction(NWNX_Util, sFunc); - + NWNXPushFloat(fAdjustment); + NWNXCall(NWNX_Util, "GetWorldTime"); struct NWNX_Util_WorldTime strWorldTime; - strWorldTime.nTimeOfDay = NWNX_GetReturnValueInt(NWNX_Util, sFunc); - strWorldTime.nCalendarDay = NWNX_GetReturnValueInt(NWNX_Util, sFunc); - + strWorldTime.nTimeOfDay = NWNXPopInt(); + strWorldTime.nCalendarDay = NWNXPopInt(); return strWorldTime; } void NWNX_Util_SetResourceOverride(int nResType, string sOldName, string sNewName) { - string sFunc = "SetResourceOverride"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sNewName); - NWNX_PushArgumentString(NWNX_Util, sFunc, sOldName); - NWNX_PushArgumentInt(NWNX_Util, sFunc, nResType); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushString(sNewName); + NWNXPushString(sOldName); + NWNXPushInt(nResType); + NWNXCall(NWNX_Util, "SetResourceOverride"); } string NWNX_Util_GetResourceOverride(int nResType, string sName) { - string sFunc = "GetResourceOverride"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sName); - NWNX_PushArgumentInt(NWNX_Util, sFunc, nResType); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueString(NWNX_Util, sFunc); + NWNXPushString(sName); + NWNXPushInt(nResType); + NWNXCall(NWNX_Util, "GetResourceOverride"); + return NWNXPopString(); } int NWNX_Util_GetScriptParamIsSet(string sParamName) { - string sFunc = "GetScriptParamIsSet"; - - NWNX_PushArgumentString(NWNX_Util, sFunc, sParamName); - NWNX_CallFunction(NWNX_Util, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Util, sFunc); + NWNXPushString(sParamName); + NWNXCall(NWNX_Util, "GetScriptParamIsSet"); + return NWNXPopInt(); } void NWNX_Util_SetDawnHour(int nDawnHour) { - string sFunc = "SetDawnHour"; + NWNXPushInt(nDawnHour); + NWNXCall(NWNX_Util, "SetDawnHour"); +} - NWNX_PushArgumentInt(NWNX_Util, sFunc, nDawnHour); - NWNX_CallFunction(NWNX_Util, sFunc); +int NWNX_Util_GetDawnHour() +{ + NWNXCall(NWNX_Util, "GetDawnHour"); + return NWNXPopInt(); } void NWNX_Util_SetDuskHour(int nDuskHour) { - string sFunc = "SetDuskHour"; - - NWNX_PushArgumentInt(NWNX_Util, sFunc, nDuskHour); - NWNX_CallFunction(NWNX_Util, sFunc); + NWNXPushInt(nDuskHour); + NWNXCall(NWNX_Util, "SetDuskHour"); +} + +int NWNX_Util_GetDuskHour() +{ + NWNXCall(NWNX_Util, "GetDuskHour"); + return NWNXPopInt(); +} + +struct NWNX_Util_HighResTimestamp NWNX_Util_GetHighResTimeStamp() +{ + struct NWNX_Util_HighResTimestamp t; + NWNXCall(NWNX_Util, "GetHighResTimeStamp"); + t.microseconds = NWNXPopInt(); + t.seconds = NWNXPopInt(); + return t; +} + +string NWNX_Util_GetTTY() +{ + NWNXCall(NWNX_Util, "GetTTY"); + return NWNXPopString(); +} + +void NWNX_Util_SetCurrentlyRunningEvent(int nEventID) +{ + NWNXPushInt(nEventID); + NWNXCall(NWNX_Util, "SetCurrentlyRunningEvent"); +} + +int NWNX_Util_GetStringLevenshteinDistance(string sString, string sCompareTo) +{ + NWNXPushString(sCompareTo); + NWNXPushString(sString); + NWNXCall(NWNX_Util, "GetStringLevenshteinDistance"); + return NWNXPopInt(); +} + +void NWNX_Util_UpdateClientObject(object oObjectToUpdate, object oPlayer = OBJECT_INVALID) +{ + NWNXPushObject(oPlayer); + NWNXPushObject(oObjectToUpdate); + NWNXCall(NWNX_Util, "UpdateClientObject"); +} + +int NWNX_Util_CleanResourceDirectory(string sAlias, int nResType = 0xFFFF) +{ + NWNXPushInt(nResType); + NWNXPushString(sAlias); + NWNXCall(NWNX_Util, "CleanResourceDirectory"); + return NWNXPopInt(); +} + +string NWNX_Util_GetModuleTlkFile() +{ + string sFunc = "GetModuleTlkFile"; + NWNXCall(NWNX_Util, sFunc); + return NWNXPopString(); +} + +int NWNX_Util_UpdateResourceDirectory(string sAlias) +{ + NWNXPushString(sAlias); + NWNXCall(NWNX_Util, "UpdateResourceDirectory"); + return NWNXPopInt(); } diff --git a/_module/nss/nwnx_visibility.nss b/_module/nss/nwnx_visibility.nss index 31406370..be70ed0c 100644 --- a/_module/nss/nwnx_visibility.nss +++ b/_module/nss/nwnx_visibility.nss @@ -2,7 +2,6 @@ /// @brief Functions to manipulate visibility of objects both globally or per observer /// @{ /// @file nwnx_visibility.nss -#include "nwnx" const string NWNX_Visibility = "NWNX_Visibility"; ///< @private @@ -57,21 +56,16 @@ void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int n int NWNX_Visibility_GetVisibilityOverride(object oPlayer, object oTarget) { - string sFunc = "GetVisibilityOverride"; - - NWNX_PushArgumentObject(NWNX_Visibility, sFunc, oTarget); - NWNX_PushArgumentObject(NWNX_Visibility, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Visibility, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Visibility, sFunc); + NWNXPushObject(oTarget); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Visibility, "GetVisibilityOverride"); + return NWNXPopInt(); } void NWNX_Visibility_SetVisibilityOverride(object oPlayer, object oTarget, int nOverride) { - string sFunc = "SetVisibilityOverride"; - - NWNX_PushArgumentInt(NWNX_Visibility, sFunc, nOverride); - NWNX_PushArgumentObject(NWNX_Visibility, sFunc, oTarget); - NWNX_PushArgumentObject(NWNX_Visibility, sFunc, oPlayer); - NWNX_CallFunction(NWNX_Visibility, sFunc); + NWNXPushInt(nOverride); + NWNXPushObject(oTarget); + NWNXPushObject(oPlayer); + NWNXCall(NWNX_Visibility, "SetVisibilityOverride"); } diff --git a/_module/nss/nwnx_weapon.nss b/_module/nss/nwnx_weapon.nss index 6f57d15e..eced73f0 100644 --- a/_module/nss/nwnx_weapon.nss +++ b/_module/nss/nwnx_weapon.nss @@ -2,7 +2,6 @@ /// @brief Functions exposing additional weapon properties. /// @{ /// @file nwnx_weapon.nss -#include "nwnx" const string NWNX_Weapon = "NWNX_Weapon"; ///< @private @@ -93,8 +92,8 @@ void NWNX_Weapon_SetGreaterWeaponSpecializationFeat(int nBaseItem, int nFeat); void NWNX_Weapon_SetGreaterWeaponFocusFeat(int nBaseItem, int nFeat); /// @brief Set base item as monk weapon. -/// @note Requires activation of CombatModes plugin for Flurry of Blows. /// @param nBaseItem The base item id. +/// @deprecated Use baseitems.2da. This will be removed in future NWNX releases. void NWNX_Weapon_SetWeaponIsMonkWeapon(int nBaseItem); /// @brief Set plugin options. @@ -126,205 +125,164 @@ void NWNX_Weapon_SetOneHalfStrength(object oWeapon, int nEnable, int bPersist = /// @return FALSE/0 if weapon is not receiving the bonus. TRUE/1 if it does. int NWNX_Weapon_GetOneHalfStrength(object oWeapon); +/// @brief Override the max attack distance of ranged weapons. +/// @param nBaseItem The baseitem id. +/// @param fMax The maximum attack distance. Default is 40.0f. +/// @param fMaxPassive The maximum passive attack distance. Default is 20.0f. Seems to be used by the engine to determine a new nearby target when needed. +/// @param fPreferred The preferred attack distance. See the PrefAttackDist column in baseitems.2da, default seems to be 30.0f for ranged weapons. +/// @note fMaxPassive should probably be lower than fMax, half of fMax seems to be a good start. fPreferred should be at least ~0.5f lower than fMax. +void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, float fMaxPassive, float fPreferred); + /// @} void NWNX_Weapon_SetWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponFocusFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponFocusFeat"); } void NWNX_Weapon_SetEpicWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponFocusFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponFocusFeat"); } void NWNX_Weapon_SetGreaterWeaponFocusFeat(int nBaseItem, int nFeat) { - string sFunc = "SetGreaterWeaponFocusFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetGreaterWeaponFocusFeat"); } void NWNX_Weapon_SetWeaponFinesseSize(int nBaseItem, int nSize) { - string sFunc = "SetWeaponFinesseSize"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nSize); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nSize); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponFinesseSize"); } int NWNX_Weapon_GetWeaponFinesseSize(int nBaseItem) { - string sFunc = "GetWeaponFinesseSize"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Weapon, sFunc); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "GetWeaponFinesseSize"); + return NWNXPopInt(); } void NWNX_Weapon_SetWeaponUnarmed(int nBaseItem) { - string sFunc = "SetWeaponUnarmed"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponUnarmed"); } void NWNX_Weapon_SetWeaponIsMonkWeapon(int nBaseItem) { - string sFunc = "SetWeaponIsMonkWeapon"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + WriteTimestampedLogEntry("NWNX_Weapon_SetWeaponIsMonkWeapon() is deprecated. Please use baseitems.2da instead."); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponIsMonkWeapon"); } void NWNX_Weapon_SetWeaponImprovedCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponImprovedCriticalFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponImprovedCriticalFeat"); } void NWNX_Weapon_SetWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponSpecializationFeat"); } void NWNX_Weapon_SetGreaterWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetGreaterWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetGreaterWeaponSpecializationFeat"); } void NWNX_Weapon_SetEpicWeaponSpecializationFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponSpecializationFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponSpecializationFeat"); } void NWNX_Weapon_SetEpicWeaponOverwhelmingCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponOverwhelmingCriticalFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponOverwhelmingCriticalFeat"); } void NWNX_Weapon_SetEpicWeaponDevastatingCriticalFeat(int nBaseItem, int nFeat) { - string sFunc = "SetEpicWeaponDevastatingCriticalFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetEpicWeaponDevastatingCriticalFeat"); } void NWNX_Weapon_SetWeaponOfChoiceFeat(int nBaseItem, int nFeat) { - string sFunc = "SetWeaponOfChoiceFeat"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nFeat); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nBaseItem); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nFeat); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetWeaponOfChoiceFeat"); } void NWNX_Weapon_SetOption(int nOption, int nVal) { - string sFunc = "SetOption"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nVal); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nOption); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(nVal); + NWNXPushInt(nOption); + NWNXCall(NWNX_Weapon, "SetOption"); } void NWNX_Weapon_SetDevastatingCriticalEventScript(string sScript) { - string sFunc = "SetDevastatingCriticalEventScript"; - - NWNX_PushArgumentString(NWNX_Weapon, sFunc, sScript); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushString(sScript); + NWNXCall(NWNX_Weapon, "SetDevastatingCriticalEventScript"); } void NWNX_Weapon_BypassDevastatingCritical() { - string sFunc = "SetEventData"; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, 1); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, NWNX_WEAPON_SETDATA_DC_BYPASS); - - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(1); + NWNXPushInt(NWNX_WEAPON_SETDATA_DC_BYPASS); + NWNXCall(NWNX_Weapon, "SetEventData"); } struct NWNX_Weapon_DevastatingCriticalEvent_Data NWNX_Weapon_GetDevastatingCriticalEventData() { - string sFunc = "GetEventData"; struct NWNX_Weapon_DevastatingCriticalEvent_Data data; - - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, NWNX_WEAPON_GETDATA_DC); - NWNX_CallFunction(NWNX_Weapon, sFunc); - - data.oWeapon = NWNX_GetReturnValueObject(NWNX_Weapon, sFunc); - data.oTarget = NWNX_GetReturnValueObject(NWNX_Weapon, sFunc); - data.nDamage = NWNX_GetReturnValueInt(NWNX_Weapon, sFunc); - + NWNXPushInt(NWNX_WEAPON_GETDATA_DC); + NWNXCall(NWNX_Weapon, "GetEventData"); + data.oWeapon = NWNXPopObject(); + data.oTarget = NWNXPopObject(); + data.nDamage = NWNXPopInt(); return data; } void NWNX_Weapon_SetOneHalfStrength(object oWeapon, int nEnable, int bPersist = FALSE) { - string sFunc = "SetOneHalfStrength"; - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, bPersist); - NWNX_PushArgumentInt(NWNX_Weapon, sFunc, nEnable); - NWNX_PushArgumentObject(NWNX_Weapon, sFunc, oWeapon); - NWNX_CallFunction(NWNX_Weapon, sFunc); + NWNXPushInt(bPersist); + NWNXPushInt(nEnable); + NWNXPushObject(oWeapon); + NWNXCall(NWNX_Weapon, "SetOneHalfStrength"); } int NWNX_Weapon_GetOneHalfStrength(object oWeapon) { - string sFunc = "GetOneHalfStrength"; - NWNX_PushArgumentObject(NWNX_Weapon, sFunc, oWeapon); - NWNX_CallFunction(NWNX_Weapon, sFunc); - - return NWNX_GetReturnValueInt(NWNX_Weapon, sFunc); + NWNXPushObject(oWeapon); + NWNXCall(NWNX_Weapon, "GetOneHalfStrength"); + return NWNXPopInt(); +} + +void NWNX_Weapon_SetMaxRangedAttackDistanceOverride(int nBaseItem, float fMax, float fMaxPassive, float fPreferred) +{ + NWNXPushFloat(fPreferred); + NWNXPushFloat(fMaxPassive); + NWNXPushFloat(fMax); + NWNXPushInt(nBaseItem); + NWNXCall(NWNX_Weapon, "SetMaxRangedAttackDistanceOverride"); } diff --git a/_module/nss/nwnx_webhook.nss b/_module/nss/nwnx_webhook.nss index 755b6321..2d7e7ed0 100644 --- a/_module/nss/nwnx_webhook.nss +++ b/_module/nss/nwnx_webhook.nss @@ -2,7 +2,6 @@ /// @brief Send messages to external entities through web hooks. /// @{ /// @file nwnx_webhook.nss -#include "nwnx" const string NWNX_WebHook = "NWNX_WebHook"; ///< @private @@ -28,13 +27,12 @@ void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage, void NWNX_WebHook_SendWebHookHTTPS(string host, string path, string message, string username = "", int mrkdwn = 1) { - string sFunc = "SendWebHookHTTPS"; - NWNX_PushArgumentInt(NWNX_WebHook, sFunc, mrkdwn); - NWNX_PushArgumentString(NWNX_WebHook, sFunc, username); - NWNX_PushArgumentString(NWNX_WebHook, sFunc, message); - NWNX_PushArgumentString(NWNX_WebHook, sFunc, path); - NWNX_PushArgumentString(NWNX_WebHook, sFunc, host); - NWNX_CallFunction(NWNX_WebHook, sFunc); + NWNXPushInt(mrkdwn); + NWNXPushString(username); + NWNXPushString(message); + NWNXPushString(path); + NWNXPushString(host); + NWNXCall(NWNX_WebHook, "SendWebHookHTTPS"); } void NWNX_WebHook_ResendWebHookHTTPS(string host, string path, string sMessage, float delay = 0.0f) diff --git a/_module/nwn_erf.exe b/_module/nwn_erf.exe index ae3ee49a..d071908d 100644 Binary files a/_module/nwn_erf.exe and b/_module/nwn_erf.exe differ diff --git a/_module/nwn_gff.exe b/_module/nwn_gff.exe index 7fdf454c..bafc9852 100644 Binary files a/_module/nwn_gff.exe and b/_module/nwn_gff.exe differ diff --git a/_module/utc/cybohunter.utc.json b/_module/utc/cybohunter.utc.json index 7fbf913c..8ffe9e6d 100644 --- a/_module/utc/cybohunter.utc.json +++ b/_module/utc/cybohunter.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 84405, "type": "cexolocstring", "value": { - "0": "Cybohunters are the weakest and most common of all known Hunter robots. They were used to track down dangerous enemies, such as escaped prisoners and fugitives during the Social Wars. They track fleeing characters using special sensors, and kill with all of the special weapons and functions at their command." + "0": "Cybohunters are the weakest and most common of all known Hunter robots. They were used to track down dangerous enemies, such as escaped prisoners and fugitives during the Social Wars. They track fleeing characters using special sensors, and kill with all of the special weapons and functions at their command.", + "id": 84405 } }, "Dex": { @@ -118,10 +118,10 @@ ] }, "FirstName": { - "id": 90392, "type": "cexolocstring", "value": { - "0": "Cybohunter Robot" + "0": "Cybohunter Robot", + "id": 90392 } }, "fortbonus": { diff --git a/_module/utc/dmfi_setting.utc.json b/_module/utc/dmfi_setting.utc.json index f09832af..7e35a17b 100644 --- a/_module/utc/dmfi_setting.utc.json +++ b/_module/utc/dmfi_setting.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 12813, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 12813 } }, "Dex": { @@ -110,10 +110,10 @@ ] }, "FirstName": { - "id": 12814, "type": "cexolocstring", "value": { - "0": "Settings Adjuster" + "0": "Settings Adjuster", + "id": 12814 } }, "fortbonus": { diff --git a/_module/utc/dmfi_voice.utc.json b/_module/utc/dmfi_voice.utc.json index 3253c0a9..092cdf9b 100644 --- a/_module/utc/dmfi_voice.utc.json +++ b/_module/utc/dmfi_voice.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 12813, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 12813 } }, "Dex": { @@ -96,10 +96,10 @@ ] }, "FirstName": { - "id": 12814, "type": "cexolocstring", "value": { - "0": "The Voice" + "0": "The Voice", + "id": 12814 } }, "fortbonus": { diff --git a/_module/utc/exterminator.utc.json b/_module/utc/exterminator.utc.json index 129c0214..1c34131e 100644 --- a/_module/utc/exterminator.utc.json +++ b/_module/utc/exterminator.utc.json @@ -61,9 +61,10 @@ "value": "" }, "Description": { - "id": 84405, "type": "cexolocstring", - "value": {} + "value": { + "id": 84405 + } }, "Dex": { "type": "byte", @@ -123,10 +124,10 @@ ] }, "FirstName": { - "id": 90392, "type": "cexolocstring", "value": { - "0": "Exterminator" + "0": "Exterminator", + "id": 90392 } }, "fortbonus": { diff --git a/_module/utc/exterminator2.utc.json b/_module/utc/exterminator2.utc.json index 3db36eac..e7fbe537 100644 --- a/_module/utc/exterminator2.utc.json +++ b/_module/utc/exterminator2.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 84405, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 84405 } }, "Dex": { @@ -118,10 +118,10 @@ ] }, "FirstName": { - "id": 90392, "type": "cexolocstring", "value": { - "0": "Exterminator" + "0": "Exterminator", + "id": 90392 } }, "fortbonus": { diff --git a/_module/utc/form_queen001.utc.json b/_module/utc/form_queen001.utc.json index 3ab1a802..f5f460b8 100644 --- a/_module/utc/form_queen001.utc.json +++ b/_module/utc/form_queen001.utc.json @@ -642,10 +642,10 @@ "value": "" }, "Description": { - "id": 40602, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 40602 } }, "Dex": { @@ -727,10 +727,10 @@ ] }, "FirstName": { - "id": 2890, "type": "cexolocstring", "value": { - "0": "Skyzzor'n Queen" + "0": "Skyzzor'n Queen", + "id": 2890 } }, "fortbonus": { diff --git a/_module/utc/form_taskmast001.utc.json b/_module/utc/form_taskmast001.utc.json index fbf3c8e5..038bc78c 100644 --- a/_module/utc/form_taskmast001.utc.json +++ b/_module/utc/form_taskmast001.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 40604, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 40604 } }, "Dex": { @@ -146,10 +146,10 @@ ] }, "FirstName": { - "id": 40603, "type": "cexolocstring", "value": { - "0": "Skyzzor'n Sacred Warrior" + "0": "Skyzzor'n Sacred Warrior", + "id": 40603 } }, "fortbonus": { diff --git a/_module/utc/form_warrior001.utc.json b/_module/utc/form_warrior001.utc.json index e3a11fb4..8604d68a 100644 --- a/_module/utc/form_warrior001.utc.json +++ b/_module/utc/form_warrior001.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 40605, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 40605 } }, "Dex": { @@ -146,10 +146,10 @@ ] }, "FirstName": { - "id": 2888, "type": "cexolocstring", "value": { - "0": "Skyzzor'n Warrior" + "0": "Skyzzor'n Warrior", + "id": 2888 } }, "fortbonus": { diff --git a/_module/utc/form_worker001.utc.json b/_module/utc/form_worker001.utc.json index 06a18f5e..9f16a93e 100644 --- a/_module/utc/form_worker001.utc.json +++ b/_module/utc/form_worker001.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 40606, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 40606 } }, "Dex": { @@ -118,10 +118,10 @@ ] }, "FirstName": { - "id": 2887, "type": "cexolocstring", "value": { - "0": "Skyzzor'n Peon" + "0": "Skyzzor'n Peon", + "id": 2887 } }, "fortbonus": { diff --git a/_module/utc/indie.utc.json b/_module/utc/indie.utc.json index d69fbdb7..a297a9b2 100644 --- a/_module/utc/indie.utc.json +++ b/_module/utc/indie.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 86780, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 86780 } }, "Dex": { @@ -104,10 +104,10 @@ ] }, "FirstName": { - "id": 84439, "type": "cexolocstring", "value": { - "0": "Indie" + "0": "Indie", + "id": 84439 } }, "fortbonus": { diff --git a/_module/utc/seeker.utc.json b/_module/utc/seeker.utc.json index a4d2091f..f6e2b5bf 100644 --- a/_module/utc/seeker.utc.json +++ b/_module/utc/seeker.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 12575, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 12575 } }, "Dex": { @@ -118,10 +118,10 @@ ] }, "FirstName": { - "id": 12576, "type": "cexolocstring", "value": { - "0": "Seeker Robot" + "0": "Seeker Robot", + "id": 12576 } }, "fortbonus": { diff --git a/_module/utc/sentryrobot.utc.json b/_module/utc/sentryrobot.utc.json index 66f53dfb..8ac0d316 100644 --- a/_module/utc/sentryrobot.utc.json +++ b/_module/utc/sentryrobot.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 12601, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 12601 } }, "Dex": { @@ -136,10 +136,10 @@ ] }, "FirstName": { - "id": 12602, "type": "cexolocstring", "value": { - "0": "Sentry Robot" + "0": "Sentry Robot", + "id": 12602 } }, "fortbonus": { diff --git a/_module/utc/servicerobot.utc.json b/_module/utc/servicerobot.utc.json index a33b5228..be9309af 100644 --- a/_module/utc/servicerobot.utc.json +++ b/_module/utc/servicerobot.utc.json @@ -153,10 +153,10 @@ "value": "" }, "Description": { - "id": 12575, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 12575 } }, "Dex": { @@ -231,10 +231,10 @@ ] }, "FirstName": { - "id": 12576, "type": "cexolocstring", "value": { - "0": "Service Robot" + "0": "Service Robot", + "id": 12576 } }, "fortbonus": { diff --git a/_module/utc/sreelon.utc.json b/_module/utc/sreelon.utc.json index 6d3d1d36..2d0da9da 100644 --- a/_module/utc/sreelon.utc.json +++ b/_module/utc/sreelon.utc.json @@ -61,10 +61,10 @@ "value": "" }, "Description": { - "id": 84403, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 84403 } }, "Dex": { @@ -153,10 +153,10 @@ ] }, "FirstName": { - "id": 90403, "type": "cexolocstring", "value": { - "0": "Sreelon" + "0": "Sreelon", + "id": 90403 } }, "fortbonus": { diff --git a/_module/uti/albilopegore.uti.json b/_module/uti/albilopegore.uti.json index e3a82570..e54e25e1 100644 --- a/_module/uti/albilopegore.uti.json +++ b/_module/uti/albilopegore.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13232, "type": "cexolocstring", "value": { - "0": "Albilope Gore" + "0": "Albilope Gore", + "id": 13232 } }, "ModelPart1": { diff --git a/_module/uti/albilopehide.uti.json b/_module/uti/albilopehide.uti.json index e8635333..4071dbed 100644 --- a/_module/uti/albilopehide.uti.json +++ b/_module/uti/albilopehide.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13183, "type": "cexolocstring", "value": { - "0": "Albilope Hide" + "0": "Albilope Hide", + "id": 13183 } }, "ModelPart1": { diff --git a/_module/uti/androidproperti.uti.json b/_module/uti/androidproperti.uti.json index b2331e42..203a1e75 100644 --- a/_module/uti/androidproperti.uti.json +++ b/_module/uti/androidproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13156, "type": "cexolocstring", "value": { - "0": "Android Properties" + "0": "Android Properties", + "id": 13156 } }, "ModelPart1": { diff --git a/_module/uti/armyofthedeep.uti.json b/_module/uti/armyofthedeep.uti.json index e576e51f..819269cc 100644 --- a/_module/uti/armyofthedeep.uti.json +++ b/_module/uti/armyofthedeep.uti.json @@ -29,19 +29,20 @@ "value": {} }, "Description": { - "id": 110846, "type": "cexolocstring", - "value": {} + "value": { + "id": 110846 + } }, "Identified": { "type": "byte", "value": 1 }, "LocalizedName": { - "id": 67251, "type": "cexolocstring", "value": { - "0": "Army of the Deep Trident" + "0": "Army of the Deep Trident", + "id": 67251 } }, "ModelPart1": { diff --git a/_module/uti/ashlw002.uti.json b/_module/uti/ashlw002.uti.json index 2a78de12..1df7769f 100644 --- a/_module/uti/ashlw002.uti.json +++ b/_module/uti/ashlw002.uti.json @@ -37,9 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1550, "type": "cexolocstring", - "value": {} + "value": { + "id": 1550 + } }, "ModelPart1": { "type": "byte", diff --git a/_module/uti/ashlw003.uti.json b/_module/uti/ashlw003.uti.json index 58c4534b..289a6296 100644 --- a/_module/uti/ashlw003.uti.json +++ b/_module/uti/ashlw003.uti.json @@ -37,9 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1550, "type": "cexolocstring", - "value": {} + "value": { + "id": 1550 + } }, "ModelPart1": { "type": "byte", diff --git a/_module/uti/ashto002.uti.json b/_module/uti/ashto002.uti.json index 06d62769..bfd100e1 100644 --- a/_module/uti/ashto002.uti.json +++ b/_module/uti/ashto002.uti.json @@ -37,9 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1551, "type": "cexolocstring", - "value": {} + "value": { + "id": 1551 + } }, "ModelPart1": { "type": "byte", diff --git a/_module/uti/badderchainmail.uti.json b/_module/uti/badderchainmail.uti.json index 3dc7e775..944b1ac4 100644 --- a/_module/uti/badderchainmail.uti.json +++ b/_module/uti/badderchainmail.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Badder Chainmail" + "0": "Badder Chainmail", + "id": 184 } }, "Metal1Color": { diff --git a/_module/uti/badderhelm.uti.json b/_module/uti/badderhelm.uti.json index e912e61a..2d766611 100644 --- a/_module/uti/badderhelm.uti.json +++ b/_module/uti/badderhelm.uti.json @@ -55,10 +55,10 @@ "value": 58 }, "LocalizedName": { - "id": 84264, "type": "cexolocstring", "value": { - "0": "Badder Helm" + "0": "Badder Helm", + "id": 84264 } }, "Metal1Color": { diff --git a/_module/uti/badderhelm001.uti.json b/_module/uti/badderhelm001.uti.json index d304a499..8f368f39 100644 --- a/_module/uti/badderhelm001.uti.json +++ b/_module/uti/badderhelm001.uti.json @@ -55,10 +55,10 @@ "value": 58 }, "LocalizedName": { - "id": 84264, "type": "cexolocstring", "value": { - "0": "Dabber Helm" + "0": "Dabber Helm", + "id": 84264 } }, "Metal1Color": { diff --git a/_module/uti/baddershield.uti.json b/_module/uti/baddershield.uti.json index 70e44f3c..8d8a2a32 100644 --- a/_module/uti/baddershield.uti.json +++ b/_module/uti/baddershield.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1550, "type": "cexolocstring", "value": { - "0": "Badder Shield" + "0": "Badder Shield", + "id": 1550 } }, "ModelPart1": { diff --git a/_module/uti/bamutencarpace.uti.json b/_module/uti/bamutencarpace.uti.json index 97dffd1b..cf0ea0fd 100644 --- a/_module/uti/bamutencarpace.uti.json +++ b/_module/uti/bamutencarpace.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13156, "type": "cexolocstring", "value": { - "0": "Ba'muten Carpace" + "0": "Ba'muten Carpace", + "id": 13156 } }, "ModelPart1": { diff --git a/_module/uti/banded_lg.uti.json b/_module/uti/banded_lg.uti.json index 00606cf5..80086615 100644 --- a/_module/uti/banded_lg.uti.json +++ b/_module/uti/banded_lg.uti.json @@ -131,10 +131,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Large" + "0": "Banded Mail, Large", + "id": 12843 } }, "Metal1Color": { diff --git a/_module/uti/banded_med.uti.json b/_module/uti/banded_med.uti.json index 4f8a5c7b..23a50eb1 100644 --- a/_module/uti/banded_med.uti.json +++ b/_module/uti/banded_med.uti.json @@ -131,10 +131,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Medium" + "0": "Banded Mail, Medium", + "id": 12843 } }, "Metal1Color": { diff --git a/_module/uti/banded_med_a.uti.json b/_module/uti/banded_med_a.uti.json index 36b6ff23..e71fe0dd 100644 --- a/_module/uti/banded_med_a.uti.json +++ b/_module/uti/banded_med_a.uti.json @@ -131,10 +131,10 @@ "value": 23 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Medium" + "0": "Banded Mail, Medium", + "id": 12843 } }, "Metal1Color": { diff --git a/_module/uti/banded_sm.uti.json b/_module/uti/banded_sm.uti.json index 2256d2d8..b4a51e27 100644 --- a/_module/uti/banded_sm.uti.json +++ b/_module/uti/banded_sm.uti.json @@ -131,10 +131,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Small" + "0": "Banded Mail, Small", + "id": 12843 } }, "Metal1Color": { diff --git a/_module/uti/banded_st.uti.json b/_module/uti/banded_st.uti.json index 93a290ac..2cca981a 100644 --- a/_module/uti/banded_st.uti.json +++ b/_module/uti/banded_st.uti.json @@ -131,10 +131,10 @@ "value": 14 }, "LocalizedName": { - "id": 12843, "type": "cexolocstring", "value": { - "0": "Banded Mail, Stout" + "0": "Banded Mail, Stout", + "id": 12843 } }, "Metal1Color": { diff --git a/_module/uti/blightbite.uti.json b/_module/uti/blightbite.uti.json index 0790147f..a74e2c46 100644 --- a/_module/uti/blightbite.uti.json +++ b/_module/uti/blightbite.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13247, "type": "cexolocstring", "value": { - "0": "Blight Bite" + "0": "Blight Bite", + "id": 13247 } }, "ModelPart1": { diff --git a/_module/uti/blightbuffet.uti.json b/_module/uti/blightbuffet.uti.json index fae20ac7..15bdca48 100644 --- a/_module/uti/blightbuffet.uti.json +++ b/_module/uti/blightbuffet.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 90608, "type": "cexolocstring", "value": { - "0": "Blight Buffet" + "0": "Blight Buffet", + "id": 90608 } }, "ModelPart1": { diff --git a/_module/uti/bplate_med.uti.json b/_module/uti/bplate_med.uti.json index b28e99cc..b023dc78 100644 --- a/_module/uti/bplate_med.uti.json +++ b/_module/uti/bplate_med.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12842, "type": "cexolocstring", "value": { - "0": "Breastplate, Medium" + "0": "Breastplate, Medium", + "id": 12842 } }, "Metal1Color": { diff --git a/_module/uti/bplate_med002.uti.json b/_module/uti/bplate_med002.uti.json index b060b21b..29f80166 100644 --- a/_module/uti/bplate_med002.uti.json +++ b/_module/uti/bplate_med002.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12842, "type": "cexolocstring", "value": { - "0": "Breastplate, Medium" + "0": "Breastplate, Medium", + "id": 12842 } }, "Metal1Color": { diff --git a/_module/uti/brutorzkick.uti.json b/_module/uti/brutorzkick.uti.json index 6821555f..2b4e6601 100644 --- a/_module/uti/brutorzkick.uti.json +++ b/_module/uti/brutorzkick.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13228, "type": "cexolocstring", "value": { - "0": "Brutorz Kick" + "0": "Brutorz Kick", + "id": 13228 } }, "ModelPart1": { diff --git a/_module/uti/calthenbite.uti.json b/_module/uti/calthenbite.uti.json index 931ff3a2..23797817 100644 --- a/_module/uti/calthenbite.uti.json +++ b/_module/uti/calthenbite.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13248, "type": "cexolocstring", "value": { - "0": "Cal-Then Bite" + "0": "Cal-Then Bite", + "id": 13248 } }, "ModelPart1": { diff --git a/_module/uti/chain_sht_lg.uti.json b/_module/uti/chain_sht_lg.uti.json index c6a68e9d..d8458a71 100644 --- a/_module/uti/chain_sht_lg.uti.json +++ b/_module/uti/chain_sht_lg.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Large" + "0": "Chain Shirt, Large", + "id": 12844 } }, "Metal1Color": { diff --git a/_module/uti/chain_sht_med.uti.json b/_module/uti/chain_sht_med.uti.json index f8b0472e..757f8f71 100644 --- a/_module/uti/chain_sht_med.uti.json +++ b/_module/uti/chain_sht_med.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Medium" + "0": "Chain Shirt, Medium", + "id": 12844 } }, "Metal1Color": { diff --git a/_module/uti/chain_sht_sm.uti.json b/_module/uti/chain_sht_sm.uti.json index 8b3761ab..c4dba172 100644 --- a/_module/uti/chain_sht_sm.uti.json +++ b/_module/uti/chain_sht_sm.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Small" + "0": "Chain Shirt, Small", + "id": 12844 } }, "Metal1Color": { diff --git a/_module/uti/chain_sht_st.uti.json b/_module/uti/chain_sht_st.uti.json index 1a4b43c9..ff042dbe 100644 --- a/_module/uti/chain_sht_st.uti.json +++ b/_module/uti/chain_sht_st.uti.json @@ -129,10 +129,10 @@ "value": 7 }, "LocalizedName": { - "id": 12844, "type": "cexolocstring", "value": { - "0": "Chain Shirt, Stout" + "0": "Chain Shirt, Stout", + "id": 12844 } }, "Metal1Color": { diff --git a/_module/uti/chainmail_lg.uti.json b/_module/uti/chainmail_lg.uti.json index 1ee4134c..a5f9f1d8 100644 --- a/_module/uti/chainmail_lg.uti.json +++ b/_module/uti/chainmail_lg.uti.json @@ -129,10 +129,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Large" + "0": "Chainmail, Large", + "id": 184 } }, "Metal1Color": { diff --git a/_module/uti/chainmail_med.uti.json b/_module/uti/chainmail_med.uti.json index 95d9fd7c..090ccecf 100644 --- a/_module/uti/chainmail_med.uti.json +++ b/_module/uti/chainmail_med.uti.json @@ -129,10 +129,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Medium" + "0": "Chainmail, Medium", + "id": 184 } }, "Metal1Color": { diff --git a/_module/uti/chainmail_sm.uti.json b/_module/uti/chainmail_sm.uti.json index 927039cf..78f27544 100644 --- a/_module/uti/chainmail_sm.uti.json +++ b/_module/uti/chainmail_sm.uti.json @@ -129,10 +129,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Small" + "0": "Chainmail, Small", + "id": 184 } }, "Metal1Color": { diff --git a/_module/uti/chainmail_st.uti.json b/_module/uti/chainmail_st.uti.json index 4504165b..0ffebfda 100644 --- a/_module/uti/chainmail_st.uti.json +++ b/_module/uti/chainmail_st.uti.json @@ -129,10 +129,10 @@ "value": 21 }, "LocalizedName": { - "id": 184, "type": "cexolocstring", "value": { - "0": "Chainmail, Stout" + "0": "Chainmail, Stout", + "id": 184 } }, "Metal1Color": { diff --git a/_module/uti/chesexpropertie.uti.json b/_module/uti/chesexpropertie.uti.json index 471faaf1..30be412b 100644 --- a/_module/uti/chesexpropertie.uti.json +++ b/_module/uti/chesexpropertie.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 90568, "type": "cexolocstring", "value": { - "0": "Chesex Properties" + "0": "Chesex Properties", + "id": 90568 } }, "ModelPart1": { diff --git a/_module/uti/civrobotproperti.uti.json b/_module/uti/civrobotproperti.uti.json index c2de619b..c105a71d 100644 --- a/_module/uti/civrobotproperti.uti.json +++ b/_module/uti/civrobotproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13156, "type": "cexolocstring", "value": { - "0": "Civilian Robot Properties" + "0": "Civilian Robot Properties", + "id": 13156 } }, "ModelPart1": { diff --git a/_module/uti/dabberarnor.uti.json b/_module/uti/dabberarnor.uti.json index ff5f95d6..a8a1bede 100644 --- a/_module/uti/dabberarnor.uti.json +++ b/_module/uti/dabberarnor.uti.json @@ -129,10 +129,10 @@ "value": 12 }, "LocalizedName": { - "id": 12841, "type": "cexolocstring", "value": { - "0": "Dabber Arnor" + "0": "Dabber Arnor", + "id": 12841 } }, "Metal1Color": { diff --git a/_module/uti/dabbercloak.uti.json b/_module/uti/dabbercloak.uti.json index 6c319656..38779183 100644 --- a/_module/uti/dabbercloak.uti.json +++ b/_module/uti/dabbercloak.uti.json @@ -33,9 +33,10 @@ "value": 0 }, "DescIdentified": { - "id": 13807, "type": "cexolocstring", - "value": {} + "value": { + "id": 13807 + } }, "Description": { "type": "cexolocstring", @@ -54,10 +55,10 @@ "value": 12 }, "LocalizedName": { - "id": 13806, "type": "cexolocstring", "value": { - "0": "Dabber Cloak" + "0": "Dabber Cloak", + "id": 13806 } }, "Metal1Color": { diff --git a/_module/uti/dark_tunic.uti.json b/_module/uti/dark_tunic.uti.json index 2f494277..3165cb9c 100644 --- a/_module/uti/dark_tunic.uti.json +++ b/_module/uti/dark_tunic.uti.json @@ -133,10 +133,10 @@ "value": 23 }, "LocalizedName": { - "id": 12914, "type": "cexolocstring", "value": { - "0": "DM Clothes" + "0": "DM Clothes", + "id": 12914 } }, "Metal1Color": { diff --git a/_module/uti/debgonproperti.uti.json b/_module/uti/debgonproperti.uti.json index 12400842..2079808f 100644 --- a/_module/uti/debgonproperti.uti.json +++ b/_module/uti/debgonproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Deb Gon Properties" + "0": "Deb Gon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/dmfi_onering.uti.json b/_module/uti/dmfi_onering.uti.json index d52321c3..8c844a34 100644 --- a/_module/uti/dmfi_onering.uti.json +++ b/_module/uti/dmfi_onering.uti.json @@ -27,13 +27,13 @@ "DescIdentified": { "type": "cexolocstring", "value": { - "0": "Ash nazg durbatulk\nash nazg gimbatul\nash nazg thrakatulk \nagh burzum-ishi krimpatul." + "0": "Ash nazg durbatulûk\nash nazg gimbatul\nash nazg thrakatulûk \nagh burzum-ishi krimpatul." } }, "Description": { "type": "cexolocstring", "value": { - "0": "Ash nazg durbatulk\nash nazg gimbatul\nash nazg thrakatulk \nagh burzum-ishi krimpatul. \n\n" + "0": "Ash nazg durbatulûk\nash nazg gimbatul\nash nazg thrakatulûk \nagh burzum-ishi krimpatul. \n\n" } }, "Identified": { diff --git a/_module/uti/erdgonpropertie.uti.json b/_module/uti/erdgonpropertie.uti.json index 259f3286..bc5f7936 100644 --- a/_module/uti/erdgonpropertie.uti.json +++ b/_module/uti/erdgonpropertie.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Erdgon Properties" + "0": "Erdgon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/exterminategarb.uti.json b/_module/uti/exterminategarb.uti.json index d7afe723..d008826c 100644 --- a/_module/uti/exterminategarb.uti.json +++ b/_module/uti/exterminategarb.uti.json @@ -129,10 +129,10 @@ "value": 23 }, "LocalizedName": { - "id": 12918, "type": "cexolocstring", "value": { - "0": "Exterminator's Garb" + "0": "Exterminator's Garb", + "id": 12918 } }, "Metal1Color": { diff --git a/_module/uti/felgonproperti.uti.json b/_module/uti/felgonproperti.uti.json index 6505fe74..66f1f924 100644 --- a/_module/uti/felgonproperti.uti.json +++ b/_module/uti/felgonproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Fel Gon Properties" + "0": "Fel Gon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/fengreatsword.uti.json b/_module/uti/fengreatsword.uti.json index a2d7876f..441f1b54 100644 --- a/_module/uti/fengreatsword.uti.json +++ b/_module/uti/fengreatsword.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 167, "type": "cexolocstring", "value": { - "0": "Fen Greatsword" + "0": "Fen Greatsword", + "id": 167 } }, "ModelPart1": { diff --git a/_module/uti/gatorbite.uti.json b/_module/uti/gatorbite.uti.json index 1e0726cd..7869ca4c 100644 --- a/_module/uti/gatorbite.uti.json +++ b/_module/uti/gatorbite.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13238, "type": "cexolocstring", "value": { - "0": "Gator Bite" + "0": "Gator Bite", + "id": 13238 } }, "ModelPart1": { diff --git a/_module/uti/gelgonpropert001.uti.json b/_module/uti/gelgonpropert001.uti.json index 4226fb56..0111da14 100644 --- a/_module/uti/gelgonpropert001.uti.json +++ b/_module/uti/gelgonpropert001.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Har Gon Properties" + "0": "Har Gon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/gelgonproperti.uti.json b/_module/uti/gelgonproperti.uti.json index 3af9cf04..2b0348af 100644 --- a/_module/uti/gelgonproperti.uti.json +++ b/_module/uti/gelgonproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Gel Gon Properties" + "0": "Gel Gon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/glowring.uti.json b/_module/uti/glowring.uti.json index c2ed1eed..b20156f1 100644 --- a/_module/uti/glowring.uti.json +++ b/_module/uti/glowring.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13485, "type": "cexolocstring", "value": { - "0": "Glow Ring" + "0": "Glow Ring", + "id": 13485 } }, "ModelPart1": { diff --git a/_module/uti/grenspear.uti.json b/_module/uti/grenspear.uti.json index 097f68fc..ecd977f6 100644 --- a/_module/uti/grenspear.uti.json +++ b/_module/uti/grenspear.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1552, "type": "cexolocstring", "value": { - "0": "Gren Spear" + "0": "Gren Spear", + "id": 1552 } }, "ModelPart1": { diff --git a/_module/uti/halfplate_med.uti.json b/_module/uti/halfplate_med.uti.json index 9a989370..2379ea60 100644 --- a/_module/uti/halfplate_med.uti.json +++ b/_module/uti/halfplate_med.uti.json @@ -131,10 +131,10 @@ "value": 22 }, "LocalizedName": { - "id": 12839, "type": "cexolocstring", "value": { - "0": "Half Plate, Medium" + "0": "Half Plate, Medium", + "id": 12839 } }, "Metal1Color": { diff --git a/_module/uti/herlproperties.uti.json b/_module/uti/herlproperties.uti.json index 2bf9e409..f0170020 100644 --- a/_module/uti/herlproperties.uti.json +++ b/_module/uti/herlproperties.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13066, "type": "cexolocstring", "value": { - "0": "Herl Properties" + "0": "Herl Properties", + "id": 13066 } }, "ModelPart1": { diff --git a/_module/uti/hide_lg.uti.json b/_module/uti/hide_lg.uti.json index ea50723d..30c19cc2 100644 --- a/_module/uti/hide_lg.uti.json +++ b/_module/uti/hide_lg.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Large" + "0": "Hide Armor, Large", + "id": 12840 } }, "Metal1Color": { diff --git a/_module/uti/hide_med.uti.json b/_module/uti/hide_med.uti.json index e81347cb..0b204c5b 100644 --- a/_module/uti/hide_med.uti.json +++ b/_module/uti/hide_med.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Medium" + "0": "Hide Armor, Medium", + "id": 12840 } }, "Metal1Color": { diff --git a/_module/uti/hide_sm.uti.json b/_module/uti/hide_sm.uti.json index 50ecc4f1..8a5109f4 100644 --- a/_module/uti/hide_sm.uti.json +++ b/_module/uti/hide_sm.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Small" + "0": "Hide Armor, Small", + "id": 12840 } }, "Metal1Color": { diff --git a/_module/uti/hide_st.uti.json b/_module/uti/hide_st.uti.json index 2a184032..fd5aade1 100644 --- a/_module/uti/hide_st.uti.json +++ b/_module/uti/hide_st.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12840, "type": "cexolocstring", "value": { - "0": "Hide Armor, Stout" + "0": "Hide Armor, Stout", + "id": 12840 } }, "Metal1Color": { diff --git a/_module/uti/indietouch.uti.json b/_module/uti/indietouch.uti.json index cc01a779..86c98591 100644 --- a/_module/uti/indietouch.uti.json +++ b/_module/uti/indietouch.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 90562, "type": "cexolocstring", "value": { - "0": "Indie Touch" + "0": "Indie Touch", + "id": 90562 } }, "ModelPart1": { diff --git a/_module/uti/it_arhelm004.uti.json b/_module/uti/it_arhelm004.uti.json index 3f68af8e..a12b04d7 100644 --- a/_module/uti/it_arhelm004.uti.json +++ b/_module/uti/it_arhelm004.uti.json @@ -55,9 +55,10 @@ "value": 45 }, "LocalizedName": { - "id": 84264, "type": "cexolocstring", - "value": {} + "value": { + "id": 84264 + } }, "Metal1Color": { "type": "byte", diff --git a/_module/uti/it_creitemdrs001.uti.json b/_module/uti/it_creitemdrs001.uti.json index 9fddca0a..b6fe721c 100644 --- a/_module/uti/it_creitemdrs001.uti.json +++ b/_module/uti/it_creitemdrs001.uti.json @@ -37,9 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13183, "type": "cexolocstring", - "value": {} + "value": { + "id": 13183 + } }, "ModelPart1": { "type": "byte", diff --git a/_module/uti/it_creitemunh001.uti.json b/_module/uti/it_creitemunh001.uti.json index aee68cea..2309c02c 100644 --- a/_module/uti/it_creitemunh001.uti.json +++ b/_module/uti/it_creitemunh001.uti.json @@ -37,9 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13205, "type": "cexolocstring", - "value": {} + "value": { + "id": 13205 + } }, "ModelPart1": { "type": "byte", diff --git a/_module/uti/it_crewps003.uti.json b/_module/uti/it_crewps003.uti.json index 13a0c54d..3017f79a 100644 --- a/_module/uti/it_crewps003.uti.json +++ b/_module/uti/it_crewps003.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13235, "type": "cexolocstring", "value": { - "0": "Attercop Bite" + "0": "Attercop Bite", + "id": 13235 } }, "ModelPart1": { diff --git a/_module/uti/it_crewps016.uti.json b/_module/uti/it_crewps016.uti.json index bc99b92d..5b9d20e7 100644 --- a/_module/uti/it_crewps016.uti.json +++ b/_module/uti/it_crewps016.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13247, "type": "cexolocstring", "value": { - "0": "Tarn Zeb Bite" + "0": "Tarn Zeb Bite", + "id": 13247 } }, "ModelPart1": { diff --git a/_module/uti/jemagonproperti.uti.json b/_module/uti/jemagonproperti.uti.json index 63bfe5d9..d045d8cd 100644 --- a/_module/uti/jemagonproperti.uti.json +++ b/_module/uti/jemagonproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Jemagon Properties" + "0": "Jemagon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/kailinbite.uti.json b/_module/uti/kailinbite.uti.json index 2661fcc9..2d6c1771 100644 --- a/_module/uti/kailinbite.uti.json +++ b/_module/uti/kailinbite.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13235, "type": "cexolocstring", "value": { - "0": "Kai Lin Bite" + "0": "Kai Lin Bite", + "id": 13235 } }, "ModelPart1": { diff --git a/_module/uti/kailinclaw.uti.json b/_module/uti/kailinclaw.uti.json index 4f37b743..f359e586 100644 --- a/_module/uti/kailinclaw.uti.json +++ b/_module/uti/kailinclaw.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", "value": { - "0": "Kai Lin Claw" + "0": "Kai Lin Claw", + "id": 13265 } }, "ModelPart1": { diff --git a/_module/uti/kiikceeproperti.uti.json b/_module/uti/kiikceeproperti.uti.json index 7b144f82..ab261a25 100644 --- a/_module/uti/kiikceeproperti.uti.json +++ b/_module/uti/kiikceeproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 90569, "type": "cexolocstring", "value": { - "0": "Kiikcee Properties" + "0": "Kiikcee Properties", + "id": 90569 } }, "ModelPart1": { diff --git a/_module/uti/knighthelmet.uti.json b/_module/uti/knighthelmet.uti.json index 8a86fbc4..5d0d9e6e 100644 --- a/_module/uti/knighthelmet.uti.json +++ b/_module/uti/knighthelmet.uti.json @@ -53,10 +53,10 @@ "value": 56 }, "LocalizedName": { - "id": 84262, "type": "cexolocstring", "value": { - "0": "Knight Helmet" + "0": "Knight Helmet", + "id": 84262 } }, "Metal1Color": { diff --git a/_module/uti/knightsplate.uti.json b/_module/uti/knightsplate.uti.json index fbd81c82..1a75534d 100644 --- a/_module/uti/knightsplate.uti.json +++ b/_module/uti/knightsplate.uti.json @@ -109,9 +109,10 @@ "value": 0 }, "DescIdentified": { - "id": 13776, "type": "cexolocstring", - "value": {} + "value": { + "id": 13776 + } }, "Description": { "type": "cexolocstring", @@ -130,10 +131,10 @@ "value": 56 }, "LocalizedName": { - "id": 66096, "type": "cexolocstring", "value": { - "0": "Knight's Plate" + "0": "Knight's Plate", + "id": 66096 } }, "Metal1Color": { diff --git a/_module/uti/leath_arm_lg.uti.json b/_module/uti/leath_arm_lg.uti.json index 76acc556..9268ba3d 100644 --- a/_module/uti/leath_arm_lg.uti.json +++ b/_module/uti/leath_arm_lg.uti.json @@ -129,10 +129,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Large" + "0": "Leather Armor, Large", + "id": 12835 } }, "Metal1Color": { diff --git a/_module/uti/leath_arm_med.uti.json b/_module/uti/leath_arm_med.uti.json index 2a8c854f..b7d6c019 100644 --- a/_module/uti/leath_arm_med.uti.json +++ b/_module/uti/leath_arm_med.uti.json @@ -129,10 +129,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Medium" + "0": "Leather Armor, Medium", + "id": 12835 } }, "Metal1Color": { diff --git a/_module/uti/leath_arm_sm.uti.json b/_module/uti/leath_arm_sm.uti.json index bc499f2a..ba9fa204 100644 --- a/_module/uti/leath_arm_sm.uti.json +++ b/_module/uti/leath_arm_sm.uti.json @@ -129,10 +129,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Small" + "0": "Leather Armor, Small", + "id": 12835 } }, "Metal1Color": { diff --git a/_module/uti/leath_arm_st.uti.json b/_module/uti/leath_arm_st.uti.json index 0d4ababa..fde0c856 100644 --- a/_module/uti/leath_arm_st.uti.json +++ b/_module/uti/leath_arm_st.uti.json @@ -129,10 +129,10 @@ "value": 3 }, "LocalizedName": { - "id": 12835, "type": "cexolocstring", "value": { - "0": "Leather Armor, Stout" + "0": "Leather Armor, Stout", + "id": 12835 } }, "Metal1Color": { diff --git a/_module/uti/maarcl108.uti.json b/_module/uti/maarcl108.uti.json index 3580d29d..f1da7699 100644 --- a/_module/uti/maarcl108.uti.json +++ b/_module/uti/maarcl108.uti.json @@ -109,9 +109,10 @@ "value": 0 }, "DescIdentified": { - "id": 13776, "type": "cexolocstring", - "value": {} + "value": { + "id": 13776 + } }, "Description": { "type": "cexolocstring", @@ -132,10 +133,10 @@ "value": 11 }, "LocalizedName": { - "id": 13793, "type": "cexolocstring", "value": { - "0": "Magic Hide Armor" + "0": "Magic Hide Armor", + "id": 13793 } }, "Metal1Color": { diff --git a/_module/uti/mantabite.uti.json b/_module/uti/mantabite.uti.json index 24a6150a..54ce0ecf 100644 --- a/_module/uti/mantabite.uti.json +++ b/_module/uti/mantabite.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13252, "type": "cexolocstring", "value": { - "0": "Manta Bite" + "0": "Manta Bite", + "id": 13252 } }, "ModelPart1": { diff --git a/_module/uti/marlockproperti.uti.json b/_module/uti/marlockproperti.uti.json index 93ef8268..ac87d8fe 100644 --- a/_module/uti/marlockproperti.uti.json +++ b/_module/uti/marlockproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13156, "type": "cexolocstring", "value": { - "0": "Marlock Properties" + "0": "Marlock Properties", + "id": 13156 } }, "ModelPart1": { diff --git a/_module/uti/parnclaw.uti.json b/_module/uti/parnclaw.uti.json index 4956693d..cb3937dd 100644 --- a/_module/uti/parnclaw.uti.json +++ b/_module/uti/parnclaw.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13275, "type": "cexolocstring", "value": { - "0": "Parn Claw" + "0": "Parn Claw", + "id": 13275 } }, "ModelPart1": { diff --git a/_module/uti/pitchfork.uti.json b/_module/uti/pitchfork.uti.json index bf830054..44695dd2 100644 --- a/_module/uti/pitchfork.uti.json +++ b/_module/uti/pitchfork.uti.json @@ -29,19 +29,20 @@ "value": {} }, "Description": { - "id": 110846, "type": "cexolocstring", - "value": {} + "value": { + "id": 110846 + } }, "Identified": { "type": "byte", "value": 1 }, "LocalizedName": { - "id": 67251, "type": "cexolocstring", "value": { - "0": "Pitchfork" + "0": "Pitchfork", + "id": 67251 } }, "ModelPart1": { diff --git a/_module/uti/plate_med.uti.json b/_module/uti/plate_med.uti.json index 116876d9..3403736d 100644 --- a/_module/uti/plate_med.uti.json +++ b/_module/uti/plate_med.uti.json @@ -131,10 +131,10 @@ "value": 22 }, "LocalizedName": { - "id": 181, "type": "cexolocstring", "value": { - "0": "Full Plate, Medium" + "0": "Full Plate, Medium", + "id": 181 } }, "Metal1Color": { diff --git a/_module/uti/policearmor.uti.json b/_module/uti/policearmor.uti.json index 2afd2bde..2c1bae7d 100644 --- a/_module/uti/policearmor.uti.json +++ b/_module/uti/policearmor.uti.json @@ -129,10 +129,10 @@ "value": 36 }, "LocalizedName": { - "id": 181, "type": "cexolocstring", "value": { - "0": "Police Armor" + "0": "Police Armor", + "id": 181 } }, "Metal1Color": { diff --git a/_module/uti/policehelmet.uti.json b/_module/uti/policehelmet.uti.json index 451e5e77..754a3383 100644 --- a/_module/uti/policehelmet.uti.json +++ b/_module/uti/policehelmet.uti.json @@ -53,10 +53,10 @@ "value": 36 }, "LocalizedName": { - "id": 84264, "type": "cexolocstring", "value": { - "0": "Police Helmet" + "0": "Police Helmet", + "id": 84264 } }, "Metal1Color": { diff --git a/_module/uti/redcloak.uti.json b/_module/uti/redcloak.uti.json index 1e726648..0179650b 100644 --- a/_module/uti/redcloak.uti.json +++ b/_module/uti/redcloak.uti.json @@ -33,10 +33,10 @@ "value": 0 }, "DescIdentified": { - "id": 66560, "type": "cexolocstring", "value": { - "0": "" + "0": "", + "id": 66560 } }, "Description": { @@ -58,10 +58,10 @@ "value": 91 }, "LocalizedName": { - "id": 66559, "type": "cexolocstring", "value": { - "0": "Red Cloak" + "0": "Red Cloak", + "id": 66559 } }, "Metal1Color": { diff --git a/_module/uti/relanopspropert.uti.json b/_module/uti/relanopspropert.uti.json index 3afe90ef..acc7f8bf 100644 --- a/_module/uti/relanopspropert.uti.json +++ b/_module/uti/relanopspropert.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13086, "type": "cexolocstring", "value": { - "0": "Relanops Properties" + "0": "Relanops Properties", + "id": 13086 } }, "ModelPart1": { diff --git a/_module/uti/rest_item.uti.json b/_module/uti/rest_item.uti.json index d3da8c36..e5521c8b 100644 --- a/_module/uti/rest_item.uti.json +++ b/_module/uti/rest_item.uti.json @@ -25,10 +25,10 @@ "value": 0 }, "DescIdentified": { - "id": 58558, "type": "cexolocstring", "value": { - "0": "Supplies allowing you to rest." + "0": "Supplies allowing you to rest.", + "id": 58558 } }, "Description": { @@ -42,10 +42,10 @@ "value": 1 }, "LocalizedName": { - "id": 13378, "type": "cexolocstring", "value": { - "0": "Resting Supplies" + "0": "Resting Supplies", + "id": 13378 } }, "ModelPart1": { diff --git a/_module/uti/riotshield.uti.json b/_module/uti/riotshield.uti.json index fd11094f..1d72988d 100644 --- a/_module/uti/riotshield.uti.json +++ b/_module/uti/riotshield.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1551, "type": "cexolocstring", "value": { - "0": "Riot Shield" + "0": "Riot Shield", + "id": 1551 } }, "ModelPart1": { diff --git a/_module/uti/robotproperties.uti.json b/_module/uti/robotproperties.uti.json index 19986063..6a247db0 100644 --- a/_module/uti/robotproperties.uti.json +++ b/_module/uti/robotproperties.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 13156, "type": "cexolocstring", "value": { - "0": "Robot Properties" + "0": "Robot Properties", + "id": 13156 } }, "ModelPart1": { diff --git a/_module/uti/scale_lg.uti.json b/_module/uti/scale_lg.uti.json index d8908d52..9b910684 100644 --- a/_module/uti/scale_lg.uti.json +++ b/_module/uti/scale_lg.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Large" + "0": "Scale Mail, Large", + "id": 12837 } }, "Metal1Color": { diff --git a/_module/uti/scale_med.uti.json b/_module/uti/scale_med.uti.json index a5d325fb..80c0faec 100644 --- a/_module/uti/scale_med.uti.json +++ b/_module/uti/scale_med.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Medium" + "0": "Scale Mail, Medium", + "id": 12837 } }, "Metal1Color": { diff --git a/_module/uti/scale_med_1.uti.json b/_module/uti/scale_med_1.uti.json index 6c41eb05..c86f4b3e 100644 --- a/_module/uti/scale_med_1.uti.json +++ b/_module/uti/scale_med_1.uti.json @@ -109,9 +109,10 @@ "value": 0 }, "DescIdentified": { - "id": 13776, "type": "cexolocstring", - "value": {} + "value": { + "id": 13776 + } }, "Description": { "type": "cexolocstring", @@ -132,10 +133,10 @@ "value": 21 }, "LocalizedName": { - "id": 13794, "type": "cexolocstring", "value": { - "0": "Magic Scale Mail, Medium" + "0": "Magic Scale Mail, Medium", + "id": 13794 } }, "Metal1Color": { diff --git a/_module/uti/scale_sm.uti.json b/_module/uti/scale_sm.uti.json index c80fa635..09f391e9 100644 --- a/_module/uti/scale_sm.uti.json +++ b/_module/uti/scale_sm.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Small" + "0": "Scale Mail, Small", + "id": 12837 } }, "Metal1Color": { diff --git a/_module/uti/scale_st.uti.json b/_module/uti/scale_st.uti.json index 6b179143..99c2ed7b 100644 --- a/_module/uti/scale_st.uti.json +++ b/_module/uti/scale_st.uti.json @@ -129,10 +129,10 @@ "value": 11 }, "LocalizedName": { - "id": 12837, "type": "cexolocstring", "value": { - "0": "Scale Mail, Stout" + "0": "Scale Mail, Stout", + "id": 12837 } }, "Metal1Color": { diff --git a/_module/uti/screamerclaw.uti.json b/_module/uti/screamerclaw.uti.json index a206e2be..b5042ec9 100644 --- a/_module/uti/screamerclaw.uti.json +++ b/_module/uti/screamerclaw.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13265, "type": "cexolocstring", "value": { - "0": "Screamer Claw" + "0": "Screamer Claw", + "id": 13265 } }, "ModelPart1": { diff --git a/_module/uti/screamerpropert.uti.json b/_module/uti/screamerpropert.uti.json index dc3ed5df..4b25e432 100644 --- a/_module/uti/screamerpropert.uti.json +++ b/_module/uti/screamerpropert.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13205, "type": "cexolocstring", "value": { - "0": "Screamer Properties" + "0": "Screamer Properties", + "id": 13205 } }, "ModelPart1": { diff --git a/_module/uti/securityarmor.uti.json b/_module/uti/securityarmor.uti.json index 928c811e..dc0a414a 100644 --- a/_module/uti/securityarmor.uti.json +++ b/_module/uti/securityarmor.uti.json @@ -129,10 +129,10 @@ "value": 22 }, "LocalizedName": { - "id": 181, "type": "cexolocstring", "value": { - "0": "Security Armor" + "0": "Security Armor", + "id": 181 } }, "Metal1Color": { diff --git a/_module/uti/sepbite.uti.json b/_module/uti/sepbite.uti.json index 1b815f2d..30063f3e 100644 --- a/_module/uti/sepbite.uti.json +++ b/_module/uti/sepbite.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 90635, "type": "cexolocstring", "value": { - "0": "Sep Bite" + "0": "Sep Bite", + "id": 90635 } }, "ModelPart1": { diff --git a/_module/uti/sergonpropertie.uti.json b/_module/uti/sergonpropertie.uti.json index 36ed1826..2c42d8a7 100644 --- a/_module/uti/sergonpropertie.uti.json +++ b/_module/uti/sergonpropertie.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13165, "type": "cexolocstring", "value": { - "0": "Sergon Properties" + "0": "Sergon Properties", + "id": 13165 } }, "ModelPart1": { diff --git a/_module/uti/servficebot.uti.json b/_module/uti/servficebot.uti.json index 5be413c2..c837f90c 100644 --- a/_module/uti/servficebot.uti.json +++ b/_module/uti/servficebot.uti.json @@ -129,10 +129,10 @@ "value": 22 }, "LocalizedName": { - "id": 181, "type": "cexolocstring", "value": { - "0": "Servfice Bot Body" + "0": "Servfice Bot Body", + "id": 181 } }, "Metal1Color": { diff --git a/_module/uti/servicehead.uti.json b/_module/uti/servicehead.uti.json index 8e3934b6..921c6067 100644 --- a/_module/uti/servicehead.uti.json +++ b/_module/uti/servicehead.uti.json @@ -53,10 +53,10 @@ "value": 0 }, "LocalizedName": { - "id": 84262, "type": "cexolocstring", "value": { - "0": "Service Bot Head" + "0": "Service Bot Head", + "id": 84262 } }, "Metal1Color": { diff --git a/_module/uti/sibraspropertie.uti.json b/_module/uti/sibraspropertie.uti.json index 256bc8d7..ebd7c472 100644 --- a/_module/uti/sibraspropertie.uti.json +++ b/_module/uti/sibraspropertie.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13087, "type": "cexolocstring", "value": { - "0": "Sibras Properties" + "0": "Sibras Properties", + "id": 13087 } }, "ModelPart1": { diff --git a/_module/uti/spikedclub.uti.json b/_module/uti/spikedclub.uti.json index 46fbb3b6..a0bc74ed 100644 --- a/_module/uti/spikedclub.uti.json +++ b/_module/uti/spikedclub.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 1522, "type": "cexolocstring", "value": { - "0": "Badder Spiked Club" + "0": "Badder Spiked Club", + "id": 1522 } }, "ModelPart1": { diff --git a/_module/uti/splint_lg.uti.json b/_module/uti/splint_lg.uti.json index 20afc7ad..e52bce62 100644 --- a/_module/uti/splint_lg.uti.json +++ b/_module/uti/splint_lg.uti.json @@ -129,10 +129,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Large" + "0": "Splint Mail, Large", + "id": 12838 } }, "Metal1Color": { diff --git a/_module/uti/splint_med.uti.json b/_module/uti/splint_med.uti.json index 1efc4fa1..42501aea 100644 --- a/_module/uti/splint_med.uti.json +++ b/_module/uti/splint_med.uti.json @@ -129,10 +129,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Medium" + "0": "Splint Mail, Medium", + "id": 12838 } }, "Metal1Color": { diff --git a/_module/uti/splint_sm.uti.json b/_module/uti/splint_sm.uti.json index d4a17245..9b990a44 100644 --- a/_module/uti/splint_sm.uti.json +++ b/_module/uti/splint_sm.uti.json @@ -129,10 +129,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Small" + "0": "Splint Mail, Small", + "id": 12838 } }, "Metal1Color": { diff --git a/_module/uti/splint_st.uti.json b/_module/uti/splint_st.uti.json index 4a3c8ff5..ba0f9be4 100644 --- a/_module/uti/splint_st.uti.json +++ b/_module/uti/splint_st.uti.json @@ -129,10 +129,10 @@ "value": 15 }, "LocalizedName": { - "id": 12838, "type": "cexolocstring", "value": { - "0": "Splint Mail, Stout" + "0": "Splint Mail, Stout", + "id": 12838 } }, "Metal1Color": { diff --git a/_module/uti/sreeloncyborgh.uti.json b/_module/uti/sreeloncyborgh.uti.json index c750f67b..178854df 100644 --- a/_module/uti/sreeloncyborgh.uti.json +++ b/_module/uti/sreeloncyborgh.uti.json @@ -109,9 +109,10 @@ "value": 0 }, "DescIdentified": { - "id": 13776, "type": "cexolocstring", - "value": {} + "value": { + "id": 13776 + } }, "Description": { "type": "cexolocstring", @@ -130,10 +131,10 @@ "value": 37 }, "LocalizedName": { - "id": 91062, "type": "cexolocstring", "value": { - "0": "Sreelon Cyborg Half Plate" + "0": "Sreelon Cyborg Half Plate", + "id": 91062 } }, "Metal1Color": { diff --git a/_module/uti/sreelondronehead.uti.json b/_module/uti/sreelondronehead.uti.json index 5541a2f2..2a6a505b 100644 --- a/_module/uti/sreelondronehead.uti.json +++ b/_module/uti/sreelondronehead.uti.json @@ -53,10 +53,10 @@ "value": 36 }, "LocalizedName": { - "id": 84262, "type": "cexolocstring", "value": { - "0": "Sreelon Drone Head" + "0": "Sreelon Drone Head", + "id": 84262 } }, "Metal1Color": { diff --git a/_module/uti/sreelonnegaswor.uti.json b/_module/uti/sreelonnegaswor.uti.json index 3777c39a..dd74f2c8 100644 --- a/_module/uti/sreelonnegaswor.uti.json +++ b/_module/uti/sreelonnegaswor.uti.json @@ -37,10 +37,10 @@ "value": 1 }, "LocalizedName": { - "id": 167, "type": "cexolocstring", "value": { - "0": "Sreelon Negasword" + "0": "Sreelon Negasword", + "id": 167 } }, "ModelPart1": { diff --git a/_module/uti/starting_clothes.uti.json b/_module/uti/starting_clothes.uti.json index 7787e20f..90ef9598 100644 --- a/_module/uti/starting_clothes.uti.json +++ b/_module/uti/starting_clothes.uti.json @@ -133,10 +133,10 @@ "value": 11 }, "LocalizedName": { - "id": 12925, "type": "cexolocstring", "value": { - "0": "Starting Clothes" + "0": "Starting Clothes", + "id": 12925 } }, "Metal1Color": { diff --git a/_module/uti/stud_leath_lg.uti.json b/_module/uti/stud_leath_lg.uti.json index 95569ea4..2acbbb00 100644 --- a/_module/uti/stud_leath_lg.uti.json +++ b/_module/uti/stud_leath_lg.uti.json @@ -129,10 +129,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Large" + "0": "Studded Leather Armor, Large", + "id": 12836 } }, "Metal1Color": { diff --git a/_module/uti/stud_leath_med.uti.json b/_module/uti/stud_leath_med.uti.json index 93f865e4..668b1c03 100644 --- a/_module/uti/stud_leath_med.uti.json +++ b/_module/uti/stud_leath_med.uti.json @@ -129,10 +129,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Medium" + "0": "Studded Leather Armor, Medium", + "id": 12836 } }, "Metal1Color": { diff --git a/_module/uti/stud_leath_sm.uti.json b/_module/uti/stud_leath_sm.uti.json index 91541db1..c7c21d48 100644 --- a/_module/uti/stud_leath_sm.uti.json +++ b/_module/uti/stud_leath_sm.uti.json @@ -129,10 +129,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Small" + "0": "Studded Leather Armor, Small", + "id": 12836 } }, "Metal1Color": { diff --git a/_module/uti/stud_leath_st.uti.json b/_module/uti/stud_leath_st.uti.json index b11c51e8..4e71da29 100644 --- a/_module/uti/stud_leath_st.uti.json +++ b/_module/uti/stud_leath_st.uti.json @@ -129,10 +129,10 @@ "value": 10 }, "LocalizedName": { - "id": 12836, "type": "cexolocstring", "value": { - "0": "Studded Leather Armor, Stout" + "0": "Studded Leather Armor, Stout", + "id": 12836 } }, "Metal1Color": { diff --git a/_module/uti/tarnzebvine.uti.json b/_module/uti/tarnzebvine.uti.json index 2cd4d0d8..b81feb30 100644 --- a/_module/uti/tarnzebvine.uti.json +++ b/_module/uti/tarnzebvine.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13274, "type": "cexolocstring", "value": { - "0": "Tarn Zeb Vine" + "0": "Tarn Zeb Vine", + "id": 13274 } }, "ModelPart1": { diff --git a/_module/uti/tsorsutproperti.uti.json b/_module/uti/tsorsutproperti.uti.json index 9f069db8..34fd2201 100644 --- a/_module/uti/tsorsutproperti.uti.json +++ b/_module/uti/tsorsutproperti.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 90569, "type": "cexolocstring", "value": { - "0": "Tsorsut Properties" + "0": "Tsorsut Properties", + "id": 90569 } }, "ModelPart1": { diff --git a/_module/uti/vathbite.uti.json b/_module/uti/vathbite.uti.json index d0a61525..1b8b3f69 100644 --- a/_module/uti/vathbite.uti.json +++ b/_module/uti/vathbite.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13247, "type": "cexolocstring", "value": { - "0": "Vath Bite" + "0": "Vath Bite", + "id": 13247 } }, "ModelPart1": { diff --git a/_module/uti/vibrosword.uti.json b/_module/uti/vibrosword.uti.json index f2a9e600..007a6f94 100644 --- a/_module/uti/vibrosword.uti.json +++ b/_module/uti/vibrosword.uti.json @@ -39,10 +39,10 @@ "value": 1 }, "LocalizedName": { - "id": 166, "type": "cexolocstring", "value": { - "0": "Vibrosword" + "0": "Vibrosword", + "id": 166 } }, "ModelPart1": { diff --git a/_module/uti/zarnbite.uti.json b/_module/uti/zarnbite.uti.json index 047ab4c6..bed3db3a 100644 --- a/_module/uti/zarnbite.uti.json +++ b/_module/uti/zarnbite.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13238, "type": "cexolocstring", "value": { - "0": "Zarn Bite" + "0": "Zarn Bite", + "id": 13238 } }, "ModelPart1": { diff --git a/_module/uti/zarnproperties.uti.json b/_module/uti/zarnproperties.uti.json index 3ec0a2d2..b578180b 100644 --- a/_module/uti/zarnproperties.uti.json +++ b/_module/uti/zarnproperties.uti.json @@ -37,10 +37,10 @@ "value": 0 }, "LocalizedName": { - "id": 13066, "type": "cexolocstring", "value": { - "0": "Zarn Properties" + "0": "Zarn Properties", + "id": 13066 } }, "ModelPart1": { diff --git a/_module/utp/bench001.utp.json b/_module/utp/bench001.utp.json index 39a35447..54567503 100644 --- a/_module/utp/bench001.utp.json +++ b/_module/utp/bench001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14559, "type": "cexolocstring", "value": { - "0": "The stout planks of this bench have been worn smooth by years of use." + "0": "The stout planks of this bench have been worn smooth by years of use.", + "id": 14559 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5821, "type": "cexolocstring", "value": { - "0": "Bench" + "0": "Bench", + "id": 5821 } }, "OnClick": { diff --git a/_module/utp/chair001.utp.json b/_module/utp/chair001.utp.json index 6e16d8ad..03b52db1 100644 --- a/_module/utp/chair001.utp.json +++ b/_module/utp/chair001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14593, "type": "cexolocstring", "value": { - "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship." + "0": "It is a simple chair but the grace of its lines speaks to the quality of its craftmanship.", + "id": 14593 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { diff --git a/_module/utp/chair1_sit.utp.json b/_module/utp/chair1_sit.utp.json index 26e6318e..9a717fcb 100644 --- a/_module/utp/chair1_sit.utp.json +++ b/_module/utp/chair1_sit.utp.json @@ -33,9 +33,10 @@ "value": 10 }, "Description": { - "id": 110890, "type": "cexolocstring", - "value": {} + "value": { + "id": 110890 + } }, "DisarmDC": { "type": "byte", @@ -82,10 +83,10 @@ "value": 0 }, "LocName": { - "id": 5822, "type": "cexolocstring", "value": { - "0": "Chair" + "0": "Chair", + "id": 5822 } }, "OnClick": { diff --git a/_module/utp/chest002.utp.json b/_module/utp/chest002.utp.json index 12d10739..dd60e269 100644 --- a/_module/utp/chest002.utp.json +++ b/_module/utp/chest002.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14594, "type": "cexolocstring", "value": { - "0": "Bound in iron and with a heavy lock, this heavy chest was obviously meant to protect something of value." + "0": "Bound in iron and with a heavy lock, this heavy chest was obviously meant to protect something of value.", + "id": 14594 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "Chest" + "0": "Chest", + "id": 5348 } }, "OnClick": { diff --git a/_module/utp/chest004.utp.json b/_module/utp/chest004.utp.json index d29d150e..fb9ff9b8 100644 --- a/_module/utp/chest004.utp.json +++ b/_module/utp/chest004.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14594, "type": "cexolocstring", "value": { - "0": "Bound in iron and with a heavy lock, this heavy chest was obviously meant to protect something of value." + "0": "Bound in iron and with a heavy lock, this heavy chest was obviously meant to protect something of value.", + "id": 14594 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5348, "type": "cexolocstring", "value": { - "0": "Place Trash Here" + "0": "Place Trash Here", + "id": 5348 } }, "OnClick": { diff --git a/_module/utp/couch001.utp.json b/_module/utp/couch001.utp.json index 874f6f52..e2c5751f 100644 --- a/_module/utp/couch001.utp.json +++ b/_module/utp/couch001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14606, "type": "cexolocstring", "value": { - "0": "The sofa seems warm and inviting, perfect for a short nap." + "0": "The sofa seems warm and inviting, perfect for a short nap.", + "id": 14606 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5823, "type": "cexolocstring", "value": { - "0": "Couch" + "0": "Couch", + "id": 5823 } }, "OnClick": { diff --git a/_module/utp/dem_color_text.utp.json b/_module/utp/dem_color_text.utp.json index 4da2a2da..94ac64fe 100644 --- a/_module/utp/dem_color_text.utp.json +++ b/_module/utp/dem_color_text.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "You look about you, suspicious, but see nothing." + "0": "You look about you, suspicious, but see nothing.", + "id": 14662 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Color Tag Generator" + "0": "Color Tag Generator", + "id": 5800 } }, "OnClick": { diff --git a/_module/utp/invisobj001.utp.json b/_module/utp/invisobj001.utp.json index 44f726dd..6ae21a7d 100644 --- a/_module/utp/invisobj001.utp.json +++ b/_module/utp/invisobj001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "As you look carefully you can see a place where you can sit down." + "0": "As you look carefully you can see a place where you can sit down.", + "id": 14662 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Sit" + "0": "Sit", + "id": 5800 } }, "OnClick": { diff --git a/_module/utp/placeablerespawn.utp.json b/_module/utp/placeablerespawn.utp.json index 27bed190..84ccb291 100644 --- a/_module/utp/placeablerespawn.utp.json +++ b/_module/utp/placeablerespawn.utp.json @@ -33,10 +33,10 @@ "value": 10000 }, "Description": { - "id": 14662, "type": "cexolocstring", "value": { - "0": "You look about you, suspicious, but see nothing." + "0": "You look about you, suspicious, but see nothing.", + "id": 14662 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5800, "type": "cexolocstring", "value": { - "0": "Placeable Spawner" + "0": "Placeable Spawner", + "id": 5800 } }, "OnClick": { diff --git a/_module/utp/solblue.utp.json b/_module/utp/solblue.utp.json index 44072109..99e323bd 100644 --- a/_module/utp/solblue.utp.json +++ b/_module/utp/solblue.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14718, "type": "cexolocstring", "value": { - "0": "A searing shaft of blue light descends from some unseen place above." + "0": "A searing shaft of blue light descends from some unseen place above.", + "id": 14718 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 1 }, "LocName": { - "id": 14719, "type": "cexolocstring", "value": { - "0": "Starting Portal" + "0": "Starting Portal", + "id": 14719 } }, "OnClick": { diff --git a/_module/utp/stool001.utp.json b/_module/utp/stool001.utp.json index 23431dae..ca702b8c 100644 --- a/_module/utp/stool001.utp.json +++ b/_module/utp/stool001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14737, "type": "cexolocstring", "value": { - "0": "One leg seems slightly loose. You wonder how long the stool will last." + "0": "One leg seems slightly loose. You wonder how long the stool will last.", + "id": 14737 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 5825, "type": "cexolocstring", "value": { - "0": "Stool" + "0": "Stool", + "id": 5825 } }, "OnClick": { diff --git a/_module/utp/throneevil001.utp.json b/_module/utp/throneevil001.utp.json index db13f12a..f9255d00 100644 --- a/_module/utp/throneevil001.utp.json +++ b/_module/utp/throneevil001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14740, "type": "cexolocstring", "value": { - "0": "The high-backed throne looms out of the shadows, drawing your attention. Something in the design of it fills your heart with dread." + "0": "The high-backed throne looms out of the shadows, drawing your attention. Something in the design of it fills your heart with dread.", + "id": 14740 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 14741, "type": "cexolocstring", "value": { - "0": "Throne - Evil" + "0": "Throne - Evil", + "id": 14741 } }, "OnClick": { diff --git a/_module/utp/thronegood001.utp.json b/_module/utp/thronegood001.utp.json index f3c2008b..2fda0d17 100644 --- a/_module/utp/thronegood001.utp.json +++ b/_module/utp/thronegood001.utp.json @@ -33,10 +33,10 @@ "value": 15 }, "Description": { - "id": 14742, "type": "cexolocstring", "value": { - "0": "Whether by magic or the weight of history, the gold-seated throne exudes confidence and authority. Wise are the rulers who have called this seat their own." + "0": "Whether by magic or the weight of history, the gold-seated throne exudes confidence and authority. Wise are the rulers who have called this seat their own.", + "id": 14742 } }, "DisarmDC": { @@ -84,10 +84,10 @@ "value": 0 }, "LocName": { - "id": 14741, "type": "cexolocstring", "value": { - "0": "Throne - Good" + "0": "Throne - Good", + "id": 14741 } }, "OnClick": { diff --git a/_module/utw/spawnpoint.utw.json b/_module/utw/spawnpoint.utw.json index 258efd41..99ec9d72 100644 --- a/_module/utw/spawnpoint.utw.json +++ b/_module/utw/spawnpoint.utw.json @@ -23,10 +23,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Spawn Point" + "0": "Spawn Point", + "id": 14817 } }, "MapNote": { diff --git a/_module/utw/waypoint001.utw.json b/_module/utw/waypoint001.utw.json index c85ce4fd..c707b1b0 100644 --- a/_module/utw/waypoint001.utw.json +++ b/_module/utw/waypoint001.utw.json @@ -21,10 +21,10 @@ "value": "" }, "LocalizedName": { - "id": 14817, "type": "cexolocstring", "value": { - "0": "Respawn Location" + "0": "Respawn Location", + "id": 14817 } }, "MapNote": { diff --git a/_notes/genotypes/Amphidian.txt b/_notes/genotypes/Amphidian.txt index 87590996..300e8f6e 100644 --- a/_notes/genotypes/Amphidian.txt +++ b/_notes/genotypes/Amphidian.txt @@ -1,4 +1,4 @@ -The Engineered are some of the most common mutants on Gamma Terra, and the most likely to breed true and create communities of their own. Final Wars era scientists designed these “moreaus” primarily as living weapons and hyper-specialized workers and soldiers, though some breeds were made for entertainment, pleasure and experimentation. Whatever a particular strain’s origins, many of them escaped into the wild during or immediately following the Final Wars and not only survived, but prospered. Almost any higher animal imaginable, and a few fish & invertibrates, have been elevated to this man-like status, and to varying degrees. "Amphidians" is a catch-all term to describe engineered mutants that have a frog, salamander or similar amphibians as their genetic progenitor. +The Engineered are some of the most common mutants on Gamma Terra, and the most likely to breed true and create communities of their own. Final Wars era scientists designed these “moreaus” primarily as living weapons and hyper-specialized workers and soldiers, though some breeds were made for entertainment, pleasure and experimentation. Whatever a particular strain’s origins, many of them escaped into the wild during or immediately following the Final Wars and not only survived, but prospered. Almost any higher animal imaginable, and a few fish & invertibrates, have been elevated to this man-like status, and to varying degrees. "Amphidians" is a catch-all term to describe engineered mutants that have a frog, salamander or similar amphibians as their genetic progenitor. Amphidian Ability Adjustments: None