diff --git a/src/autotiles.cpp b/src/autotiles.cpp index 7938615..b0ce2a3 100644 --- a/src/autotiles.cpp +++ b/src/autotiles.cpp @@ -1,198 +1,269 @@ struct StaticRect { float x, y, w, h; }; extern const StaticRect autotileRects[] = { - { 32.5, 64.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 48.5, 80.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 48.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 32.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 0.5, 64.5, 15, 15 }, - { 16.5, 64.5, 15, 15 }, - { 0.5, 80.5, 15, 15 }, - { 16.5, 80.5, 15, 15 }, - { 0.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 0.5, 80.5, 15, 15 }, - { 16.5, 80.5, 15, 15 }, - { 0.5, 64.5, 15, 15 }, - { 16.5, 64.5, 15, 15 }, - { 0.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 0.5, 64.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 0.5, 80.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 32.5, 32.5, 15, 15 }, - { 48.5, 32.5, 15, 15 }, - { 32.5, 48.5, 15, 15 }, - { 48.5, 48.5, 15, 15 }, - { 32.5, 32.5, 15, 15 }, - { 48.5, 32.5, 15, 15 }, - { 32.5, 48.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 32.5, 32.5, 15, 15 }, - { 48.5, 32.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 48.5, 48.5, 15, 15 }, - { 32.5, 32.5, 15, 15 }, - { 48.5, 32.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 64.5, 15, 15 }, - { 80.5, 64.5, 15, 15 }, - { 64.5, 80.5, 15, 15 }, - { 80.5, 80.5, 15, 15 }, - { 64.5, 64.5, 15, 15 }, - { 80.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 64.5, 15, 15 }, - { 64.5, 80.5, 15, 15 }, - { 80.5, 80.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 64.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 80.5, 15, 15 }, - { 32.5, 96.5, 15, 15 }, - { 48.5, 96.5, 15, 15 }, - { 32.5, 112.5, 15, 15 }, - { 48.5, 112.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 48.5, 96.5, 15, 15 }, - { 32.5, 112.5, 15, 15 }, - { 48.5, 112.5, 15, 15 }, - { 32.5, 96.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 112.5, 15, 15 }, - { 48.5, 112.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 32.5, 112.5, 15, 15 }, - { 48.5, 112.5, 15, 15 }, - { 0.5, 64.5, 15, 15 }, - { 80.5, 64.5, 15, 15 }, - { 0.5, 80.5, 15, 15 }, - { 80.5, 80.5, 15, 15 }, - { 32.5, 32.5, 15, 15 }, - { 48.5, 32.5, 15, 15 }, - { 32.5, 112.5, 15, 15 }, - { 48.5, 112.5, 15, 15 }, - { 0.5, 32.5, 15, 15 }, - { 16.5, 32.5, 15, 15 }, - { 0.5, 48.5, 15, 15 }, - { 16.5, 48.5, 15, 15 }, - { 0.5, 32.5, 15, 15 }, - { 16.5, 32.5, 15, 15 }, - { 0.5, 48.5, 15, 15 }, - { 80.5, 16.5, 15, 15 }, - { 64.5, 32.5, 15, 15 }, - { 80.5, 32.5, 15, 15 }, - { 64.5, 48.5, 15, 15 }, - { 80.5, 48.5, 15, 15 }, - { 64.5, 32.5, 15, 15 }, - { 80.5, 32.5, 15, 15 }, - { 64.5, 16.5, 15, 15 }, - { 80.5, 48.5, 15, 15 }, - { 64.5, 96.5, 15, 15 }, - { 80.5, 96.5, 15, 15 }, - { 64.5, 112.5, 15, 15 }, - { 80.5, 112.5, 15, 15 }, - { 64.5, 0.5, 15, 15 }, - { 80.5, 96.5, 15, 15 }, - { 64.5, 112.5, 15, 15 }, - { 80.5, 112.5, 15, 15 }, - { 0.5, 96.5, 15, 15 }, - { 16.5, 96.5, 15, 15 }, - { 0.5, 112.5, 15, 15 }, - { 16.5, 112.5, 15, 15 }, - { 0.5, 96.5, 15, 15 }, - { 80.5, 0.5, 15, 15 }, - { 0.5, 112.5, 15, 15 }, - { 16.5, 112.5, 15, 15 }, - { 0.5, 32.5, 15, 15 }, - { 80.5, 32.5, 15, 15 }, - { 0.5, 48.5, 15, 15 }, - { 80.5, 48.5, 15, 15 }, - { 0.5, 32.5, 15, 15 }, - { 16.5, 32.5, 15, 15 }, - { 0.5, 112.5, 15, 15 }, - { 16.5, 112.5, 15, 15 }, - { 0.5, 96.5, 15, 15 }, - { 80.5, 96.5, 15, 15 }, - { 0.5, 112.5, 15, 15 }, - { 80.5, 112.5, 15, 15 }, - { 64.5, 32.5, 15, 15 }, - { 80.5, 32.5, 15, 15 }, - { 64.5, 112.5, 15, 15 }, - { 80.5, 112.5, 15, 15 }, - { 0.5, 32.5, 15, 15 }, - { 80.5, 32.5, 15, 15 }, - { 0.5, 112.5, 15, 15 }, - { 80.5, 112.5, 15, 15 }, - { 0.5, 0.5, 15, 15 }, - { 16.5, 0.5, 15, 15 }, - { 0.5, 16.5, 15, 15 }, - { 16.5, 16.5, 15, 15 } + // where "-" - "Water", "#" - filled "water" connected subtile, "C" - cetral subtile, "U" - unused + // autotile example (Look Graphics/Autotiles/minitiles.png), in this example mini tile is 2x2 + /* + UUUU UUUU -##- + UUUU UUUU #CC# + UUUU UUUU #CC# + UUUU UUUU -##- + + ---- ---- ---- + -C#C #CC# C#C- + -### #### ###- + -C#C #CC# C#C- + + -### #### ###- + -C#C #CC# C#C- + -C#C #CC# C#C- + -### #### ###- + + -C#C #CC# C#C- + -### #### ###- + -C#C #CC# C#C- + ---- ---- ---- + */ +// 0 + { 32.5, 64.5, 15, 15 }, // #### + { 48.5, 64.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // #### +// 1 + { 64.5, 0.5, 15, 15 }, // -### + { 48.5, 64.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // #### +// 2 + { 32.5, 64.5, 15, 15 }, // ###- + { 80.5, 0.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // #### +// 3 + { 64.5, 0.5, 15, 15 }, // -##- + { 80.5, 0.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // #### +// 4 + { 32.5, 64.5, 15, 15 }, // #### + { 48.5, 64.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 80.5, 16.5, 15, 15 }, // ###- +// 5 + { 64.5, 0.5, 15, 15 }, // -### + { 48.5, 64.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 80.5, 16.5, 15, 15 }, // ###- +// 6 + { 32.5, 64.5, 15, 15 }, // ###- + { 80.5, 0.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 80.5, 16.5, 15, 15 }, // ###- +// 7 + { 64.5, 0.5, 15, 15 }, // -##- + { 80.5, 0.5, 15, 15 }, // #CC# + { 32.5, 80.5, 15, 15 }, // #CC# + { 80.5, 16.5, 15, 15 }, // ###- +// 8 + { 32.5, 64.5, 15, 15 }, // #### + { 48.5, 64.5, 15, 15 }, // #CC# + { 64.5, 16.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // -### +// 9 + { 64.5, 0.5, 15, 15 }, // -### + { 48.5, 64.5, 15, 15 }, // #CC# + { 64.5, 16.5, 15, 15 }, // #CС# + { 48.5, 80.5, 15, 15 }, // -### +// 10 + { 32.5, 64.5, 15, 15 }, // ###- + { 80.5, 0.5, 15, 15 }, // #CC# + { 64.5, 16.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // -### +// 11 + { 64.5, 0.5, 15, 15 }, // -##- + { 80.5, 0.5, 15, 15 }, // #CC# + { 64.5, 16.5, 15, 15 }, // #CC# + { 48.5, 80.5, 15, 15 }, // -### +// 12 + { 32.5, 64.5, 15, 15 }, // #### + { 48.5, 64.5, 15, 15 }, // #CC# + { 64.5, 16.5, 15, 15 }, // #CC# + { 80.5, 16.5, 15, 15 }, // -##- +// 13 + { 64.5, 0.5, 15, 15 }, // + { 48.5, 64.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 14 + { 32.5, 64.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 15 + { 64.5, 0.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 16 + { 0.5, 64.5, 15, 15 }, // + { 16.5, 64.5, 15, 15 }, // + { 0.5, 80.5, 15, 15 }, // + { 16.5, 80.5, 15, 15 }, // +// 17 + { 0.5, 64.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 0.5, 80.5, 15, 15 }, // + { 16.5, 80.5, 15, 15 }, // +// 18 + { 0.5, 64.5, 15, 15 }, // + { 16.5, 64.5, 15, 15 }, // + { 0.5, 80.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 19 + { 0.5, 64.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 0.5, 80.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 20 + { 32.5, 32.5, 15, 15 }, // + { 48.5, 32.5, 15, 15 }, // + { 32.5, 48.5, 15, 15 }, // + { 48.5, 48.5, 15, 15 }, // +// 21 + { 32.5, 32.5, 15, 15 }, // + { 48.5, 32.5, 15, 15 }, // + { 32.5, 48.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 22 + { 32.5, 32.5, 15, 15 }, // + { 48.5, 32.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 48.5, 48.5, 15, 15 }, // +// 23 + { 32.5, 32.5, 15, 15 }, // + { 48.5, 32.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 24 + { 64.5, 64.5, 15, 15 }, // + { 80.5, 64.5, 15, 15 }, // + { 64.5, 80.5, 15, 15 }, // + { 80.5, 80.5, 15, 15 }, // +// 25 + { 64.5, 64.5, 15, 15 }, // + { 80.5, 64.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 80.5, 15, 15 }, // +// 26 + { 64.5, 0.5, 15, 15 }, // + { 80.5, 64.5, 15, 15 }, // + { 64.5, 80.5, 15, 15 }, // + { 80.5, 80.5, 15, 15 }, // +// 27 + { 64.5, 0.5, 15, 15 }, // + { 80.5, 64.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 80.5, 15, 15 }, // +// 28 + { 32.5, 96.5, 15, 15 }, // + { 48.5, 96.5, 15, 15 }, // + { 32.5, 112.5, 15, 15 }, // + { 48.5, 112.5, 15, 15 }, // +// 29 + { 64.5, 0.5, 15, 15 }, // + { 48.5, 96.5, 15, 15 }, // + { 32.5, 112.5, 15, 15 }, // + { 48.5, 112.5, 15, 15 }, // +// 30 + { 32.5, 96.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 32.5, 112.5, 15, 15 }, // + { 48.5, 112.5, 15, 15 }, // +// 31 + { 64.5, 0.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 32.5, 112.5, 15, 15 }, // + { 48.5, 112.5, 15, 15 }, // +// 32 + { 0.5, 64.5, 15, 15 }, // + { 80.5, 64.5, 15, 15 }, // + { 0.5, 80.5, 15, 15 }, // + { 80.5, 80.5, 15, 15 }, // +// 33 + { 32.5, 32.5, 15, 15 }, // + { 48.5, 32.5, 15, 15 }, // + { 32.5, 112.5, 15, 15 }, // + { 48.5, 112.5, 15, 15 }, // +// 34 + { 0.5, 32.5, 15, 15 }, // + { 16.5, 32.5, 15, 15 }, // + { 0.5, 48.5, 15, 15 }, // + { 16.5, 48.5, 15, 15 }, // +// 35 + { 0.5, 32.5, 15, 15 }, // + { 16.5, 32.5, 15, 15 }, // + { 0.5, 48.5, 15, 15 }, // + { 80.5, 16.5, 15, 15 }, // +// 36 + { 64.5, 32.5, 15, 15 }, // + { 80.5, 32.5, 15, 15 }, // + { 64.5, 48.5, 15, 15 }, // + { 80.5, 48.5, 15, 15 }, // +// 37 + { 64.5, 32.5, 15, 15 }, // + { 80.5, 32.5, 15, 15 }, // + { 64.5, 16.5, 15, 15 }, // + { 80.5, 48.5, 15, 15 }, // +// 38 + { 64.5, 96.5, 15, 15 }, // + { 80.5, 96.5, 15, 15 }, // + { 64.5, 112.5, 15, 15 }, // + { 80.5, 112.5, 15, 15 }, // +// 39 + { 64.5, 0.5, 15, 15 }, // + { 80.5, 96.5, 15, 15 }, // + { 64.5, 112.5, 15, 15 }, // + { 80.5, 112.5, 15, 15 }, // +// 40 + { 0.5, 96.5, 15, 15 }, // + { 16.5, 96.5, 15, 15 }, // + { 0.5, 112.5, 15, 15 }, // + { 16.5, 112.5, 15, 15 }, // +// 41 + { 0.5, 96.5, 15, 15 }, // + { 80.5, 0.5, 15, 15 }, // + { 0.5, 112.5, 15, 15 }, // + { 16.5, 112.5, 15, 15 }, // +// 42 + { 0.5, 32.5, 15, 15 }, // + { 80.5, 32.5, 15, 15 }, // + { 0.5, 48.5, 15, 15 }, // + { 80.5, 48.5, 15, 15 }, // +// 43 + { 0.5, 32.5, 15, 15 }, // + { 16.5, 32.5, 15, 15 }, // + { 0.5, 112.5, 15, 15 }, // + { 16.5, 112.5, 15, 15 }, // +// 44 + { 0.5, 96.5, 15, 15 }, // + { 80.5, 96.5, 15, 15 }, // + { 0.5, 112.5, 15, 15 }, // + { 80.5, 112.5, 15, 15 }, // +// 45 + { 64.5, 32.5, 15, 15 }, // + { 80.5, 32.5, 15, 15 }, // + { 64.5, 112.5, 15, 15 }, // + { 80.5, 112.5, 15, 15 }, // +// 46 + { 0.5, 32.5, 15, 15 }, // + { 80.5, 32.5, 15, 15 }, // + { 0.5, 112.5, 15, 15 }, // + { 80.5, 112.5, 15, 15 }, // +// 47 + { 0.5, 0.5, 15, 15 }, // + { 16.5, 0.5, 15, 15 }, // + { 0.5, 16.5, 15, 15 }, // + { 16.5, 16.5, 15, 15 } // }; extern const int autotileRectsN = sizeof(autotileRects) / sizeof(autotileRects[0]);