News:

The Forum Rules and Guidelines
Our forum has Rules and Guidelines. Please, be kind and read them ;).

Simutrans installer issue on Win64

Started by FatLoser, May 10, 2012, 07:05:38 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FatLoser

Can't unselect "Chinese", hence can't switch to SDL.
Even selecting Windows ME in compat mode did NOT solve it. When I try to select SDL binaries, it instead selects both GDI and Chinese.
Again, like in my previous thread (broken links in installer), a good fix might be to allow a "source folder" (look at NSIS sources of Ur-Quan Masters and OpenTTD - though they search for different files the page scripting is pretty much the same, but in UQM it skips downloads if all the chosen files are found in source folder).

prissi

The pak sets are updated independent of the installer regularly. Thus the installer is independent from the rest, to allow pak set updates be incorporated whenever they happen. Otherwise the download would be 200 MB if I include all paksets. The tasks of the OpenTTD installer are very different.

I recently changed the code to have more modularity. Aparently there I made a mistake.

FatLoser

#2
Source folder means downloading parts manually then just telling the installer where they are
Look at UQM installer scripts
Redownloaded installer, now it works.
The "choose modules" page should be after the source page, and not show at all if both a binary and a pak are present.

prissi

The paks are (other than OpenTTD) also very dynamic and change almost all the time.

What is not (yet) part of the installer is a routine to detetct existing paks and (if there) does not download/install them.

FatLoser

Look at UQM installer for both source page routine and present bin/pak one.
UQM has the executable part split from content so the UQM source (incl. NSIS script) should be small.
Again, I'm not a coder but I know this is possible.
(pseudocode)If PakPresent=pak32&&PakVer==CurrentVer;HideItem(/pseudocode)

el_slapper

Quote from: FatLoser on May 13, 2012, 11:29:36 PM
(.../...)Again, I'm not a coder but I know this is possible.
(pseudocode)If PakPresent=pak32&&PakVer==CurrentVer;HideItem(/pseudocode)

then do it yourself, & see how long it takes.

I confess I do not develop for Simutrans. Just no time, & not a language I know. You're right to say it's possible, I guess. But it takes time, & if Prissi(or anyone else) does it, it will not do anything else in the mean time. If I take Prissi's spec :
QuoteWhat is not (yet) part of the installer is a routine to detetct existing paks and (if there) does not download/install them.

you need to code the following actions :
0)Standardize the paks version numbers, & their internet locations.
1)Detect the current paks installed. Memorize their version.
2)Link each of them to the internet place where they are
3)Read - on internet - some file that states the current version of each pak.
4)Decide wether your internal current version of the pak is up to date.
5)Download active updates
6)Install them

By "Code", I mean, implement the function, implement the unit test, document the function, and validate full-scale the function. And then, release. You also have to make sure the internet place of the paks is always available. You also have to code reactions to all errors possible(especially connection errors. What If I launch Simutrans without internet access, for example). All those actions are error-prone, & require planning and multiple checking.

That's, in my book, far from a single line of pseudo-code.

prissi

I had a look at NSIS, and it is not so easy. You need to provide a lot of hidden sections and then, reading the input, you unhide them. Lots of logic is rather ugly NSIS code.

Neither pak set locations not their version detection schede I can standradtize. I can barely suggest, and about half of the paksets confer to the standard more or less.

The current incarnation in the trunk will select any pak it finds and knows how to update. Then it will read the version string and if needed it will update.

Actually, the UQM NSIS script I did not find in their SVN by web access.

FatLoser

then IDK. Look at OTTD NSIS script for source folder (shown if one chooses to install original TTD graphics/sounds).

prissi

I looked at it, but it does not apply to this situation, as this is a static target and does not change.

FatLoser

well, UQM's source folder is also a static target. You download packages manually then tell the installer where they are. :|

Ters

If you have to find and download the packages manually, then there is almost nothing left for the installer to do. You might as well put the paks in the right place to begin with.

FatLoser

the installer would be just something that does the job for you rather than fiddling with WinRAR/7zip.