<pclass="purpose">Creating a simple graph of scenes, ends and connectors.</p>
<pclass="commentary firstcommentary"><aid="SP1"class="paragraph-anchor"></a><b>§1. </b>As with <ahref="2-fi.html"class="internal">Faux Instances</a>, we need to make faux scenes: these more or less
reconstruct the original data structures in Inform, though they are much less
annotated.
</p>
<preclass="definitions code-font"><spanclass="definition-keyword">define</span><spanclass="constant-syntax">MAX_SCENE_ENDS</span><spanclass="plain-syntax"></span><spanclass="constant-syntax">32</span><spanclass="plain-syntax"></span><spanclass="comment-syntax"> this must exceed 31</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">struct</span><spanclass="plain-syntax"></span><spanclass="reserved-syntax">simplified_connector</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">next</span><spanclass="plain-syntax">; </span><spanclass="comment-syntax"> next in list of connectors for a scene end</span>
<spanclass="identifier-syntax">linked_list</span><spanclass="plain-syntax"> *</span><spanclass="function-syntax">FauxScenes::list_of_faux_scenes</span><buttonclass="popup"onclick="togglePopup('usagePopup1')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup1">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::list_of_faux_scenes</span></span>:<br/>Indexing API - <ahref="1-ia.html#SP5">§5</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">index_session</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">session</span><spanclass="plain-syntax">) {</span>
<spanclass="plain-syntax"></span><spanclass="reserved-syntax">if</span><spanclass="plain-syntax"> (</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">-></span><spanclass="element-syntax">no_ends</span><spanclass="plain-syntax">>= </span><spanclass="constant-syntax">MAX_SCENE_ENDS</span><spanclass="plain-syntax">) </span><spanclass="identifier-syntax">internal_error</span><spanclass="plain-syntax">(</span><spanclass="string-syntax">"too many scene ends"</span><spanclass="plain-syntax">);</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::is_entire_game</span><buttonclass="popup"onclick="togglePopup('usagePopup2')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup2">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::is_entire_game</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_1">§1.1</a>, <ahref="3-pe2.html#SP1_3_1">§1.3.1</a>, <ahref="3-pe2.html#SP2_1">§2.1</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::recurs</span><buttonclass="popup"onclick="togglePopup('usagePopup3')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup3">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::recurs</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_1">§1.3.1.1</a>, <ahref="3-pe2.html#SP2_4">§2.4</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::never_ends</span><buttonclass="popup"onclick="togglePopup('usagePopup4')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup4">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::never_ends</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP2_3">§2.3</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::starts_at_start_of_play</span><buttonclass="popup"onclick="togglePopup('usagePopup5')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup5">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::starts_at_start_of_play</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_1">§1.1</a>, <ahref="3-pe2.html#SP1_3_1_4_1">§1.3.1.4.1</a>, <ahref="3-pe2.html#SP2_1">§2.1</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::starts_on_condition</span><buttonclass="popup"onclick="togglePopup('usagePopup6')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup6">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::starts_on_condition</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_1">§1.1</a>, <ahref="3-pe2.html#SP2_1">§2.1</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::no_ends</span><buttonclass="popup"onclick="togglePopup('usagePopup7')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup7">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::no_ends</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1">§1.3.1</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">ssc</span><spanclass="plain-syntax">) {</span>
<spanclass="identifier-syntax">text_stream</span><spanclass="plain-syntax"> *</span><spanclass="function-syntax">FauxScenes::anchor_condition</span><buttonclass="popup"onclick="togglePopup('usagePopup10')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup10">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::anchor_condition</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_4_2">§1.3.1.4.2</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_end</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">se</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::has_anchor_condition</span><buttonclass="popup"onclick="togglePopup('usagePopup11')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup11">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::has_anchor_condition</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1">§1.3.1</a>, <ahref="3-pe2.html#SP1_3_1_4_2">§1.3.1.4.2</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_end</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">se</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::anchor_condition_set_at</span><buttonclass="popup"onclick="togglePopup('usagePopup12')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup12">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::anchor_condition_set_at</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_4_2">§1.3.1.4.2</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_end</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">se</span><spanclass="plain-syntax">) {</span>
<spanclass="identifier-syntax">inter_symbol</span><spanclass="plain-syntax"> *</span><spanclass="function-syntax">FauxScenes::end_rulebook</span><buttonclass="popup"onclick="togglePopup('usagePopup13')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup13">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::end_rulebook</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_5">§1.3.1.5</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_end</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">se</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">simplified_scene</span><spanclass="plain-syntax"> *</span><spanclass="function-syntax">FauxScenes::connects_to</span><buttonclass="popup"onclick="togglePopup('usagePopup14')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup14">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::connects_to</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_4_3">§1.3.1.4.3</a>, <ahref="3-pe2.html#SP2_5">§2.5</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_connector</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">scon</span><spanclass="plain-syntax">) {</span>
<spanclass="plain-syntax"></span><spanclass="identifier-syntax">internal_error</span><spanclass="plain-syntax">(</span><spanclass="string-syntax">"scene metadata broken: bad connector"</span><spanclass="plain-syntax">);</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::scon_end</span><buttonclass="popup"onclick="togglePopup('usagePopup15')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup15">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::scon_end</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_4_3">§1.3.1.4.3</a>, <ahref="3-pe2.html#SP2_5">§2.5</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_connector</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">scon</span><spanclass="plain-syntax">) {</span>
<spanclass="reserved-syntax">int</span><spanclass="plain-syntax"></span><spanclass="function-syntax">FauxScenes::scon_at</span><buttonclass="popup"onclick="togglePopup('usagePopup16')"><spanclass="comment-syntax">?</span><spanclass="popuptext"id="usagePopup16">Usage of <spanclass="code-font"><spanclass="function-syntax">FauxScenes::scon_at</span></span>:<br/>Plot Element - <ahref="3-pe2.html#SP1_3_1_4_3">§1.3.1.4.3</a></span></button><spanclass="plain-syntax">(</span><spanclass="reserved-syntax">simplified_connector</span><spanclass="plain-syntax"> *</span><spanclass="identifier-syntax">scon</span><spanclass="plain-syntax">) {</span>
<ulclass="endnotetexts"><li>The structure simplified_scene is accessed in 2/ir, 3/pe2 and here.</li><li>The structure simplified_end is accessed in 3/pe2 and here.</li><li>The structure simplified_connector is accessed in 3/pe2 and here.</li></ul>