</code></pre></div></div><p>Returns a pointer to the object (critter) the player is having a conversation or bartering with.</p><hr/><h3class="d-inline-block"id="get_flags"><ahref="#get_flags"class="anchor-heading"aria-labelledby="get_flags"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>get_flags</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">int</span><spanclass="n">get_flags</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">obj</span><spanclass="p">)</span>
</code></pre></div></div><p>Gets the current value of object flags (see <codeclass="language-plaintext highlighter-rouge">define_extra.h</code> for available flags).</p><hr/><h3class="d-inline-block"id="get_object_data"><ahref="#get_object_data"class="anchor-heading"aria-labelledby="get_object_data"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>get_object_data</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="n">get_object_data</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">object</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">offset</span><spanclass="p">)</span>
</code></pre></div></div><p>Returns the data at the specified offset of an object (see <codeclass="language-plaintext highlighter-rouge">OBJ_DATA_*</code> constants in <codeclass="language-plaintext highlighter-rouge">define_extra.h</code> for offsets).</p><hr/><h3id="get_script"><ahref="#get_script"class="anchor-heading"aria-labelledby="get_script"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>get_script</strong></h3><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">int</span><spanclass="n">get_script</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">obj</span><spanclass="p">)</span>
</code></pre></div></div><ul><li>accepts a pointer to an object and returns its scriptID (line number in <codeclass="language-plaintext highlighter-rouge">scripts.lst</code>), or 0 if the object is unscripted.</li><li>returns -1 on argument error.</li></ul><hr/><h3class="d-inline-block"id="loot_obj"><ahref="#loot_obj"class="anchor-heading"aria-labelledby="loot_obj"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>loot_obj</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="n">ObjectPtr</span><spanclass="n">loot_obj</span><spanclass="p">()</span>
</code></pre></div></div><p>Returns a pointer to the target object (container or critter) of the loot screen.</p><hr/><h3id="obj_is_carrying_obj"><ahref="#obj_is_carrying_obj"class="anchor-heading"aria-labelledby="obj_is_carrying_obj"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>obj_is_carrying_obj</strong></h3><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">int</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">invenObj</span><spanclass="p">,</span><spanclass="n">ObjectPtr</span><spanclass="n">itemObj</span><spanclass="p">)</span>
</code></pre></div></div><p>Returns number of <codeclass="language-plaintext highlighter-rouge">itemObj</code> inside invenObj’s inventory, note that both arguments are object pointers. useful when dealing with different stacks of same item (<codeclass="language-plaintext highlighter-rouge">obj_is_carrying_obj_pid</code> just returns total for all stacks of the same PID.)</p><hr/><h3class="d-inline-block"id="obj_is_openable"><ahref="#obj_is_openable"class="anchor-heading"aria-labelledby="obj_is_openable"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>obj_is_openable</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">bool</span><spanclass="n">obj_is_openable</span><spanclass="p">(</span><spanclass="n">object</span><spanclass="n">obj</span><spanclass="p">)</span>
</code></pre></div></div><p>Returns True if the object is openable (i.e. has an opening/closing animation), False otherwise</p><hr/><h3class="d-inline-block"id="obj_under_cursor"><ahref="#obj_under_cursor"class="anchor-heading"aria-labelledby="obj_under_cursor"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>obj_under_cursor</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="n">ObjectPtr</span><spanclass="n">obj_under_cursor</span><spanclass="p">(</span><spanclass="kt">bool</span><spanclass="n">onlyCritter</span><spanclass="p">,</span><spanclass="kt">bool</span><spanclass="n">includeDude</span><spanclass="p">)</span>
</code></pre></div></div><p>Returns the object under the cursor on the main game screen.</p><ul><li>onlyCritter: <ul><li>True - only checks critters and ignores their cover (roof tiles, walls, scenery, etc.)</li><li>False - checks all objects (can’t check critters under objects)</li></ul></li><li>passing False to the includeDude argument will ignore dude_obj <ul><li><strong>NOTE:</strong> to get an object located on a tile when the cursor is in movement mode (hexagon cursor), use the <codeclass="language-plaintext highlighter-rouge">tile_under_cursor</code> function</li></ul></li></ul><hr/><h3class="d-inline-block"id="real_dude_obj"><ahref="#real_dude_obj"class="anchor-heading"aria-labelledby="real_dude_obj"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>real_dude_obj</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="n">ObjectPtr</span><spanclass="n">real_dude_obj</span><spanclass="p">()</span>
</code></pre></div></div><p>Returns the initial <codeclass="language-plaintext highlighter-rouge">dude_obj</code> after <codeclass="language-plaintext highlighter-rouge">set_dude_obj</code> was used.</p><hr/><h3id="remove_script"><ahref="#remove_script"class="anchor-heading"aria-labelledby="remove_script"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>remove_script</strong></h3><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">remove_script</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">obj</span><spanclass="p">)</span>
</code></pre></div></div><p>Accepts a pointer to an object and will remove the script from that object.</p><hr/><h3class="d-inline-block"id="set_dude_obj"><ahref="#set_dude_obj"class="anchor-heading"aria-labelledby="set_dude_obj"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_dude_obj</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">set_dude_obj</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">critter</span><spanclass="p">)</span>
</code></pre></div></div><p>Take control of a given critter. Passing value 0 will reset control back to “real” dude.</p><hr/><h3class="d-inline-block"id="set_flags"><ahref="#set_flags"class="anchor-heading"aria-labelledby="set_flags"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_flags</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">set_flags</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">obj</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">flags</span><spanclass="p">)</span>
</code></pre></div></div><p>Sets the current flags of an object. All flags are rewritten with given integer, so first get current flags with <codeclass="language-plaintext highlighter-rouge">get_flags</code> and use <codeclass="language-plaintext highlighter-rouge">bwor/bwand</code> to set/remove specific flag.</p><hr/><h3class="d-inline-block"id="set_object_data"><ahref="#set_object_data"class="anchor-heading"aria-labelledby="set_object_data"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_object_data</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="n">set_object_data</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">object</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">offset</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">data</span><spanclass="p">)</span>
</code></pre></div></div><p>Sets the data at the specified offset of an object.</p><hr/><h3class="d-inline-block"id="set_scr_name"><ahref="#set_scr_name"class="anchor-heading"aria-labelledby="set_scr_name"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_scr_name</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">set_scr_name</span><spanclass="p">(</span><spanclass="n">string</span><spanclass="n">name</span><spanclass="p">)</span>
</code></pre></div></div><p>Overrides the name of the script object that was set from <codeclass="language-plaintext highlighter-rouge">scrname.msg</code>.</p><ul><li>The changed name will be reset each time the player leaves the map or reloads the game</li><li>Passing an empty string (“”) to the <codeclass="language-plaintext highlighter-rouge">name</code> argument or omitting it will allow the game to get the name for the object from pro_*.msg files</li><li><strong>NOTE:</strong> this function is intended for use in normal game scripts and overrides the name only once for the same object until reset</li></ul><hr/><h3id="set_script"><ahref="#set_script"class="anchor-heading"aria-labelledby="set_script"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_script</strong></h3><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">set_script</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">obj</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">scriptID</span><spanclass="p">)</span>
</code></pre></div></div><p>Accepts a pointer to an object and scriptID, and applies the given script to an object (scriptID accept the same values as <codeclass="language-plaintext highlighter-rouge">create_object_sid </code>from sfall 3.6). If used on an object that is already scripted, it will remove the existing script first; you cannot have multiple scripts attached to a single object. Calling <codeclass="language-plaintext highlighter-rouge">set_script</code> on <codeclass="language-plaintext highlighter-rouge">self_obj</code> will have all sorts of wacky side effects, and should be avoided. If you add 0x80000000 to the sid when calling <codeclass="language-plaintext highlighter-rouge">set_script</code>, <codeclass="language-plaintext highlighter-rouge">map_enter_p_proc</code> will be SKIPPED. The <codeclass="language-plaintext highlighter-rouge">start</code> proc will always be run.</p><hr/><h3id="set_self"><ahref="#set_self"class="anchor-heading"aria-labelledby="set_self"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_self</strong></h3><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">void</span><spanclass="n">set_self</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">setObj</span><spanclass="p">)</span>
</code></pre></div></div><p>Overrides the script’s <codeclass="language-plaintext highlighter-rouge">self_obj</code> for the next function call.</p><ul><li>It is primarily used to allow the calling of functions which take an implicit <codeclass="language-plaintext highlighter-rouge">self_obj</code> parameter (e.g. <codeclass="language-plaintext highlighter-rouge">drop_obj</code>) from global scripts, but it can also be used from normal scripts.</li><li><codeclass="language-plaintext highlighter-rouge">self_obj</code> will be reverted to its original value after the next function call.</li><li>Calling <codeclass="language-plaintext highlighter-rouge">set_self(0)</code> will also revert <codeclass="language-plaintext highlighter-rouge">self_obj</code> to its original value. It is recommended to call this after each use of <codeclass="language-plaintext highlighter-rouge">set_self</code> in normal scripts in order to avoid unforeseen side effects.</li><li><codeclass="language-plaintext highlighter-rouge">source_obj</code>, <codeclass="language-plaintext highlighter-rouge">target_obj</code>, and similar functions will not work if preceded by <codeclass="language-plaintext highlighter-rouge">set_self</code>.</li><li><strong>NOTE:</strong> for <codeclass="language-plaintext highlighter-rouge">use_obj</code>, <codeclass="language-plaintext highlighter-rouge">use_obj_on_obj</code> vanilla functions to work correctly, it is required to call <codeclass="language-plaintext highlighter-rouge">set_self</code> twice. You can also access the local variables in the script of an object after calling <codeclass="language-plaintext highlighter-rouge">set_self</code> twice.</li></ul><hr/><h3class="d-inline-block"id="set_unique_id"><ahref="#set_unique_id"class="anchor-heading"aria-labelledby="set_unique_id"><svgviewBox="0 0 16 16"aria-hidden="true"><usexlink:href="#svg-link"></use></svg></a><strong>set_unique_id</strong></h3><pclass="label label-green">sfall.h</p><divclass="language-c++ highlighter-rouge"><divclass="highlight"><preclass="highlight"><code><spanclass="kt">int</span><spanclass="n">set_unique_id</span><spanclass="p">(</span><spanclass="n">ObjectPtr</span><spanclass="n">object</span><spanclass="p">,</span><spanclass="kt">int</span><spanclass="n">flag</span><spanclass="p">)</span>
</code></pre></div></div><p>Assigns a unique ID number to the object and returns it. If a unique ID number has already been assigned to an object, then ID number is returned without reassignment. <codeclass="language-plaintext highlighter-rouge">flag</code> is optional.</p><ul><li>items with unique IDs will not stack with other items of the same type in the inventory</li><li>to just get the current ID number of an object, use <codeclass="language-plaintext highlighter-rouge">get_object_data(object, OBJ_DATA_ID)</code></li><li>unique ID numbers are saved in your savegame, and have a range from 0x10000000 to 0x7FFFFFFF</li><li>there is also a unique ID number range for the player and party members from 18000 to 83535</li><li>to assign a new ID number generated by the engine to the object (i.e. unassign a unique ID), call the function with two arguments and pass -1 for the flag argument</li></ul></main></div></div><divclass="search-overlay"></div></div></body></html>