<?xml version="1.0" encoding="UTF-8"?>
<net name="d_pong_p2" type="iopt-flow">
  <component id="c042" class="local/d_pong_if.xml" x="595" y="280" width="190" height="220" rot="0" implementation="iopt-flow" target="default">
    <name off_x="-95" off_y="-115" text="P2_interface"/>
    <source_model file="files/d_pong_if.xml"/>
    <input id="c042.Crash" name="Crash" type="event" off_x="-95" off_y="-90"/>
    <input id="c042.Boing" name="Boing" type="event" off_x="-95" off_y="-70"/>
    <input id="c042.ShowStartBtn" name="ShowStartBtn" off_x="-95" off_y="-50" type="boolean"/>
    <input id="c042.RunGame" name="RunGame" off_x="-95" off_y="-30" type="boolean"/>
    <input id="c042.X" name="X" off_x="-95" off_y="-10" type="range" min="-1" max="801"/>
    <input id="c042.Y" name="Y" off_x="-95" off_y="10" type="range" min="-1" max="801"/>
    <input id="c042.ShowGameOver" name="ShowGameOver" off_x="-95" off_y="30" type="boolean"/>
    <input id="c042.BaseX" name="BaseX" off_x="-95" off_y="50" type="range" min="0" max="800"/>
    <input id="c042.Score" name="Score" off_x="-95" off_y="70" type="range" min="0" max="10000"/>
    <input id="c042.P2BaseX" name="P2BaseX" off_x="-95" off_y="90" type="range" min="0" max="800"/>
    <output id="c042.StartBtn" name="StartBtn" type="event" off_x="95" off_y="-90"/>
    <output id="c042.ClrGameOver" name="ClrGameOver" type="event" off_x="95" off_y="-70"/>
    <output id="c042.Pause" name="Pause" off_x="95" off_y="-50" type="boolean"/>
    <output id="c042.LeftBtn" name="LeftBtn" off_x="95" off_y="-30" type="boolean"/>
    <output id="c042.RightBtn" name="RightBtn" off_x="95" off_y="-10" type="boolean"/>
  </component>
  <arc id="a043" type="read" source="c1.X" target="c042.X"/>
  <arc id="a046" type="read" source="c1.Score" target="c042.Score"/>
  <arc id="a001" type="read" source="c1.GameOver" target="c042.ShowGameOver"/>
  <arc id="a003" type="read" source="c1.Crash" target="c042.Crash"/>
  <arc id="a004" type="read" source="c1.Boing" target="c042.Boing"/>
  <arc id="a005" type="read" source="c1.Run" target="c042.RunGame"/>
  <component id="c1" class="local/d_pong_eng.xml" x="255" y="280" width="190" height="220" rot="0" implementation="iopt-flow" target="distributed" res_location="player1">
    <name off_x="-95" off_y="-115" text="game_engine"/>
    <source_model file="files/d_pong_eng.xml"/>
    <input id="c1.Rst" name="Rst" type="event" off_x="-95" off_y="-90"/>
    <input id="c1.StartGame" name="StartGame" type="event" off_x="-95" off_y="-70"/>
    <input id="c1.Pause" name="Pause" off_x="-95" off_y="-50" type="boolean"/>
    <input id="c1.Player2On" name="Player2On" off_x="-95" off_y="-30" type="boolean" on_error="0"/>
    <input id="c1.P1LeftBtn" name="P1LeftBtn" off_x="-95" off_y="-10" type="boolean"/>
    <input id="c1.P2LeftBtn" name="P2LeftBtn" off_x="-95" off_y="10" type="boolean"/>
    <input id="c1.P1RightBtn" name="P1RightBtn" off_x="-95" off_y="30" type="boolean"/>
    <input id="c1.P2RightBtn" name="P2RightBtn" off_x="-95" off_y="50" type="boolean"/>
    <output id="c1.Crash" name="Crash" type="event" off_x="95" off_y="-90"/>
    <output id="c1.Boing" name="Boing" type="event" off_x="95" off_y="-70"/>
    <output id="c1.Ready" name="Ready" off_x="95" off_y="-50" type="range" min="0" max="255"/>
    <output id="c1.GameOver" name="GameOver" off_x="95" off_y="-30" type="range" min="0" max="255"/>
    <output id="c1.Run" name="Run" off_x="95" off_y="-10" type="range" min="0" max="255"/>
    <output id="c1.X" name="X" off_x="95" off_y="10" type="range" min="-1" max="801"/>
    <output id="c1.Y" name="Y" off_x="95" off_y="30" type="range" min="-1" max="801"/>
    <output id="c1.Score" name="Score" off_x="95" off_y="50" type="range" min="0" max="10000"/>
    <output id="c1.P2BaseX" name="P2BaseX" off_x="95" off_y="70" type="range" min="0" max="800"/>
    <output id="c1.BaseX" name="BaseX" off_x="95" off_y="90" type="range" min="0" max="800"/>
  </component>
  <arc id="a006" type="read" source="c1.BaseX" target="c042.P2BaseX"/>
  <arc id="a012" type="read" source="c1.P2BaseX" target="c042.BaseX"/>
  <operation id="o013" x="415" y="310" rot="0" shape="arrow" size="16">
    <name off_x="-11" off_y="-16" text="Mirror Y"/>
    <input off_x="-16" off_y="0" name="Y" id="o013.Y" type="range" min="-1" max="801" dynamic="all"/>
    <output off_x="16" off_y="0" name="out" id="o013.out" type="range" min="-1" max="801" dynamic="type" frac="0">
      <expression>
        <operand type="literal" value="560"/>
        <operator type="sub"/>
        <operand type="signal" idRef="Y"/>
        <text>560 - Y</text>
      </expression>
    </output>
  </operation>
  <arc id="a014" type="read" source="c1.Y" target="o013.Y"/>
  <arc id="a015" type="read" source="o013.out" target="c042.Y"/>
  <arc id="a016" type="read" source="c042.LeftBtn" target="c1.P2LeftBtn" view="symbolic"/>
  <arc id="a017" type="read" source="c042.RightBtn" target="c1.P2RightBtn" view="symbolic"/>
  <operation id="o001" x="75" y="250" constant="1" rot="0" shape="rect" size="20" locked="true">
    <name off_x="-15" off_y="-5" text="1"/>
    <output off_x="20" off_y="0" name="K" id="o001.K" type="range" min="1" max="1" dynamic="none">
      <expression>
        <text>1</text>
        <operand type="literal" value="1"/>
      </expression>
    </output>
  </operation>
  <arc id="a007" type="read" source="o001.K" target="c1.Player2On"/>
</net>
