<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Rest Vs a better form</title>
		<link>http://www.allegro.cc/forums/view/618907</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 24 Apr 2024 08:22:47 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>All,</p><p>I have a program where I use a 2 sec rest. What wasn&#39;t noticed in the game until now is the 2 sec rest stalls the screen updating.  Is there a better form for stalling without stopping screen updates?  I was thinking something like setting and clearing flags based on clock status. I also thought I had scanned something about ticks passed since last check. I didn&#39;t know if this would be a C/C++ command or a A5 command?</p><p>Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Mon, 08 Apr 2024 18:51:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>You could simply use a variable. If your clock updates 30 times a second then multiply that by how many seconds you want it to pause logic.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">const</span> <span class="k1">double</span> clock_speed <span class="k3">=</span> <span class="n">30</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">double</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><span class="k1">void</span> set_pause<span class="k2">(</span><span class="k1">double</span> seconds<span class="k2">)</span>
<span class="number">  5</span><span class="k2">{</span>
<span class="number">  6</span>    <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span> seconds <span class="k3">*</span> clock_speed<span class="k2">;</span>
<span class="number">  7</span><span class="k2">}</span>
<span class="number">  8</span>
<span class="number">  9</span><span class="k1">void</span> mylogic<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 10</span><span class="k2">{</span>
<span class="number"> 11</span>    <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">&gt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>
<span class="number"> 12</span>    <span class="k2">{</span>
<span class="number"> 13</span>        <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">-</span><span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 14</span>        <span class="k1">if</span> <span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">&lt;</span> std::numeric_limits<span class="k3">&lt;</span>double&gt;::epsilon<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span>
<span class="number"> 15</span>        <span class="k2">{</span>
<span class="number"> 16</span>            <a href="http://www.delorie.com/djgpp/doc/libc/libc_613.html" target="_blank">pause</a> <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 17</span>        <span class="k2">}</span>
<span class="number"> 18</span>    <span class="k2">}</span>
<span class="number"> 19</span>    <span class="k1">else</span>
<span class="number"> 20</span>    <span class="k2">{</span>
<span class="number"> 21</span>        <span class="c">// do actual logic that is affected by pause</span>
<span class="number"> 22</span>    <span class="k2">}</span>
<span class="number"> 23</span>
<span class="number"> 24</span>    <span class="c">// do any other logic not affected by pause</span>
<span class="number"> 25</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Mon, 08 Apr 2024 20:55:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yeah Daniel I was thinking down the same path.  However I don&#39;t know what my clock speed is.  Plus wouldn&#39;t that vary machine to machine?</p><p>To pseudocode sort of<br />Currently I have cards the player flips over like concentration game.  If the cards match they stay over and if not there are flipped back.  The issue is they flipped back so fast you couldn&#39;t see what the color was on the last card.  So I added a 2 second wait.  The fact the game was stopping wasn&#39;t obvious. </p><p>I have since added a continually moving background.  I can&#39;t have the display stop for 2 seconds</p><p>My proposal sort of follows your train of thought.  On a wrong match, I was going to trigger a bool variable to true and continue.  As long as it was true the bad match would stay visible.  After a certain amount of time (or ticks?) I would set the bool to false.  The false status would be a condition of clearing the bad match set. </p><p>Where my problem lies in the best approach for triggering the bool variable.<br />Do I use &lt;time.h&gt; tv.tv_usec type approach or is there a uniform &quot;ticks since last check&quot; type approach and would that stay consistent machine to machine?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Tue, 09 Apr 2024 18:57:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>As you&#39;ve figured out, al_rest blocks. That won&#39;t work. al_wait_for_event also blocks, but can respond to other events in the meantime.</p><p>Try using a 2.0 second timer, or just count elapsed time. If the timer is still running, keep showing the old state so it doesn&#39;t disappear.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Tue, 09 Apr 2024 20:29:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m assuming you have a timer?</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span><a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="k1">double</span> speed_secs<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

</p><div class="source-code snippet"><div class="inner"><pre><span class="c">// If you want the logic rate at 30 times per second then:</span>
<a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a> <span class="k3">*</span><a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span><span class="n">1</span>.<span class="n">0</span><span class="k3">/</span><span class="n">30</span>.<span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

I would have 2 timers. The first for ordinary logic.<br />The 2nd for special things like one your asking about. The 2nd timer would be set at a very small rate. It would be used in occasions like this.</p><p>Since you don&#39;t flip the cards are the same time, I would also add the pause variable to the card itself and a state variable.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="c">// in timer event for 2nd timer</span>
<span class="number">  2</span><span class="k1">for</span> <span class="k2">(</span>i <span class="k2">:</span> all the cards<span class="k2">)</span>
<span class="number">  3</span><span class="k2">{</span>
<span class="number">  4</span>    <span class="k1">if</span> <span class="k2">(</span>card<span class="k2">[</span>i<span class="k2">]</span>.state <span class="k3">=</span><span class="k3">=</span> card_flipped <span class="k3">&amp;</span><span class="k3">&amp;</span> card<span class="k2">[</span>i<span class="k2">]</span>.timer <span class="k3">&gt;</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>
<span class="number">  5</span>    <span class="k2">{</span>
<span class="number">  6</span>        card<span class="k2">[</span>i<span class="k2">]</span>.timer <span class="k3">=</span> card<span class="k2">[</span>i<span class="k2">]</span>.timer <span class="k3">-</span> <span class="k2">(</span>some value depending on timer rate<span class="k2">)</span><span class="k2">;</span>
<span class="number">  7</span>    <span class="k2">}</span>
<span class="number">  8</span><span class="k2">}</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="c">// in main logic area</span>
<span class="number"> 11</span><span class="k1">for</span> <span class="k2">(</span>i <span class="k2">:</span> all the cards<span class="k2">)</span>
<span class="number"> 12</span><span class="k2">{</span>
<span class="number"> 13</span>    <span class="k1">if</span> <span class="k2">(</span>card<span class="k2">[</span>i<span class="k2">]</span>.state <span class="k3">=</span><span class="k3">=</span> card_flipped <span class="k3">&amp;</span><span class="k3">&amp;</span> card<span class="k2">[</span>i<span class="k2">]</span>.timer <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span>
<span class="number"> 14</span>    <span class="k2">{</span>
<span class="number"> 15</span>        card<span class="k2">[</span>i<span class="k2">]</span>.state <span class="k3">=</span> card_unflipped<span class="k2">;</span>
<span class="number"> 16</span>        card<span class="k2">[</span>i<span class="k2">]</span>.timer <span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">;</span>
<span class="number"> 17</span>    <span class="k2">}</span>
<span class="number"> 18</span><span class="k2">}</span>
</div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 09 Apr 2024 20:44:35 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks Edgar and Daniel, </p><p>So timers it is then.  I appreciate the insight.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Tue, 09 Apr 2024 21:35:26 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>If you want to do it the slick way, you only need one timer, your regular display timer.</p><p>Here is a simple example. You need two variables, dt and old dt to check when dt crosses zero. That means the delay is over.</p><div class="source-code snippet"><div class="inner"><pre><span class="c">/// timer setup whatever, 1.0/60 is good and usu. matches the display hertz</span>

<span class="k1">double</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a> <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k2">;</span>
<span class="k1">double</span> dt <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span>.<span class="n">0</span><span class="k2">;</span>

<span class="k1">if</span> <span class="k2">(</span>player_flipped_card<span class="k2">)</span> <span class="k2">{</span>
   dt <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a><span class="k2">;</span>
<span class="k2">}</span>
<span class="k1">else</span> <span class="k2">{</span>
   <span class="k1">double</span> olddt <span class="k3">=</span> dt<span class="k2">;</span>
   dt <span class="k3">-</span><span class="k3">=</span> REFRESH_RATE_OF_TIMER<span class="k2">;</span>
   <span class="k1">if</span> <span class="k2">(</span>olddt <span class="k3">&gt;</span> <span class="n">0</span>.<span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> dt <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span>.<span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>event....<span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>

Don&#39;t forget to rtfm. Look at the TIMER event here :</p><p><a href="https://liballeg.org/a5docs/trunk/events.html#allegro_event_timer">https://liballeg.org/a5docs/trunk/events.html#allegro_event_timer</a></p><p>You can see the TIMER event holds a count variable that you can use to monitor tick count if you want to do it the simplest way.</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">  1</span><span class="k1">const</span> <span class="k1">double</span> TPS <span class="k3">=</span> <span class="n">60</span><span class="k2">;</span>
<span class="number">  2</span><span class="k1">const</span> <span class="k1">double</span> SPT <span class="k3">=</span> <span class="n">1</span>.<span class="n">0</span><span class="k3">/</span>TPS<span class="k2">;</span>
<span class="number">  3</span>
<span class="number">  4</span><a href="http://www.allegro.cc/manual/ALLEGRO_TIMER"><span class="a">ALLEGRO_TIMER</span></a><span class="k3">*</span> gtimer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/al_create_timer"><span class="a">al_create_timer</span></a><span class="k2">(</span>SPT<span class="k2">)</span><span class="k2">;</span>
<span class="number">  5</span>
<span class="number">  6</span>
<span class="number">  7</span><span class="c">// main</span>
<span class="number">  8</span><a href="http://www.allegro.cc/manual/al_start_timer"><span class="a">al_start_timer</span></a><span class="k2">(</span>gtimer<span class="k2">)</span><span class="k2">;</span>
<span class="number">  9</span>
<span class="number"> 10</span><span class="c">// in event loop</span>
<span class="number"> 11</span>
<span class="number"> 12</span><span class="k1">double</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a> <span class="k3">=</span> <span class="n">2</span>.<span class="n">0</span><span class="k3">*</span>TPS<span class="k2">;</span>
<span class="number"> 13</span><span class="k1">int</span> dt <span class="k3">=</span> <span class="k3">-</span><span class="n">1</span><span class="k2">;</span>
<span class="number"> 14</span><span class="k1">int</span> olddt <span class="k3">=</span> dt<span class="k2">;</span>
<span class="number"> 15</span>
<span class="number"> 16</span><span class="c">// player flipped a card</span>
<span class="number"> 17</span><span class="k1">if</span> <span class="k2">(</span>card_flip<span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 18</span>   dt <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_128.html" target="_blank">delay</a><span class="k2">;</span>
<span class="number"> 19</span>   <span class="c">/// start the delay</span>
<span class="number"> 20</span><span class="k2">}</span>
<span class="number"> 21</span><span class="k1">else</span> <span class="k2">{</span>
<span class="number"> 22</span>   olddt <span class="k3">=</span> dt<span class="k2">;</span>
<span class="number"> 23</span><span class="k2">}</span>
<span class="number"> 24</span>
<span class="number"> 25</span>
<span class="number"> 26</span><span class="k1">if</span> <span class="k2">(</span>event.type <span class="k3">=</span><span class="k3">=</span> ALLEGRO_EVENT_TIMER<span class="k2">)</span>
<span class="number"> 27</span>   <span class="k3">-</span><span class="k3">-</span>dt<span class="k2">;</span>
<span class="number"> 28</span>   <span class="k1">if</span> <span class="k2">(</span>olddt <span class="k3">&gt;</span> <span class="n">0</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> dt <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span> <span class="k2">{</span>
<span class="number"> 29</span>      <span class="c">/// set the card to flipped on this frame</span>
<span class="number"> 30</span>      card<span class="k2">[</span>selected_card<span class="k2">]</span>.FlipFaceDown<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span><span class="c">/// or whatever you do</span>
<span class="number"> 31</span>   <span class="k2">}</span>
<span class="number"> 32</span><span class="k2">}</span>
</div></div><p>
<img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 10 Apr 2024 21:19:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>RTFM??? Read the FRIENDLY Manual. <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" /><img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Wed, 10 Apr 2024 21:31:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>DanielH - &quot;RTFM??? Read the FRIENDLY Manual.&quot;</p><p>That&#39;s exactly how I would have taken it, if I didn&#39;t know the manuals are user hostile <img src="http://www.allegro.cc/forums/smileys/cheesy.gif" alt=":D" /></p><p>Seriously, thanks for the help and code example guys.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Thu, 11 Apr 2024 00:40:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Lowercase rtfm is the nice one. Read the friendly manual. Now if instead I had said, &quot;RTFM N008&quot; that would have been insulting.</p><p>Bump for questions.</p><p><img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 14 Apr 2024 20:44:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Now if I always read the manuals (not that they are easily understood) and didn&#39;t ask silly a$# questions on here , what would become of this site?</p><p>I&#39;m starting to think my ignorance is the only think keeping us afloat. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (AceBlkwell)</author>
		<pubDate>Fri, 19 Apr 2024 18:40:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Somehow, Allegro.cc still lives on my bookmarks bar.</p><p>But, I have been concerned there is only 1 live thread at a time.</p><p>Every once in awhile I poke a thread with a post <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.</p><p>I can&#39;t believe I started using Allegro in what, I think 1998? 1999? I remember starting with using DJGPP compiling for DOS, so definitely was before Win2k days.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gillius)</author>
		<pubDate>Sat, 20 Apr 2024 07:08:05 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hey gillius! Member #119! What brings you to grace our presence oh great one? This forum is hanging on by a thread, literally.8-)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Sun, 21 Apr 2024 18:49:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title"><a href="http://www.allegro.cc/forums/thread/618907/1054163#target">Edgar Reynaldo</a> said:</div><div class="quote"><p>This forum is hanging on by a thread</p></div></div><p>

Boom! <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Dizzy Egg)</author>
		<pubDate>Mon, 22 Apr 2024 13:14:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Edgar, I&#39;ve been here the whole time <img src="http://www.allegro.cc/forums/smileys/grin.gif" alt=";D" />. For some reason I&#39;ve kept recent threads on my bookmarks bar since the dawn of time (Jan 1, 1970), so I visit every one in awhile. Maybe once every week or two but probably at least monthly. Just I normally don&#39;t have much to say. My low number comes from being in the first batch of people who came from an old site I think it was called allegro games depot. Then I think maybe it was shutting down or something so Matthew created this site and invited everyone there to come here, so I did.</p><p>What&#39;s up with the site taking 30 seconds to load sometimes though? Other times it&#39;s fast. I very rarely notice Matthew posting anymore though.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gillius)</author>
		<pubDate>Tue, 23 Apr 2024 09:19:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>There was a discussion with Matthew. This site needs a new home (new server location) and a major overhaul. It&#39;s written in an older version of PHP and has some outdated dependencies. He has no desire to update it and has relinquished that task to someone else who is willing to do it.</p><p>That said, quite a few of us have moved to <a href="https://discord.gg/QH9gjcjv">Discord</a> and/or are still on the IRCnet channel (#allegro).</p><p>Not as convenient as Allegro.cc, but it&#39;s something.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (DanielH)</author>
		<pubDate>Tue, 23 Apr 2024 22:23:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Oh well, stop lurking so damn much!! We need your support gillius! Like DanielH said, join us on Discord or irc.libera.chat #allegro</p><p>What DanielH said is true about Matthew. He pretty much said he&#39;s willing to pass allegro.cc on to someone who has the time and energy to update and migrate it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Edgar Reynaldo)</author>
		<pubDate>Wed, 24 Apr 2024 00:01:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, I lurk because I haven&#39;t done C/C++ development or Allegro in almost 20 years, so I normally don&#39;t have much to say. That said, I installed MSVC community the other day so I could compile a custom version of PasswordSafe to try to debug a tool.</p><p>I have a question for another thread. But, maybe in the interest of keeping A.cc alive a little bit more (RIP &quot;thread closes too soon&quot;) I&#39;ll start a thread <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />.</p><p>As for helping maintain anything, my life with 3 kids is keeping me pretty busy, and I&#39;ve not had time for side projects in a long time. I think the bigger question is money, not time. If you moved wherever this lives to the cloud it will cost a lot. Probably cheaper is to try to host it on a home connection with a dedicated server, considering how few users there are, in which case you have a one time expense of the server only. These days though with working from home I get afraid to host things even of my own on such a connection due to concerns about floods of traffic. And of course, it would be a lot less reliable as home users would shut down their router a lot. As this is a PHP site you could use a cpanel provider but those even are $10 a month or more to start I think.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gillius)</author>
		<pubDate>Wed, 24 Apr 2024 08:22:47 +0000</pubDate>
	</item>
</rss>
