WIP - Captive

Some technical detail on how the map is constructed.

  • Each base has an outside and an inside map, each is a grid of 64x32 squares (length x height).
  • The maps have an upper-left origin.
  • Like in a lot of old games, when you go up or down a level on the inside map, you are actually only jumping between different parts of the same level/map, verticality is just technical trickery.
<?xml version="1.0" encoding="UTF-8" ?>
<gamelink>

    <card
        title="CAPTIVE"
        short="CAPTIVE"
        titlelo="Captive"
        sort_name="CAPTIVE 1"
        system="DOS"
        beta="true"
    />

    <!-- "CAPT" / "DOSC" -->
    <packet header="54504143" size="14" footer="43534f44" />

    <dsub>

        <!-- cappo.exe with 73575 bytes  -->
        <detect sys="e9b551c5" prg="cabdc539" ph3="0" ph2="2880f518" ph1="11f47" ph0="0">
            <peek bytes="15d90 15d92 15d94 15d96 5cdc" />
        </detect>

    </dsub>

    <regions>

        <region id="1" name="Butre" ground_floor="true" start_floor="G" auto_create="true" >
            <grid width="64" height="32" origin_tl="true" />
        </region>

        <region id="2" name="Pelphi" ground_floor="true" start_floor="G" >
            <grid width="64" height="32" origin_tl="true" />
        </region>

    </regions>

    <views>

        <!-- Classes -->
        <class name="base">
            <check offset="0" length="4" value="54504143" />
            <seq offset="4" length="1" />
            <xpos offset="5" length="1" min="0" max="3c" />
            <ypos offset="6" length="1" min="0" max="3c" />
            <face offset="7" length="1" n="0" e="3" s="2" w="1" />
        </class>

        <!-- Butre Outside -->
        <packetview extends="base" region="1">
            <check offset="8" length="1" value="0" />
            <check offset="9" length="1" value="57" />
            <const_floor>G</const_floor>
        </packetview>

        <!-- Butre Inside -->
        <packetview extends="base" region="1">
            <check offset="8" length="1" value="0" />
            <check offset="9" length="1" value="e1" />
            <const_floor>F1</const_floor>
        </packetview>

        <!-- Pelphi Outside -->
        <packetview extends="base" region="2">
            <check offset="8" length="1" value="1" />
            <check offset="9" length="1" value="57" />
            <const_floor>G</const_floor>
        </packetview>

        <!-- Pelphi Inside F1 -->
        <packetview extends="base" region="2">
            <xpos offset="5" length="1" min="0" max="e" />
            <ypos offset="6" length="1" min="0" max="7" />
            <check offset="8" length="1" value="1" />
            <check offset="9" length="1" value="e1" />
            <const_floor>F1</const_floor>
        </packetview>

        <!-- Pelphi Inside F2 -->
        <packetview extends="base" region="2">
            <xpos offset="5" length="1" min="10" max="3f" />
            <ypos offset="6" length="1" min="0" max="e" />
            <check offset="8" length="1" value="1" />
            <check offset="9" length="1" value="e1" />
            <move x="-16"/>
            <const_floor>F2</const_floor>
        </packetview>

    </views>

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