<div dir="ltr"><div><div><div><div><div>Yes, you could and would only transfer a save file to another game based on the original .rpg with largely the same data, a sequel or extended version basically. I don't see many other cases in which you would want to transfer a save file. You can remove and replace some parts of the original .rpg, though.<br><br></div>Not long ago I fixed a crash that occurred when loading a save from a different game (which I did by accident, and didn't realise until afterwards) that put you on a non-existent map. It shows a visible error when that happens, but we could add a bitset to handle it silently. Then as long as you have a loadgame script to put the hero in a sensible starting location, you can just delete all the maps from the original game and replace them.<br></div><br></div>Don't forget that NPCs still aren't saved/loaded (actually, they are loaded, but not saved).<br><br></div><div>You also missed slice lookup codes, sprite and palette ids in the hero data, and gameover/loadgame script triggers.<br></div><div><br></div>So the things you should preserve are mainly tags, items, spells, hero walkabout/battle sprites and palettes, shops, sprites palettes and lookup codes for any saved slices, and heroes.<br><br>But you can easily replace (if you wanted to reduce the file size) maps, almost all graphics, enemies, formations, music and sound effects, and scripts. That seems quite practical to me.<br><br></div><div>Alternatively we could have a command to load a saved game, but not end the current game (so the script continues running), with a bitmask to select certain data:<br></div><div>-tags<br></div><div>-globals<br></div><div>-map data (currently just location; the normal settings for what gets loaded could just be respected)<br></div><div>-heroes<br></div><div>-maybe some bit to recompute certain hero data, e.g. stats or spell lists, from the current hero definitions<br></div><div>-inventory<br></div><div>-shop inventories<br></div><div>-slices<br></div><div>That should be very easy to implement. If you want to load heroes from another game there are quite a few dependencies on other data.<br></div><div>But as far as I can see, the only use of this command would be when you want to transfer a save from an earlier version of the game,<br></div><div>but want to wipe some of the data that's no longer compatible.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 4 November 2016 at 07:18, James Paige <span dir="ltr"><<a href="mailto:Bob@hamsterrepublic.com" target="_blank">Bob@hamsterrepublic.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>I think the biggest issue with loading from other games save slots is that saves have a lot of fixed id numbers, and those can't be expected to be the same for other games<br><br></div>I went through the RSAV documentation, and tried to make a list of all the id numbers<br><br></div>* current map state stores map id number, and stores NPC definition id numbers<br></div>* tag state is all id number based, so are onetime npcs<br></div>* saved hero party state saves both slot id numbers and hero definition id numbers<br></div>* spell lists are full of attack id numbers<br></div>* inventory state is full of item id numbers<br></div>* shops are also full of both shop slot id numbers and item id numbers<br></div>* saved slices might be full of sprite id numbers.<br><br></div>Unless the other game that you are importing a save from is an almost exact copy of all these things, I don't really see how loading a save is going to be useful.<br><br></div>a version of import globals that can read stuff from other games will be very useful for scripting fun... and commands for importing more specific data from other game's saves (or other save slots in the current game) are reasonable (and wouldn't be too terribly hard to do)<br></div></div></blockquote><div><br></div><div>Well aside from globals would other data would you want to load? There's a huge amount of possible data that could be loaded, translating to a huge amount of possible script commands.<br></div><div>I guess the main things you might want to transfer another game are tags, heroes and inventories. If your new game isn't save compatible then you can't<br></div><div>import any of those anyway, and we would be stuck creating individual commands to read hero level of party slot X of save Y of game Z...<br></div><div>Quite a lot of stuff (who is in the party, what items you have) would be covered by reading tag data.<br></div><div>One solution is to just (eventually) let people load an .rsav as a reload document directly, since loading from other saves is an advanced feature anyway.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><br></div><div>I think we need to look more carefully at how this should work-- especially at exactly what game authors want to accomplish with a save-import feature.<br><br></div><div>Just importing and loading some other game's rsav file is going to be messy, and it isn't clear to me that it will be very useful.<br><br><br></div><div><div><div><div><div><div><br>---<br></div><div>James<br><br></div><div><div><div><div><div><div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 3, 2016 at 10:39 AM, Ralph Versteegen <span dir="ltr"><<a href="mailto:teeemcee@gmail.com" target="_blank">teeemcee@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Yes, we need a way to share saves. A fancy way would be commands to load/save a save from/to some other game,<br>which would allow the sort of one-time conversion you suggest,<br>but a simpler solution is just a setting to specify the name of the saves folder. (That sounds a lot like<br>the packagegame for the game (used when distributing)). However I guess that would be bad<br></div><div>if you went back to the original game and tried to load a save from the sequel/expansion; ideally you'd want saves<br></div><div>to be marked as incompatible or something. Maybe this isn't a simple solution afterall.<br></div><div><br>There are also some config files associated with each game (hidden away in the OHR's settings folder), and maybe those should be shared too. There's<br></div></div>almost nothing stored in those settings currently, AFAIR just in-app purchases and whether to fullscreen.<br></div><div class="m_-1679273341393611681HOEnZb"><div class="m_-1679273341393611681h5"><div class="gmail_extra"><br><div class="gmail_quote">On 4 November 2016 at 01:53, Michael Kidder <span dir="ltr"><<a href="mailto:mkidder@gmail.com" target="_blank">mkidder@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This actually makes "DLC" / expansions more feasible now since if you wanted to do it before, you have to tell people "oh yeah, just go in, copy the file... rename it to gameexpansion.r .. okay, enable extensions, and then go to.."<div><br></div><div>Now you could just run a check to see if the user has installed the .rpg file and modify an in game menu or NPC's dialog or whatever seamlessly, that'd be pretty cool.<br></div><div><br></div><div>Only thing i can think of is power users may want the ability to bring the save from the original game to the called game. It would be up to the developer to make sure both games stay compatible save wise. If this causes too many issues, then making "session variables" that GAME preserves only for the duration of being loaded would likely be enough for people to bring data over from one game to another. Something to think about, anyway.</div></div><div class="m_-1679273341393611681m_-3811762993455665472HOEnZb"><div class="m_-1679273341393611681m_-3811762993455665472h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 1, 2016 at 7:00 PM, Ralph Versteegen <span dir="ltr"><<a href="mailto:teeemcee@gmail.com" target="_blank">teeemcee@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Yes, I was planning to add a command like "check game exists" to work around this problem.<br><br></div>Checking for both .rpg and .rpgdir is a good idea too.<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="m_-1679273341393611681m_-3811762993455665472m_-561669626657302888h5">On 2 November 2016 at 04:26, James Paige <span dir="ltr"><<a href="mailto:Bob@hamsterrepublic.com" target="_blank">Bob@hamsterrepublic.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-1679273341393611681m_-3811762993455665472m_-561669626657302888h5"><div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div>I was looking at the run game implementation.<br><br></div>I saw this comment in the source:<br><br>PRIVATE SUB run_game ()<br> ' Not being able to load the game should always show an error (use serrError for everything)<br><br></div>I would definitely like to have the option of running a game with the error silenced.<br><br></div>For example, At the end of Quest.rpg I might have code that runs Quest2.rpg even though the sequel does not even exist yet.<br><br></div>One way to get this effect would be an argument to run game to make it silent. (I don't really like this one.)<br><br></div>Alternatively another command "run game if exists" that just does the same thing without the error<br><br></div>Finally, maybe an "is other game available($0="othergame")" check that returns a boolean.<br><br></div>Next, I was wondering if you do:<br><br></div>run game($0="gamename.rpg")<br><br></div>and gamename.rpg does not exist, should it automatically check for "gamename.rpgdir" and nice-versa</div><br>---<br></div>James<br></div>
<br></div></div>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org" target="_blank">ohrrpgce@lists.motherhamster.o<wbr>rg</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.org<wbr>/listinfo.cgi/ohrrpgce-motherh<wbr>amster.org</a><br>
<br></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
Ohrrpgce mailing list<br>
<a href="mailto:ohrrpgce@lists.motherhamster.org">ohrrpgce@lists.motherhamster.<wbr>org</a><br>
<a href="http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org" rel="noreferrer" target="_blank">http://lists.motherhamster.<wbr>org/listinfo.cgi/ohrrpgce-<wbr>motherhamster.org</a><br>
<br></blockquote></div><br></div></div>