WIP - Zeliard

Zeliard is a tricky beast to make a map for in GC. First, Grid Cartographer is designed to be a square-perfect cartographing software for Wizardry or Dungeon Master style games, while Zeliard is a 2d-action platformer with RPG elements whose platforms are never perfectly aligned to make a 100% fitting map. Even trickier, levels are circular and loop around the edges.

On a technical level it's even worse, as the vertical axis encompasses actually four iterations of the loop, while the horizontal axis encompasses only one loop iteration.

So to get a usable map of the levels (a map based on the raw coordinates would be unwieldy and far too big), you first have to divide both x- and y-axis by a factor, and then make sure that at least three of of the four iterations of the vertical loop are mapped onto the first loop to make it seem like there is actually only on loop. So the offset for the y-axis has to be divided similarly as the raw x-/y-axis coordinates.

<?xml version="1.0" encoding="UTF-8" ?>
<gamelink>

    <card
        title="ZELIARD"
        short="ZELIARD"
        titlelo="Zeliard"
        sort_name="ZELIARD"
        system="DOS"
        beta="true"
    />

    <!-- "ZDOS" / "SODZ" -->
    <packet header="534F445A" size="14" footer="5A444F53" />

    <dsub>

        <!-- Zeliard DOS  -->
        <detect sys="e9b551c5" prg="b6270d0f" ph3="0" ph2="e8cbb715" ph1="e79" ph0="ba03">
            <peek bytes="44bf 44c0 44c1 44c2 4508" />
        </detect>

    </dsub>

    <regions>

        <region id="1" name="Malicia" ground_floor="true" start_floor="G" auto_create="true" >
            <grid width="48" height="13" origin_tl="true" />
        </region>

    </regions>

    <views>

        <!-- CLASSES -->
        <class name="base">
            <check offset="0" length="4" value="534F445A" />
            <seq offset="4" length="1" />
         </class>

        <!-- Malicia -->
        <packetview extends="base" region="1">
            <scalex div="5" />
            <scaley div="5" />
             <xpos offset="6" length="1" min="0" max="ef" />
            <ypos offset="8" length="1" min="0" max="3f" />
            <check offset="9" length="1" value="4" />
            <const_floor>G</const_floor>
        </packetview>

        <packetview extends="base" region="1">
            <scalex div="5" />
            <scaley div="5" />
             <xpos offset="6" length="1" min="0" max="ef" />
            <ypos offset="8" length="1" min="40" max="7f" />
            <check offset="9" length="1" value="4" />
            <move y="13"/>
            <const_floor>G</const_floor>
        </packetview>

        <packetview extends="base" region="1">
            <scalex div="5" />
            <scaley div="5" />
             <xpos offset="6" length="1" min="0" max="ef" />
            <ypos offset="8" length="1" min="80" max="bf" />
            <check offset="9" length="1" value="4" />
            <move y="26"/>
            <const_floor>G</const_floor>
        </packetview>

        <packetview extends="base" region="1">
            <scalex div="5" />
            <scaley div="5" />
             <xpos offset="6" length="1" min="0" max="ef" />
            <ypos offset="8" length="1" min="c0" max="ff" />
            <check offset="9" length="1" value="4" />
            <move y="38"/>
            <const_floor>G</const_floor>
        </packetview>

    </views>

</gamelink>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License