Files
sfall/windows-and-images/index.html
T

23 lines
44 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <link rel="stylesheet" href="/sfall/assets/css/just-the-docs-default.css"> <link rel="stylesheet" href="/sfall/assets/css/just-the-docs-head-nav.css" id="jtd-head-nav-stylesheet"> <style id="jtd-nav-activation"> .site-nav > ul.nav-list:first-child > li > a, .site-nav > ul.nav-list:first-child > li > ul > li:not(:nth-child(7)) > a, .site-nav > ul.nav-list:first-child > li > ul > li > ul > li > a { background-image: none; } .site-nav > ul.nav-list:not(:first-child) a, .site-nav li.external a { background-image: none; } .site-nav > ul.nav-list:first-child > li:nth-child(19) > ul > li:nth-child(7) > a { font-weight: 600; text-decoration: none; }.site-nav > ul.nav-list:first-child > li:nth-child(19) > button svg, .site-nav > ul.nav-list:first-child > li:nth-child(19) > ul > li:nth-child(7) > button svg { transform: rotate(-90deg); }.site-nav > ul.nav-list:first-child > li.nav-list-item:nth-child(19) > ul.nav-list, .site-nav > ul.nav-list:first-child > li.nav-list-item:nth-child(19) > ul.nav-list > li.nav-list-item:nth-child(7) > ul.nav-list { display: block; } </style> <script src="/sfall/assets/js/vendor/lunr.min.js"></script> <script src="/sfall/assets/js/just-the-docs.js"></script> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" href="/sfall/favicon.ico" type="image/x-icon"> <!-- Begin Jekyll SEO tag v2.8.0 --> <title>Windows and images | sfall</title> <meta name="generator" content="Jekyll v3.9.0" /> <meta property="og:title" content="Windows and images" /> <meta property="og:locale" content="en_US" /> <meta name="description" content="Sfall documentation" /> <meta property="og:description" content="Sfall documentation" /> <link rel="canonical" href="/sfall/windows-and-images/" /> <meta property="og:url" content="/sfall/windows-and-images/" /> <meta property="og:site_name" content="sfall" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta property="twitter:title" content="Windows and images" /> <script type="application/ld+json"> {"@context":"https://schema.org","@type":"WebPage","description":"Sfall documentation","headline":"Windows and images","url":"/sfall/windows-and-images/"}</script> <!-- End Jekyll SEO tag --> <link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png"> <link rel="manifest" href="/assets/favicon/site.webmanifest"> <link rel="mask-icon" href="/assets/favicon/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-config" content="/assets/favicon/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> </head> <body> <a class="skip-to-main" href="#main-content">Skip to main content</a> <svg xmlns="http://www.w3.org/2000/svg" class="d-none"> <symbol id="svg-link" viewBox="0 0 24 24"> <title>Link</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> </svg> </symbol> <symbol id="svg-menu" viewBox="0 0 24 24"> <title>Menu</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> </svg> </symbol> <symbol id="svg-arrow-right" viewBox="0 0 24 24"> <title>Expand</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> <polyline points="9 18 15 12 9 6"></polyline> </svg> </symbol> <!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE --> <symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"> <title id="svg-external-link-title">(external link)</title> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line> </symbol> <symbol id="svg-doc" viewBox="0 0 24 24"> <title>Document</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> </svg> </symbol> <symbol id="svg-search" viewBox="0 0 24 24"> <title>Search</title> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </symbol> <!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md --> <symbol id="svg-copy" viewBox="0 0 16 16"> <title>Copy</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/> <path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/> </svg> </symbol> <symbol id="svg-copied" viewBox="0 0 16 16"> <title>Copied</title> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16"> <path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/> <path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/> </svg> </symbol> </svg> <div class="side-bar"> <div class="site-header" role="banner"> <a href="/sfall/" class="site-title lh-tight"> sfall </a> <button id="menu-button" class="site-button btn-reset" aria-label="Toggle menu" aria-pressed="false"> <svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> </button> </div> <nav aria-label="Main" id="site-nav" class="site-nav"> <ul class="nav-list"><li class="nav-list-item"><a href="/sfall/" class="nav-list-link">Home</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Arrays category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/arrays/" class="nav-list-link">Arrays</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/array-functions/" class="nav-list-link">Array functions</a></li><li class="nav-list-item"><a href="/sfall/lists/" class="nav-list-link">Lists</a></li></ul></li><li class="nav-list-item"><a href="/sfall/best-practices/" class="nav-list-link">Best practices</a></li><li class="nav-list-item"><a href="/sfall/data-types/" class="nav-list-link">Data types</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Global scripts category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/global-scripts/" class="nav-list-link">Global scripts</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/global-script-functions/" class="nav-list-link">Global script functions</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Hooks category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/hooks/" class="nav-list-link">Hooks</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/hook-functions/" class="nav-list-link">Hook functions</a></li><li class="nav-list-item"><a href="/sfall/hook-types/" class="nav-list-link">Hook types</a></li></ul></li><li class="nav-list-item"><a href="/sfall/sslc/" class="nav-list-link">SSLC</a></li><li class="nav-list-item"><a href="/sfall/optimization/" class="nav-list-link">Optimization</a></li><li class="nav-list-item"><a href="/sfall/animations/" class="nav-list-link">Animations</a></li><li class="nav-list-item"><a href="/sfall/art-and-appearance/" class="nav-list-link">Art and appearance</a></li><li class="nav-list-item"><a href="/sfall/audio/" class="nav-list-link">Audio</a></li><li class="nav-list-item"><a href="/sfall/car/" class="nav-list-link">Car</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Combat category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/combat/" class="nav-list-link">Combat</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/knockback/" class="nav-list-link">Knockback</a></li><li class="nav-list-item"><a href="/sfall/weapons-and-ammo/" class="nav-list-link">Weapons and ammo</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Direct memory access category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/direct-memory-access/" class="nav-list-link">Direct memory access</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/call_offset_vx/" class="nav-list-link">call_offset_vX</a></li><li class="nav-list-item"><a href="/sfall/read_xxx/" class="nav-list-link">read_xxx</a></li><li class="nav-list-item"><a href="/sfall/write_xxx/" class="nav-list-link">write_xxx</a></li></ul></li><li class="nav-list-item"><a href="/sfall/explosions/" class="nav-list-link">Explosions</a></li><li class="nav-list-item"><a href="/sfall/global-variables/" class="nav-list-link">Global variables</a></li><li class="nav-list-item"><a href="/sfall/graphics/" class="nav-list-link">Graphics</a></li><li class="nav-list-item"><a href="/sfall/ini-settings/" class="nav-list-link">INI settings</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Interface category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/interface/" class="nav-list-link">Interface</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/cursor/" class="nav-list-link">Cursor</a></li><li class="nav-list-item"><a href="/sfall/inventory/" class="nav-list-link">Inventory</a></li><li class="nav-list-item"><a href="/sfall/main-interface/" class="nav-list-link">Main interface</a></li><li class="nav-list-item"><a href="/sfall/outline/" class="nav-list-link">Outline</a></li><li class="nav-list-item"><a href="/sfall/pip-boy/" class="nav-list-link">Pip-Boy</a></li><li class="nav-list-item"><a href="/sfall/tags/" class="nav-list-link">Tags</a></li><li class="nav-list-item"><a href="/sfall/windows-and-images/" class="nav-list-link">Windows and images</a></li></ul></li><li class="nav-list-item"><a href="/sfall/keyboard-and-mouse/" class="nav-list-link">Keyboard and mouse</a></li><li class="nav-list-item"><a href="/sfall/locks/" class="nav-list-link">Locks</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Maps and encounters category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/maps-and-encounters/" class="nav-list-link">Maps and encounters</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/rest/" class="nav-list-link">Rest</a></li><li class="nav-list-item"><a href="/sfall/worldmap/" class="nav-list-link">Worldmap</a></li></ul></li><li class="nav-list-item"><a href="/sfall/objects-and-scripts/" class="nav-list-link">Objects and scripts</a></li><li class="nav-list-item"><a href="/sfall/other/" class="nav-list-link">Other</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Perks and traits category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/perks-and-traits/" class="nav-list-link">Perks and traits</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/npc-perks/" class="nav-list-link">NPC perks</a></li></ul></li><li class="nav-list-item"><a href="/sfall/sfall-funcx-macros/" class="nav-list-link">Sfall funcX macros</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Sfall category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/sfall/" class="nav-list-link">Sfall</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/funcx/" class="nav-list-link">funcX</a></li><li class="nav-list-item"><a href="/sfall/version/" class="nav-list-link">Version</a></li></ul></li><li class="nav-list-item"><a href="/sfall/skills/" class="nav-list-link">Skills</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Stats category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/stats/" class="nav-list-link">Stats</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/alter-min-max/" class="nav-list-link">Alter min/max</a></li></ul></li><li class="nav-list-item"><a href="/sfall/tiles-and-paths/" class="nav-list-link">Tiles and paths</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Utility category" aria-pressed="false"> <svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> </button><a href="/sfall/utility/" class="nav-list-link">Utility</a><ul class="nav-list"><li class="nav-list-item"><a href="/sfall/math/" class="nav-list-link">Math</a></li><li class="nav-list-item"><a href="/sfall/strings/" class="nav-list-link">Strings</a></li></ul></li><li class="nav-list-item"><a href="/sfall/virtual-file-system/" class="nav-list-link">Virtual file system</a></li></ul> </nav> <footer class="site-footer"> This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. </footer> </div> <div class="main" id="top"> <div id="main-header" class="main-header"> <div class="search" role="search"> <div class="search-input-wrap"> <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search sfall" aria-label="Search sfall" autocomplete="off"> <label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label> </div> <div id="search-results" class="search-results"></div> </div> <nav aria-label="Auxiliary" class="aux-nav"> <ul class="aux-nav-list"> <li class="aux-nav-list-item"> <a href="https://nma-fallout.com/threads/fo2-engine-tweaks-sfall.178390/" class="site-button" > Forum </a> </li> <li class="aux-nav-list-item"> <a href="https://github.com/phobos2077/sfall/" class="site-button" > GitHub </a> </li> </ul> </nav> </div> <div class="main-content-wrap"> <nav aria-label="Breadcrumb" class="breadcrumb-nav"> <ol class="breadcrumb-nav-list"> <li class="breadcrumb-nav-list-item"><a href="/sfall/interface/">Interface</a></li> <li class="breadcrumb-nav-list-item"><span>Windows and images</span></li> </ol> </nav> <div id="main-content" class="main-content"> <main> <h1 class="no_toc" id="windows-and-images"> <a href="#windows-and-images" class="anchor-heading" aria-labelledby="windows-and-images"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Windows and images </h1> <h2 class="no_toc" id="functions"> <a href="#functions" class="anchor-heading" aria-labelledby="functions"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Functions </h2> <ul id="markdown-toc"> <li><a href="#art_frame_data" id="markdown-toc-art_frame_data"><strong>art_frame_data</strong></a></li> <li><a href="#create_win" id="markdown-toc-create_win"><strong>create_win</strong></a></li> <li><a href="#draw_image" id="markdown-toc-draw_image"><strong>draw_image</strong></a></li> <li><a href="#draw_image_scaled" id="markdown-toc-draw_image_scaled"><strong>draw_image_scaled</strong></a></li> <li><a href="#get_window_attribute" id="markdown-toc-get_window_attribute"><strong>get_window_attribute</strong></a></li> <li><a href="#get_window_under_mouse" id="markdown-toc-get_window_under_mouse"><strong>get_window_under_mouse</strong></a></li> <li><a href="#interface_art_draw" id="markdown-toc-interface_art_draw"><strong>interface_art_draw</strong></a></li> <li><a href="#interface_overlay" id="markdown-toc-interface_overlay"><strong>interface_overlay</strong></a></li> <li><a href="#interface_print" id="markdown-toc-interface_print"><strong>interface_print</strong></a></li> <li><a href="#message_box" id="markdown-toc-message_box"><strong>message_box</strong></a></li> <li><a href="#set_window_flag" id="markdown-toc-set_window_flag"><strong>set_window_flag</strong></a></li> <li><a href="#win_fill_color" id="markdown-toc-win_fill_color"><strong>win_fill_color</strong></a></li> </ul><hr /> <h3 class="d-inline-block" id="art_frame_data"> <a href="#art_frame_data" class="anchor-heading" aria-labelledby="art_frame_data"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>art_frame_data</strong> </h3> <p class="label label-green">sfall.h</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">array</span> <span class="n">art_frame_data</span><span class="p">(</span><span class="n">string</span><span class="o">/</span><span class="kt">int</span> <span class="n">artFile</span><span class="o">/</span><span class="n">artId</span><span class="p">,</span> <span class="kt">int</span> <span class="n">frame</span><span class="p">,</span> <span class="kt">int</span> <span class="n">rotation</span><span class="p">)</span>
</code></pre></div></div> <ul> <li>returns the dimensions of a given PCX or FRM frame as a temp array in the form <strong>[width, height]</strong></li> <li><code class="language-plaintext highlighter-rouge">artFile/artId</code>: path to the PCX/FRM file (e.g. <code class="language-plaintext highlighter-rouge">art\\inven\\5mmap.frm</code>), or its FRM ID number (e.g. <code class="language-plaintext highlighter-rouge">0x7000026</code>, see specification of the FID format) optional arguments:</li> <li><code class="language-plaintext highlighter-rouge">frame</code>: frame number, the first frame starts from zero</li> <li><code class="language-plaintext highlighter-rouge">rotation</code>: rotation to get the frame for, useful when reading FRM files by path</li> </ul><hr /> <h3 class="d-inline-block" id="create_win"> <a href="#create_win" class="anchor-heading" aria-labelledby="create_win"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>create_win</strong> </h3> <p class="label label-green">sfall.h</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">create_win</span><span class="p">(</span><span class="n">string</span> <span class="n">winName</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">width</span><span class="p">,</span> <span class="kt">int</span> <span class="n">height</span><span class="p">,</span> <span class="kt">int</span> <span class="n">flags</span><span class="p">)</span>
</code></pre></div></div> <p><code class="language-plaintext highlighter-rouge">flags</code> argument is optional. Works just like vanilla <code class="language-plaintext highlighter-rouge">CreateWin</code> function, but creates a window with <code class="language-plaintext highlighter-rouge">MoveOnTop</code> flag if the flags argument is not specified, and allows to set additional flags for the created window. <code class="language-plaintext highlighter-rouge">MoveOnTop</code> flag allows the created window to be placed on top of the game interface.</p><hr /> <h3 class="d-inline-block" id="draw_image"> <a href="#draw_image" class="anchor-heading" aria-labelledby="draw_image"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>draw_image</strong> </h3> <p class="label label-green">sfall.h</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">draw_image</span><span class="p">(</span><span class="n">string</span><span class="o">/</span><span class="kt">int</span> <span class="n">artFile</span><span class="o">/</span><span class="n">artId</span><span class="p">,</span> <span class="kt">int</span> <span class="n">frame</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">noTransparent</span><span class="p">)</span>
</code></pre></div></div> <ul> <li>displays the specified PCX or FRM image in the active window created by vanilla <code class="language-plaintext highlighter-rouge">CreateWin</code> or sfalls <code class="language-plaintext highlighter-rouge">create_win</code> script function</li> <li>artFile/artId: path to the PCX/FRM file (e.g. <code class="language-plaintext highlighter-rouge">art\\inven\\5mmap.frm</code>), or its FRM ID number (e.g. <code class="language-plaintext highlighter-rouge">0x7000026</code>, see specification of the FID format) optional arguments:</li> <li><code class="language-plaintext highlighter-rouge">frame</code>: frame number, the first frame starts from zero</li> <li><code class="language-plaintext highlighter-rouge">x/y</code>: offset relative to the top-left corner of the window</li> <li><code class="language-plaintext highlighter-rouge">noTransparent</code>: pass True to display an image without transparent background</li> <li>NOTE: to omit optional arguments starting from the right, call the functions with different <code class="language-plaintext highlighter-rouge">sfall_funcX</code> (e.g. <code class="language-plaintext highlighter-rouge">sfall_func4("draw_image", pathFile, frame, x, y))</code></li> </ul><hr /> <h3 class="d-inline-block" id="draw_image_scaled"> <a href="#draw_image_scaled" class="anchor-heading" aria-labelledby="draw_image_scaled"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>draw_image_scaled</strong> </h3> <p class="label label-green">sfall.h</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">draw_image_scaled</span><span class="p">(</span><span class="n">string</span><span class="o">/</span><span class="kt">int</span> <span class="n">artFile</span><span class="o">/</span><span class="n">artId</span><span class="p">,</span> <span class="kt">int</span> <span class="n">frame</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">width</span><span class="p">,</span> <span class="kt">int</span> <span class="n">height</span><span class="p">)</span>
</code></pre></div></div> <ul> <li>displays the specified PCX or FRM image in the active window created by vanilla <code class="language-plaintext highlighter-rouge">CreateWin</code> or sfalls <code class="language-plaintext highlighter-rouge">create_win</code> script function</li> <li>artFile/artId: path to the PCX/FRM file (e.g. <code class="language-plaintext highlighter-rouge">art\\inven\\5mmap.frm</code>), or its FRM ID number (e.g. <code class="language-plaintext highlighter-rouge">0x7000026</code>, see specification of the FID format) optional arguments:</li> <li><code class="language-plaintext highlighter-rouge">frame</code>: frame number, the first frame starts from zero</li> <li><code class="language-plaintext highlighter-rouge">x/y</code>: offset relative to the top-left corner of the window</li> <li><code class="language-plaintext highlighter-rouge">width/height</code>: the new width/height to scale the image to. Pass -1 to either width or height to keep the aspect ratio when scaling</li> <li>NOTE: to omit optional arguments starting from the right, call the functions with different <code class="language-plaintext highlighter-rouge">sfall_funcX</code> (e.g. <code class="language-plaintext highlighter-rouge">sfall_func4("draw_image", pathFile, frame, x, y))</code></li> <li>if called without <code class="language-plaintext highlighter-rouge">x/y/width/height</code> arguments, the image will be scaled to fit the window without transparent background</li> </ul><hr /> <h3 id="get_window_attribute"> <a href="#get_window_attribute" class="anchor-heading" aria-labelledby="get_window_attribute"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>get_window_attribute</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func1</span><span class="p">(</span><span class="s">"get_window_attribute"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">)</span>
</code></pre></div></div> <p>Alternative form: <code class="language-plaintext highlighter-rouge">int sfall_func2("get_window_attribute", int winType, int attrType)</code> Returns the attribute of the specified interface window by the <code class="language-plaintext highlighter-rouge">attrType</code> argument.</p> <ul> <li><code class="language-plaintext highlighter-rouge">winType</code>: the type number of the interface window (see <code class="language-plaintext highlighter-rouge">WINTYPE_*</code> constants in <strong>sfall.h</strong>)</li> <li><code class="language-plaintext highlighter-rouge">attrType</code>: <code class="language-plaintext highlighter-rouge">0</code> - checks and returns a value of 1 if the specified interface window is created by the game (same as without the argument) <code class="language-plaintext highlighter-rouge">1</code> - X position, <code class="language-plaintext highlighter-rouge">2</code> - Y position (relative to the top-left corner of the game screen) <code class="language-plaintext highlighter-rouge">3</code> - interface width size, <code class="language-plaintext highlighter-rouge">4</code> - interface height size <code class="language-plaintext highlighter-rouge">5</code> - window ID (to compare with the <code class="language-plaintext highlighter-rouge">get_window_under_mouse</code> function) <code class="language-plaintext highlighter-rouge">-1</code> - returns an associative array of keys (left, top, right, bottom) and values that define the position of the window rectangle (use standard syntax to access array values, e.g. <code class="language-plaintext highlighter-rouge">winRect.top</code>, <code class="language-plaintext highlighter-rouge">winRect.bottom</code>)</li> <li>returns -1 if the specified attribute cannot be obtained</li> </ul><hr /> <h3 id="get_window_under_mouse"> <a href="#get_window_under_mouse" class="anchor-heading" aria-labelledby="get_window_under_mouse"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>get_window_under_mouse</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">get_window_under_mouse</span><span class="p">()</span>
</code></pre></div></div> <p>Returns the internal ID of the top-most window under mouse cursor.</p><hr /> <h3 id="interface_art_draw"> <a href="#interface_art_draw" class="anchor-heading" aria-labelledby="interface_art_draw"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>interface_art_draw</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func4</span><span class="p">(</span><span class="s">"interface_art_draw"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="n">string</span> <span class="n">artFile</span><span class="o">/</span><span class="kt">int</span> <span class="n">artID</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">)</span>
</code></pre></div></div> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func4</span><span class="p">(</span><span class="s">"interface_art_draw"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="n">string</span> <span class="n">artFile</span><span class="o">/</span><span class="kt">int</span> <span class="n">artID</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">)</span>
<span class="kt">int</span> <span class="n">sfall_func5</span><span class="p">(</span><span class="s">"interface_art_draw"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="n">string</span> <span class="n">artFile</span><span class="o">/</span><span class="kt">int</span> <span class="n">artID</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">frame</span><span class="p">)</span>
<span class="kt">int</span> <span class="n">sfall_func6</span><span class="p">(</span><span class="s">"interface_art_draw"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="n">string</span> <span class="n">artFile</span><span class="o">/</span><span class="kt">int</span> <span class="n">artID</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">frame</span><span class="p">,</span> <span class="n">array</span> <span class="n">param</span><span class="p">)</span>
</code></pre></div></div> <ul> <li>draws the specified PCX or FRM image in the game interface window, returns -1 on any error</li> <li><code class="language-plaintext highlighter-rouge">winType</code>: the type number of the interface window (see <code class="language-plaintext highlighter-rouge">WINTYPE_*</code> constants in <strong>sfall.h</strong>) this also takes the value of the flag (0x1000000) to prevent immediate redrawing of the interface window</li> <li><code class="language-plaintext highlighter-rouge">artFile/artId</code>: path to the PCX/FRM file (e.g. <code class="language-plaintext highlighter-rouge">art\\inven\\5mmap.frm</code>), or its FRM ID number (e.g. <code class="language-plaintext highlighter-rouge">0x7000026</code>, see specification of the FID format)</li> <li><code class="language-plaintext highlighter-rouge">x/y</code>: offset relative to the top-left corner of the window</li> </ul> <p>optional arguments:</p> <ul> <li><code class="language-plaintext highlighter-rouge">frame</code>: frame number, the first frame starts from zero</li> <li><code class="language-plaintext highlighter-rouge">param</code>: an array which specifies additional parameters, where: index 0 - sprite direction for multi-directional FRM index 1/index 2 - the new width/height to scale the image to. Pass -1 to use the original width/height</li> </ul><hr /> <h3 id="interface_overlay"> <a href="#interface_overlay" class="anchor-heading" aria-labelledby="interface_overlay"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>interface_overlay</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">sfall_func2</span><span class="p">(</span><span class="s">"interface_overlay"</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="kt">int</span> <span class="n">mode</span><span class="p">)</span>
</code></pre></div></div> <p>Alternative form: <code class="language-plaintext highlighter-rouge">int sfall_func6("interface_overlay", int winType, 2, int x, int y, int width, int height)</code>.</p> <p>Creates an additional drawing surface above the graphic layer of the specified interface window. All subsequent calls of <code class="language-plaintext highlighter-rouge">interface_art_draw</code> and <code class="language-plaintext highlighter-rouge">interface_print</code> functions will draw on it.</p> <ul> <li><code class="language-plaintext highlighter-rouge">winType</code>: the type number of the interface window (see <code class="language-plaintext highlighter-rouge">WINTYPE_*</code> constants in <strong>sfall.h</strong>)</li> <li><code class="language-plaintext highlighter-rouge">mode</code>: 1 - creates a new overlay surface 2 - clears the overlay area or the specified rectangle defined by the <code class="language-plaintext highlighter-rouge">x</code>, <code class="language-plaintext highlighter-rouge">y</code>, <code class="language-plaintext highlighter-rouge">width</code>, <code class="language-plaintext highlighter-rouge">height</code> arguments 0 - destroys the created overlay surface (frees up the memory allocated to the surface)</li> </ul><hr /> <h3 id="interface_print"> <a href="#interface_print" class="anchor-heading" aria-labelledby="interface_print"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>interface_print</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func5</span><span class="p">(</span><span class="s">"interface_print"</span><span class="p">,</span> <span class="n">string</span> <span class="n">text</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color</span><span class="p">)</span>
</code></pre></div></div> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func5</span><span class="p">(</span><span class="s">"interface_print"</span><span class="p">,</span> <span class="n">string</span> <span class="n">text</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color</span><span class="p">)</span>
<span class="kt">int</span> <span class="n">sfall_func6</span><span class="p">(</span><span class="s">"interface_print"</span><span class="p">,</span> <span class="n">string</span> <span class="n">text</span><span class="p">,</span> <span class="kt">int</span> <span class="n">winType</span><span class="p">,</span> <span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color</span><span class="p">,</span> <span class="kt">int</span> <span class="n">width</span><span class="p">)</span>
</code></pre></div></div> <ul> <li>displays the text in the specified interface window with the current font. Use vanilla <code class="language-plaintext highlighter-rouge">SetFont</code> function to set the font</li> <li>returns the count of lines printed, or -1 on any error</li> <li><code class="language-plaintext highlighter-rouge">text</code>: the text to be printed. Use the <code class="language-plaintext highlighter-rouge">\n</code> control character to move text to a new line (example: “Hello\nWorld!”)</li> <li><code class="language-plaintext highlighter-rouge">winType</code>: the type number of the interface window (see <code class="language-plaintext highlighter-rouge">WINTYPE_*</code> constants in sfall.h)</li> <li><code class="language-plaintext highlighter-rouge">x/y</code>: offset relative to the top-left corner of the window</li> <li><code class="language-plaintext highlighter-rouge">color</code>: the color index in the game palette. Pass 0 if the text color was previously set by vanilla <code class="language-plaintext highlighter-rouge">SetTextColor</code> function It can also take additional flags (via <code class="language-plaintext highlighter-rouge">bwor</code>) for displaying text: <ul> <li><code class="language-plaintext highlighter-rouge">0x0010000</code> - adds a shadow to the text, the textshadow compiler constant</li> <li><code class="language-plaintext highlighter-rouge">0x1000000</code> - prevents immediate redrawing of the interface window, the <code class="language-plaintext highlighter-rouge">textdirect</code> compiler constant (works the other way around)</li> <li><code class="language-plaintext highlighter-rouge">0x2000000</code> - fills the background of the text with black color, the <code class="language-plaintext highlighter-rouge">textnofill</code> compiler constant (works the other way around)</li> </ul> </li> <li><code class="language-plaintext highlighter-rouge">width</code> (optional): the maximum width of the text. The text will be wrapped to fit within the specified width</li> </ul><hr /> <h3 id="message_box"> <a href="#message_box" class="anchor-heading" aria-labelledby="message_box"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>message_box</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">sfall_func4</span><span class="p">(</span><span class="s">"message_box"</span><span class="p">,</span> <span class="n">string</span> <span class="n">message</span><span class="p">,</span> <span class="kt">int</span> <span class="n">flags</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color1</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color2</span><span class="p">)</span>
</code></pre></div></div> <p>Creates a dialog box with text and returns the result of pressing the button: 0 - No (Escape), 1 - Yes/Done (Enter). Returns -1 if for some reason the dialog box cannot be created.</p> <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>- message: the text in the dialog box. Use the `\n` control character to move text to a new line (example: "Hello\nWorld!")
optional arguments:
- flags: mode flags (see `MSGBOX_*` constants in define_extra.h). Pass -1 to skip setting the flags (default flags are NORMAL and YESNO)
- color1/color2: the color index in the game palette. `color1` sets the text color for the first line, and `color2` for all subsequent lines of text (default color is 145)
</code></pre></div></div><hr /> <h3 class="d-inline-block" id="set_window_flag"> <a href="#set_window_flag" class="anchor-heading" aria-labelledby="set_window_flag"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>set_window_flag</strong> </h3> <p class="label label-green">sfall.h</p> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">void</span> <span class="n">set_window_flag</span><span class="p">(</span><span class="n">string</span> <span class="n">winName</span><span class="o">/</span><span class="kt">int</span> <span class="n">winID</span><span class="p">,</span> <span class="kt">int</span> <span class="n">flag</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">value</span><span class="p">)</span>
</code></pre></div></div> <p>Changes the specified flag for the created script or game interface window.</p> <ul> <li>winName: the window name, assigned to the window by the <code class="language-plaintext highlighter-rouge">CreateWin/create_win</code> function</li> <li>winID: the ID number of the interface or script window obtained with the <code class="language-plaintext highlighter-rouge">get_window_under_mouse</code> function, or 0 for the current game interface</li> <li>flag: the flag to change (see <code class="language-plaintext highlighter-rouge">WIN_FLAG_*</code> constants in <strong>define_extra.h</strong>)</li> <li>value: <code class="language-plaintext highlighter-rouge">True</code> - set the flag, <code class="language-plaintext highlighter-rouge">False</code> - unset the flag</li> </ul><hr /> <h3 id="win_fill_color"> <a href="#win_fill_color" class="anchor-heading" aria-labelledby="win_fill_color"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> <strong>win_fill_color</strong> </h3> <div class="language-c++ highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">win_fill_color</span><span class="p">(</span><span class="kt">int</span> <span class="n">x</span><span class="p">,</span> <span class="kt">int</span> <span class="n">y</span><span class="p">,</span> <span class="kt">int</span> <span class="n">width</span><span class="p">,</span> <span class="kt">int</span> <span class="n">height</span><span class="p">,</span> <span class="kt">int</span> <span class="n">color</span><span class="p">)</span>
</code></pre></div></div> <p>Fills the rectangle area of the currently selected script window with the specified color, or clears the window with transparent (index 0) color (call the function without arguments).</p> <ul> <li><code class="language-plaintext highlighter-rouge">color</code>: the color index in the game palette (from 0 to 255)</li> </ul> </main> </div> </div> <div class="search-overlay"></div> </div> </body> </html>