<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to 6: Level editor for Hex-a-hop</title><link>https://sourceforge.net/p/hexahop/tickets/6/</link><description>Recent changes to 6: Level editor for Hex-a-hop</description><atom:link href="https://sourceforge.net/p/hexahop/tickets/6/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 22 Apr 2026 07:29:26 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/hexahop/tickets/6/feed.rss" rel="self" type="application/rss+xml"/><item><title>#6 Level editor for Hex-a-hop</title><link>https://sourceforge.net/p/hexahop/tickets/6/?limit=25#a051</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Here is an update on my level editor for Hex-a-hop. I can now modify the&lt;br/&gt;
levels.dat file and create arbitrary new levels. The source code of the&lt;br/&gt;
game remains unchanged, all you have to do is replace the original&lt;br/&gt;
levels.dat by the modified version. An example is attached. Please try&lt;br/&gt;
it! There are several new levels (all solvable), plus some dummy levels.&lt;/p&gt;
&lt;p&gt;To create your own levels, you currently have to modify some variables&lt;br/&gt;
inside a Python script. If there is sufficient interest, I can make the&lt;br/&gt;
code available and write some documentation.&lt;/p&gt;
&lt;p&gt;BTW: I found an Easter egg in the game. There is an additional tile&lt;br/&gt;
called "switch" which switches between flat green tiles and green hills.&lt;br/&gt;
It hasn't been used in any of the 100 standard levels, but it works&lt;br/&gt;
perfectly fine when you use it in your custom-made levels :-)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rolf Sander</dc:creator><pubDate>Wed, 22 Apr 2026 07:29:26 -0000</pubDate><guid>https://sourceforge.net387248ff6efb02e4158c3a35da2d795fe47ac35d</guid></item><item><title>#6 Level editor for Hex-a-hop</title><link>https://sourceforge.net/p/hexahop/tickets/6/?limit=25#6e4f</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Thanks for your feedback, Paul!&lt;/p&gt;
&lt;p&gt;My approach is basically the same as what you had planned: First,&lt;br/&gt;
decompile levels.dat back to some readable ASCII files. Then, write a&lt;br/&gt;
level editor that works with these ASCII files.&lt;/p&gt;
&lt;p&gt;So far, I've been able to locate the individual levels in levels.dat.&lt;br/&gt;
Inside each level, I can see the hexagonal map (more details below). I&lt;br/&gt;
can even change individual bytes in levels.dat and get different tiles&lt;br/&gt;
when restarting hex-a-hop.&lt;/p&gt;
&lt;p&gt;What I'm still struggling with are the bytes before and after the tile&lt;br/&gt;
definitions. I assume they define the width and height of the hexagonal&lt;br/&gt;
map. Also, there must be the starting position of Emi somewhere.&lt;br/&gt;
Deciphering these bytes is where I mostly need help, as I cannot find&lt;br/&gt;
the part of the code where these bytes are read and applied.&lt;/p&gt;
&lt;p&gt;As an example, here is the 2nd level (called "Hive"). The header is:&lt;/p&gt;
&lt;p&gt;18 00 00 00 03 00 00 00 01 08 07 0d 01 00 00 00 0b 00 00 00 00 00&lt;/p&gt;
&lt;p&gt;Next, the layout of the tiles:&lt;/p&gt;
&lt;p&gt;00  00  02  02  00  00&lt;br/&gt;
00  02  02  00  02  02  00&lt;br/&gt;
  02  00  02  02  00  02&lt;br/&gt;
01  02  02  00  02  02  01&lt;br/&gt;
  02  00  02  02  00  02&lt;br/&gt;
00  02  02  00  02  02  00&lt;br/&gt;
  00  00  02  02  00  00&lt;br/&gt;
00  00  00  01  00  00  00&lt;/p&gt;
&lt;p&gt;If you flip this along the main diagonal, you can recognize the&lt;br/&gt;
hexagonal map of the "Hive" level (00=water, 01=gray, 02=green).&lt;/p&gt;
&lt;p&gt;Finally, there is a footer:&lt;/p&gt;
&lt;p&gt;00 00 89 00 00 00&lt;/p&gt;
&lt;p&gt;If I manage to understand this syntax and write some sort of level&lt;br/&gt;
editor, I will of course make my code and data publically available.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rolf Sander</dc:creator><pubDate>Thu, 05 Feb 2026 12:15:16 -0000</pubDate><guid>https://sourceforge.net28f97c098fd8575d96dc2fbefc63f188d55e0e77</guid></item><item><title>#6 Level editor for Hex-a-hop</title><link>https://sourceforge.net/p/hexahop/tickets/6/?limit=25#ed19</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I inherited the project from the original author &lt;a class="user-mention" href="/u/amuzen/profile/"&gt;@amuzen&lt;/a&gt;, unfortunately they didn't document the format apart from the source code in packfile.h and they didn't release the source level files. I have been meaning to decompile levels.dat back to some sort of source level files and then delete the levels.dat file from git, but I never got around to it.&lt;/p&gt;
&lt;p&gt;Looking at the code, I see there might already be some form of level editor that is enabled when you define an EDIT macro, and I got it to compile and run (see attached diff), but I wasn't successful getting to do anything useful and I don't know the keyboard shortcuts for it yet.&lt;/p&gt;
&lt;p&gt;I think it would be great to remove the EDIT macro and instead enable the edit mode when a menu option is enabled, if you would like to work on that, then I will definitely review and merge any patches you write.&lt;/p&gt;
&lt;p&gt;Any other help you can give on Hex-A-Hop would be very appreciated.&lt;/p&gt;
&lt;p&gt;&lt;a class="user-mention" href="/u/guillemj/profile/"&gt;@guillemj&lt;/a&gt; is the most recent person to work on Hex-A-Hop btw.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paul Wise</dc:creator><pubDate>Thu, 05 Feb 2026 05:15:34 -0000</pubDate><guid>https://sourceforge.net69a2a2c0fafdab74aad1f12b7f35457ba874cd13</guid></item><item><title>Level editor for Hex-a-hop</title><link>https://sourceforge.net/p/hexahop/tickets/6/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I would like to create new levels, and maybe write a small level editor&lt;br/&gt;
for Hex-a-hop. AFAICS, I can achieve this by editing the levels.dat&lt;br/&gt;
file. Is there a description of the syntax of this file? Any help is&lt;br/&gt;
appreciated!&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Rolf Sander</dc:creator><pubDate>Wed, 04 Feb 2026 20:02:19 -0000</pubDate><guid>https://sourceforge.net95ca833a722e2783cff7db0e23aacef204e80a92</guid></item></channel></rss>