H-uru / korman

Blender plugin for creating ages for Cyan Worlds' proprietary Plasma engine and its open source variant, CyanWorlds.com Engine.
GNU General Public License v3.0
35 stars 17 forks source link

Incorrect game path handling with symlinks #241

Open dpogue opened 3 years ago

dpogue commented 3 years ago

My main MOULa installation is at /home/dpogue/Plasma/MOULagain/Uru Live My local DS installation is at /home/dpogue/Plasma/DS/Local

I have set up my local DS installation such that dat and sfx are symlinks to the folders in the MOULa installation.

korman is configured to point to my local DS installation.

When I export an Age with SDL, it attempts to save files into /home/dpogue/Plasma/MOULagain/Uru Live/SDL which does not exist, instead of /home/dpogue/Plasma/DS/Local/SDL. This seems to be because at export time we do everything based off the destination of the .age file in the dat directory, and attempt to find other folders based on its parent.

I think this might work if we didn't call resolve() on the file path, since that seems to be what is unraveling my symlink.

Hoikas commented 3 years ago

/home/dpogue/Plasma/MOULagain/Uru Live/SDL which does not exist

The client's SDL directory must exist, otherwise it has no SDL.

dpogue commented 3 years ago

/home/dpogue/Plasma/DS/Local/SDL exists, containing the plaintext SDL files from the H-uru/Plasma folder. (In fact, I think that's a symlink to my H-uru/Plasma git clone)

/home/dpogue/Plasma/MOULagain/Uru Live/SDL does not exist because it is a standard MOULa installation.

Hoikas commented 3 years ago

Standard MOULa installs are not supported.

dpogue commented 3 years ago

yes... I am not exporting to a standard MOULa installation. I am exporting to a local DS installation, whose dat folder is symlinked to my MOULa installation's dat folder.

The error is that korman is dereferencing the symlink and trying to treat the MOULa folder as the export location.

Hoikas commented 3 years ago

You need to export to a functioning H'uru internal client... Not a DS.

dpogue commented 3 years ago

By "local DS installation" I mean a client folder set up with a H'uru internal client, configured to point at my local DS server. avi, dat, sfx symlinked to the MOULa installation, SDL & Python symlinked to the Scripts in a H-uru/Plasma clone.

dpogue commented 3 years ago

Content of my DS client with symlinks:

dpogue@bedwyr:~/Plasma/DS/Local-64$ ls -lhG

lrwxrwxrwx 1 dpogue   28 Mar 13 16:54 avi -> '../../MOULagain/Uru Live/avi'
lrwxrwxrwx 1 dpogue   28 Mar 13 16:54 dat -> '../../MOULagain/Uru Live/dat'
-rwxr-xr-x 1 dpogue   54 Apr 20 22:09 plClient
-rw-r--r-- 1 dpogue  20M Apr  3 00:27 plClient.exe
-rw-r--r-- 1 dpogue 135M Apr  3 00:27 plClient.pdb
-rw-r--r-- 1 dpogue  71K Apr  3 00:27 plCrashHandler.exe
-rw-r--r-- 1 dpogue 3.8M Apr  3 00:27 plUruLauncher.exe
lrwxrwxrwx 1 dpogue   28 Mar 13 07:47 Python -> '../../../Coding/Plasma/Scripts/Python'
-rw-r--r-- 1 dpogue 5.2M Apr  3 00:27 python39.dll
-rw-r--r-- 1 dpogue 219K Apr  3 00:27 resource.dat
lrwxrwxrwx 1 dpogue   28 Mar 13 00:27 SDL -> '../../../Coding/Plasma/Scripts/SDL'
-rw-r--r-- 1 dpogue 1.3K Apr  3 21:37 server.ini
lrwxrwxrwx 1 dpogue   28 Mar 13 16:54 sfx -> '../../MOULagain/Uru Live/sfx'

Blender is set up with ~/Plasma/DS/Local-64 as the Uru installation folder.