The International Simutrans Forum

 

Author Topic: Merging Standard 112.x into Experimental  (Read 30084 times)

0 Members and 1 Guest are viewing this topic.

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Merging Standard 112.x into Experimental
« on: November 03, 2012, 05:04:13 PM »
Simutrans-Experimental.exe fails to load standard "pak" 64 of Oct 22 for standard Simutrans 112.0.
It crashes while loading city building "03_CITY_A".
« Last Edit: November 11, 2012, 09:20:40 PM by jamespetts »

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #1 on: November 03, 2012, 05:10:40 PM »
This is probably because a pakset designed for Simutrans-Standard 112.0 has features that are not compatible with Simutrans-Experimental 111.2.1 10.12. I am unfortunately rather behind on merging the latest version of Standard into Experimental, and should much appreciate any assistance in doing so. I am presently preoccupied with fixing the bugs reported in the latest release.

Offline Carl

  • Devotee
  • *
  • Posts: 1634
    • Website
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #2 on: November 03, 2012, 06:04:48 PM »
In the meantime, I believe that pak64 111.3 works fine with 10.12.

Offline greenling

  • Lounger
  • *
  • Posts: 1728
  • Simutransarchology it my hobby!
  • Languages: DE,EN
Re: [Bug][10.12] Fails to load standard pak64/Solution!
« Reply #3 on: November 03, 2012, 06:46:36 PM »
Bernd Gabriel,Carl,Jamespetts
i have a Solution!
I can try to translate png and dats from pak 64 standart in png and dat for pak64 exp.
Then to make with makeobj for Simutrans exp.
I know since simutrans 112 where the problems lie.


Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #4 on: November 03, 2012, 06:58:55 PM »
Greenling,

yes, indeed, that should work: Pak64 is open source, so if you compile with the Makeobj for Simutrans-Experimental, it should work (although you might get odd results with the .pngs for the new non-rectangular factories).

Offline greenling

  • Lounger
  • *
  • Posts: 1728
  • Simutransarchology it my hobby!
  • Languages: DE,EN
Re: [Bug][10.12] Fails to load standard pak64/Solution!
« Reply #5 on: November 03, 2012, 07:32:56 PM »
jamespetts,carl,Bernd Gabriel
(although you might get odd results with the .pngs for the new non-rectangular factories).
That it not a big problem but the biggest problem is that I need to a quiet place and time.
(For people who like to want to work with this project are seen!)

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: [Bug][10.12] Fails to load standard pak64
« Reply #6 on: November 04, 2012, 10:09:09 AM »
Oops, I didn't realise that ST E10.12 isn't based on the current ST 112 code :(

OK then, I I'll try to merge Simutrans.master into my new "112.x-merge" branch.

Offline greenling

  • Lounger
  • *
  • Posts: 1728
  • Simutransarchology it my hobby!
  • Languages: DE,EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #7 on: November 04, 2012, 10:32:17 AM »
jamespetts,Carl,Bernd Gabriel
Oops, I didn't realise that ST E10.12 isn't based on the current ST 112 code :(
OK then, I I'll try to merge Simutrans.master into my new "112.x-merge" branch.
That we now must translate the data from Simutrans standart in simutrans Exp and back.
It only Prissi and Dwachs faults.
She have build in things they we in Simutrans Exp not have.
@
Bernd Gabriel
Do you build your own pakset to build?

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: [Bug][10.12] Fails to load standard pak64
« Reply #8 on: November 04, 2012, 10:35:38 AM »
@greenling

No, I will not change any pakset. I'll "only" merge the source code.

Offline greenling

  • Lounger
  • *
  • Posts: 1728
  • Simutransarchology it my hobby!
  • Languages: DE,EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #9 on: November 04, 2012, 11:06:03 AM »
@
Bernd Gabriel
@greenling
 I'll "only" merge the source code.
Ok you will only update the Simutrans Code from Simutrans Exp.
But i think it better to try to update the pakset too.
Prissi have fill a little gap by the Railvehicles.

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #10 on: November 09, 2012, 10:56:23 AM »
Oops, I didn't realise that ST E10.12 isn't based on the current ST 112 code :(

OK then, I I'll try to merge Simutrans.master into my new "112.x-merge" branch.

This will probably be a lot of work - but extremely worthwhile! Thank you: this will advance Simutrans-Experimental significantly. With merging, it is important to test to ensure that existing things aren't broken. Do feel free to message me if you are unsure as to what the intention of any of my code was, and the Standard people I have found equally willing to answer questions about the intention of any part of their code.

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: [Bug][10.12] Fails to load standard pak64
« Reply #11 on: November 10, 2012, 06:43:31 AM »
Thanks, that might be helpful.

By now I have done about 50% to merge up to standard 111.3 into experimental...

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: [Bug][10.12] Fails to load standard pak64
« Reply #12 on: November 10, 2012, 11:09:47 PM »
I though it would be better to merge in several steps.

A 1st step is done now:
I pushed the conflict free 111.3 merge to my branch "112.x-merge".
It starts and could load my all-time-standard-pak64 test game.
And it could start the Pak128.Britain-Ex-0.8.3 demo game.
That's all I tested up to now...

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #13 on: November 11, 2012, 03:23:24 PM »
Merging in steps is probably a good idea. Thank you for all this work! I'll look into testing this and get back to you when I have had a chance.

In the meantime, it would be very helpful if as many people who can compile from source could test this as possible (and as thoroughly as possible), as, from my experience, it is very easy to introduce bugs in unexpected places when merging in from Standard.

Bernd - let me know if you need me to elaborate on the intention of any part of my code...

Edit: You might want to merge in the latest bug fixes in 10.x.
« Last Edit: November 11, 2012, 04:32:26 PM by jamespetts »

Offline Carl

  • Devotee
  • *
  • Posts: 1634
    • Website
  • Languages: EN
Re: [Bug][10.12] Fails to load standard pak64
« Reply #14 on: November 11, 2012, 04:45:19 PM »
I'll run some tests on this ASAP.

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: [Bug][10.12] Fails to load standard pak64
« Reply #15 on: November 11, 2012, 05:32:47 PM »
Thanks for your support.

Most probably I can push a complete merge to standard master branch HEAD this evening  :)

@James: until now I think I could solve all conflicts by browsing the file histories.

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #16 on: November 11, 2012, 09:21:30 PM »
Hmm - which version/branch/tag did you use to base your merge? When I create a new branch based on 10.x called 112.x-merge and try to merge your branch, I get:

Code: [Select]
error: The following untracked working tree files would be overwritten by merge:
simutrans/text/zh/color.txt
simutrans/text/sv/simutrans.txt
simutrans/text/sv/depot.txt
simutrans/text/sk/station.txt
simutrans/text/sk/haltlist.txt
simutrans/text/sk/display.txt
simutrans/text/sk/depot.txt
simutrans/text/ro/station_details.txt
simutrans/text/ro/schedule.txt
simutrans/text/ro/railtools.txt
simutrans/text/ro/depot.txt
simutrans/text/pt/trafficlight_info.txt
simutrans/text/pt/station_details.txt
simutrans/text/pt/station.txt
simutrans/text/pt/simutrans.txt
simutrans/text/pt/schedule.txt
simutrans/text/pt/removal_tool.txt
simutrans/text/pt/railtools.txt
simutrans/text/pt/linemanagement.txt
simutrans/text/pt/inspection_tool.txt
simutrans/text/pt/industry_info.txt
simutrans/text/pt/haltlist_filter.txt
simutrans/text/pt/haltlist.txt
simutrans/text/pt/goods_filter.txt
simutrans/text/pt/factorylist_filter.txt
simutrans/text/pt/depot.txt
simutrans/text/pt/curiositylist_filter.txt
simutrans/text/pt/convoiinfo.txt
simutrans/text/pt/convoi_filter.txt
simutrans/text/pt/convoi.txt
simutrans/text/pt/citylist_filter.txt
simutrans/text/pl/station.txt
simutrans/text/pl/schedule.txt
simutrans/text/pl/railtools.txt
simutrans/text/pl/depot.txt
simutrans/text/nl/depot.txt
simutrans/text/nl/curiositylist_filter.txt
simutrans/text/nl/convoiinfo.txt
simutrans/text/nl/convoi_filter.txt
simutrans/text/nl/convoi.txt
simutrans/text/nl/climates.txt
simutrans/text/nl/citylist_filter.txt
simutrans/text/ja/station_details.txt
simutrans/text/ja/station.txt
simutrans/text/ja/slopetools.txt
simutrans/text/ja/schedule.txt
simutrans/text/ja/railtools.txt
simutrans/text/ja/map.txt
simutrans/text/ja/general.txt
simutrans/text/ja/depot.txt
simutrans/text/ja/citywindow.txt
simutrans/text/ja/citylist_filter.txt
simutrans/text/it/station_details.txt
simutrans/text/it/station.txt
simutrans/text/it/removal_tool.txt
simutrans/text/it/railtools.txt
simutrans/text/it/haltlist.txt
simutrans/text/it/depot.txt
simutrans/text/it/convoiinfo.txt
simutrans/text/it/citylist_filter.txt
simutrans/text/hu/goods_filter.txt
simutrans/text/hr/station_details.txt
simutrans/text/hr/linemanagement.txt
simutrans/text/fr/station.txt
simutrans/text/fr/schedule.txt
simutrans/text/fr/railtools.txt
simutrans/text/fr/haltlist_filter.txt
simutrans/text/fr/haltlist.txt
simutrans/text/fr/finances.txt
simutrans/text/fr/depot.txt
simutrans/text/fr/convoi_filter.txt
simutrans/text/fr/convoi.txt
simutrans/text/es/station_details.txt
simutrans/text/es/station.txt
simutrans/text/es/simutrans.txt
simutrans/text/es/schedule.txt
simutrans/text/es/removal_tool.txt
simutrans/text/es/railtools.txt
simutrans/text/es/linemanagement.txt
simutrans/text/es/inspection_tool.txt
simutrans/text/es/industry_info.txt
simutrans/text/es/haltlist_filter.txt
simutrans/text/es/haltlist.txt
simutrans/text/es/goods_filter.txt
simutrans/text/es/factorylist_filter.txt
simutrans/text/es/depot.txt
simutrans/text/es/curiositylist_filter.txt
simutrans/text/es/convoiinfo.txt
simutrans/text/es/convoi_filter.txt
simutrans/text/es/convoi.txt
simutrans/text/es/citylist_filter.txt
simutrans/text/en/window.txt
simutrans/text/en/trafficlight_info.txt
simutrans/text/en/station_details.txt
simutrans/text/en/station.txt
simutrans/text/en/simutrans.txt
simutrans/text/en/schedule.txt
simutrans/text/en/removal_tool.txt
simutrans/text/en/railtools.txt
simutrans/text/en/privatesign_info.txt
simutrans/text/en/map.txt
simutrans/text/en/linemanagement.txt
simutrans/text/en/labellist_filter.txt
simutrans/text/en/inspection_tool.txt
simutrans/text/en/industry_info.txt
simutrans/text/en/haltlist_filter.txt
simutrans/text/en/haltlist.txt
simutrans/text/en/goods_filter.txt
simutrans/text/en/finances.txt
simutrans/text/en/factorylist_filter.txt
simutrans/text/en/display.txt
simutrans/text/en/depot.txt
simutrans/text/en/curiositylist_filter.txt
simutrans/text/en/convoiinfo.txt
simutrans/text/en/convoidetail.txt
simutrans/text/en/convoi_filter.txtMerging:
9bd86c7 FIX: Compile error with Nettool (tnanks to Dwachs for spotting the problem)
virtual Bernd-Gabrial-fork/112.x-merge
found 1 common ancestor(s):
d436d6b GIT: Synchronise text issues
Aborting

simu
fatal: merging of trees 6e18713cc62285b9c1f338a6660dc1dd329c4e5e and ac8853720251645c1dc9feeb6112d831a6f5c1c9 failed

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #17 on: November 11, 2012, 10:09:11 PM »
Git told me that these files were conflicting with deleted files and I added them.
When I started merging up to standard HEAD I got a conflict in .gitignore where I saw, that /simutrans/text has to be ignored.
Thus I think they have to be deleted and ignored again.

Unfortunately the final standard-HEAD merge will not be ready before Thursday.
I'm too tired now after 12 hours of conflict solving to do the last few files.  ::(


Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #18 on: November 11, 2012, 10:27:25 PM »
Ahh, don't worry - it is extremely hard work! It is much appreciated. Do I take you to mean that the text conflicts you plan to solve by Thursday or so? If so, that would be most helpful.

Incidentally, as to testing, one basic thing that needs to be done for each complete stage is to compile Simutrans-Experimental, Makeobj and Nettool, and then compile Simutrans-Experimental in its normal, ipv4 and command line server versions, and then to use the Makeobj to generate a pakset from source and load that with the new version.

Edit: Two further things. Firstly, I suggest creating a new branch for each major stage: for example, having a further branch from this branch for merging to the next released version of Standard, and so forth. This will mean that bug fixes that we put in this branch can still be used even if we can't get the later merges to work for a while.

Secondly, another important aspect to testing at each stage is to check that a complex network game will run without desyncs.
« Last Edit: November 13, 2012, 01:44:59 AM by jamespetts »

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #19 on: November 14, 2012, 09:49:57 PM »
2nd step finished: merged standard simutrans branch aburch/master up to and including SHA1-ID b82ac48f0a0dce2891e35819ec1c1ac9603f1f89 into my branch "112.x-merge".
3rd step finished: merged jamespetts/master into my branch "112.x-merge".

Compiled Simutrans-Experimental.exe and Makeobj-Experimental.exe with Visual Studio 2010.

Simutrans-Experimental.exe starts, loads current standard pak64 and Pak128.Britain-Ex-0.8.3 incl. demo game.
Makeobj-Experimental.exe fails, as it tries to log an error with an uninitialized logger object.

Testers (and fixers) are welcome!

If someone is going to fix something, please drop a note here before you start to avoid redundant work.
Thanks (I'll be back most probably at the weekend)

Offline Milko

  • Devotee
  • *
  • Posts: 830
Re: Merging Standard 112.x into Experimental
« Reply #20 on: November 14, 2012, 09:56:00 PM »
Bernd, thanks for helping James.

Giuseppe

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #21 on: November 14, 2012, 11:56:56 PM »
Thank you very much for doing all of this - it is very much appreciated! It must be a huge job. I shall try to do some testing when I get a chance.

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #22 on: November 17, 2012, 01:13:04 PM »
I just started fixing dialog designs...

Offline Dwachs

  • DevTeam, Coder/patcher
  • Administrator
  • *
  • Posts: 4631
  • Languages: EN, DE, AT
Re: Merging Standard 112.x into Experimental
« Reply #23 on: November 17, 2012, 05:58:24 PM »
Congratulations for finishing this task!!

How many commits in standard did you merge?

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #24 on: November 18, 2012, 03:33:41 PM »
This merged SVN revisions SVN-5435 ... SVN-6041 == 607 commits.
And merging the remaining 25 revisions will produce another about 20 conflicting files  ::(

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #25 on: November 18, 2012, 10:52:44 PM »
Bernd,

I am afraid that I have had some trouble compiling this. I get:

Code: [Select]
1>------ Build started: Project: Simutrans-Experimental, Configuration: Debug Win32 ------
1>export_objs.obj : error LNK2001: unresolved external symbol "class karte_t * script_api::welt" (?welt@script_api@@3PAVkarte_t@@A)
1>api_city.obj : error LNK2001: unresolved external symbol "class karte_t * script_api::welt" (?welt@script_api@@3PAVkarte_t@@A)
1>api_convoy.obj : error LNK2019: unresolved external symbol "class karte_t * script_api::welt" (?welt@script_api@@3PAVkarte_t@@A) referenced in function "void __cdecl export_convoy(struct SQVM *)" (?export_convoy@@YAXPAUSQVM@@@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "class karte_t * script_api::welt" (?welt@script_api@@3PAVkarte_t@@A)
1>api_world.obj : error LNK2001: unresolved external symbol "class karte_t * script_api::welt" (?welt@script_api@@3PAVkarte_t@@A)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_world.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z) referenced in function "class vector_tpl<__int64> const & __cdecl get_world_stat(class karte_t *,bool,int)" (?get_world_stat@@YAABV?$vector_tpl@_J@@PAVkarte_t@@_NH@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_city.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_convoy.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_halt.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::get(struct SQVM *,int)" (?get@?$param@H@script_api@@SAHPAUSQVM@@H@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<short>::push(struct SQVM *,short const &)" (?push@?$param@F@script_api@@SAHPAUSQVM@@ABF@Z) referenced in function "int __cdecl script_api::push_instance<short,short>(struct SQVM *,char const *,short const &,short const &)" (??$push_instance@FF@script_api@@YAHPAUSQVM@@PBDABF2@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<short>::push(struct SQVM *,short const &)" (?push@?$param@F@script_api@@SAHPAUSQVM@@ABF@Z)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<short>::push(struct SQVM *,short const &)" (?push@?$param@F@script_api@@SAHPAUSQVM@@ABF@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<short>::push(struct SQVM *,short const &)" (?push@?$param@F@script_api@@SAHPAUSQVM@@ABF@Z)
1>api_halt.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_world.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z) referenced in function "public: __thiscall std::_String_val<char,class std::allocator<char> >::_String_val<char,class std::allocator<char> >(class std::allocator<char>)" (??0?$_String_val@DV?$allocator@D@std@@@std@@QAE@V?$allocator@D@1@@Z)
1>dynamic_string.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_city.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_const.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_convoy.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<int>::push(struct SQVM *,int const &)" (?push@?$param@H@script_api@@SAHPAUSQVM@@ABH@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<bool>::push(struct SQVM *,bool const &)" (?push@?$param@_N@script_api@@SAHPAUSQVM@@AB_N@Z) referenced in function "public: int __thiscall script_api::freevariable<bool>::push(struct SQVM *)const " (?push@?$freevariable@_N@script_api@@QBEHPAUSQVM@@@Z)
1>api_convoy.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<bool>::push(struct SQVM *,bool const &)" (?push@?$param@_N@script_api@@SAHPAUSQVM@@AB_N@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<bool>::push(struct SQVM *,bool const &)" (?push@?$param@_N@script_api@@SAHPAUSQVM@@AB_N@Z)
1>export_objs.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<bool>::push(struct SQVM *,bool const &)" (?push@?$param@_N@script_api@@SAHPAUSQVM@@AB_N@Z)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z)
1>api_scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<char const * (__thiscall stadt_t::*)(void)const >::call_function(struct SQVM *,char const * (__thiscall stadt_t::*)(void)const ,bool)" (?call_function@?$embed_call_t@P8stadt_t@@BEPBDXZ@script_api@@SAHPAUSQVM@@P8stadt_t@@BEPBDXZ_N@Z)
1>api_convoy.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z)
1>api_goods_desc.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<char const *>::push(struct SQVM *,char const * const &)" (?push@?$param@PBD@script_api@@SAHPAUSQVM@@ABQBD@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static class stadt_t * __cdecl script_api::param<class stadt_t *>::get(struct SQVM *,int)" (?get@?$param@PAVstadt_t@@@script_api@@SAPAVstadt_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class stadt_t *,bool,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class stadt_t *,bool,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PAVstadt_t@@_NH@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PAVstadt_t@@_NH@Z2@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static bool __cdecl script_api::param<bool>::get(struct SQVM *,int)" (?get@?$param@_N@script_api@@SA_NPAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class stadt_t *,bool,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class stadt_t *,bool,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PAVstadt_t@@_NH@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PAVstadt_t@@_NH@Z2@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl script_api::param<bool>::get(struct SQVM *,int)" (?get@?$param@_N@script_api@@SA_NPAUSQVM@@H@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static bool __cdecl script_api::param<bool>::get(struct SQVM *,int)" (?get@?$param@_N@script_api@@SA_NPAUSQVM@@H@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class koord>::push(struct SQVM *,class koord const &)" (?push@?$param@Vkoord@@@script_api@@SAHPAUSQVM@@ABVkoord@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class koord (__thiscall stadt_t::*)(void)const >::call_function(struct SQVM *,class koord (__thiscall stadt_t::*)(void)const ,bool)" (?call_function@?$embed_call_t@P8stadt_t@@BE?AVkoord@@XZ@script_api@@SAHPAUSQVM@@P8stadt_t@@BE?AVkoord@@XZ_N@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<class koord>::push(struct SQVM *,class koord const &)" (?push@?$param@Vkoord@@@script_api@@SAHPAUSQVM@@ABVkoord@@@Z)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<class koord>::push(struct SQVM *,class koord const &)" (?push@?$param@Vkoord@@@script_api@@SAHPAUSQVM@@ABVkoord@@@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static char const * __cdecl script_api::param<char const *>::get(struct SQVM *,int)" (?get@?$param@PBD@script_api@@SAPBDPAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall stadt_t::*)(char const *)>::call_function(struct SQVM *,void (__thiscall stadt_t::*)(char const *),bool)" (?call_function@?$embed_call_t@P8stadt_t@@AEXPBD@Z@script_api@@SAHPAUSQVM@@P8stadt_t@@AEXPBD@Z_N@Z)
1>api_scenario.obj : error LNK2001: unresolved external symbol "public: static char const * __cdecl script_api::param<char const *>::get(struct SQVM *,int)" (?get@?$param@PBD@script_api@@SAPBDPAUSQVM@@H@Z)
1>api_player.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z)
1>api_city.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z) referenced in function "public: static int __cdecl script_api::param<class vector_tpl<__int64> >::push(struct SQVM *,class vector_tpl<__int64> const &)" (?push@?$param@V?$vector_tpl@_J@@@script_api@@SAHPAUSQVM@@ABV?$vector_tpl@_J@@@Z)
1>api_convoy.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z)
1>api_factory.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z)
1>api_halt.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<__int64>::push(struct SQVM *,__int64 const &)" (?push@?$param@_J@script_api@@SAHPAUSQVM@@AB_J@Z)
1>api_convoy.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class koord3d>::push(struct SQVM *,class koord3d const &)" (?push@?$param@Vkoord3d@@@script_api@@SAHPAUSQVM@@ABVkoord3d@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class koord3d (__thiscall convoi_t::*)(void)const >::call_function(struct SQVM *,class koord3d (__thiscall convoi_t::*)(void)const ,bool)" (?call_function@?$embed_call_t@P8convoi_t@@BE?AVkoord3d@@XZ@script_api@@SAHPAUSQVM@@P8convoi_t@@BE?AVkoord3d@@XZ_N@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<class koord3d>::push(struct SQVM *,class koord3d const &)" (?push@?$param@Vkoord3d@@@script_api@@SAHPAUSQVM@@ABVkoord3d@@@Z)
1>api_convoy.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class spieler_t *>::push(struct SQVM *,class spieler_t * const &)" (?push@?$param@PAVspieler_t@@@script_api@@SAHPAUSQVM@@ABQAVspieler_t@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class spieler_t * (__thiscall convoi_t::*)(void)>::call_function(struct SQVM *,class spieler_t * (__thiscall convoi_t::*)(void),bool)" (?call_function@?$embed_call_t@P8convoi_t@@AEPAVspieler_t@@XZ@script_api@@SAHPAUSQVM@@P8convoi_t@@AEPAVspieler_t@@XZ_N@Z)
1>api_convoy.obj : error LNK2019: unresolved external symbol "public: static class convoi_t * __cdecl script_api::param<class convoi_t *>::get(struct SQVM *,int)" (?get@?$param@PAVconvoi_t@@@script_api@@SAPAVconvoi_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class spieler_t * (__thiscall convoi_t::*)(void)>::call_function(struct SQVM *,class spieler_t * (__thiscall convoi_t::*)(void),bool)" (?call_function@?$embed_call_t@P8convoi_t@@AEPAVspieler_t@@XZ@script_api@@SAHPAUSQVM@@P8convoi_t@@AEPAVspieler_t@@XZ_N@Z)
1>api_convoy.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<enum waytype_t>::push(struct SQVM *,enum waytype_t const &)" (?push@?$param@W4waytype_t@@@script_api@@SAHPAUSQVM@@ABW4waytype_t@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<enum waytype_t (__cdecl*)(class convoi_t *)>::call_function(struct SQVM *,enum waytype_t (__cdecl*)(class convoi_t *),bool)" (?call_function@?$embed_call_t@P6A?AW4waytype_t@@PAVconvoi_t@@@Z@script_api@@SAHPAUSQVM@@P6A?AW4waytype_t@@PAVconvoi_t@@@Z_N@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned char>::push(struct SQVM *,unsigned char const &)" (?push@?$param@E@script_api@@SAHPAUSQVM@@ABE@Z)
1>api_convoy.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<unsigned char>::push(struct SQVM *,unsigned char const &)" (?push@?$param@E@script_api@@SAHPAUSQVM@@ABE@Z) referenced in function "public: static int __cdecl script_api::param<class minivec_tpl<unsigned char> >::push(struct SQVM *,class minivec_tpl<unsigned char> const &)" (?push@?$param@V?$minivec_tpl@E@@@script_api@@SAHPAUSQVM@@ABV?$minivec_tpl@E@@@Z)
1>api_goods_desc.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned char>::push(struct SQVM *,unsigned char const &)" (?push@?$param@E@script_api@@SAHPAUSQVM@@ABE@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned char>::push(struct SQVM *,unsigned char const &)" (?push@?$param@E@script_api@@SAHPAUSQVM@@ABE@Z)
1>dynamic_string.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned char>::push(struct SQVM *,unsigned char const &)" (?push@?$param@E@script_api@@SAHPAUSQVM@@ABE@Z)
1>api_factory.obj : error LNK2019: unresolved external symbol "public: static short __cdecl script_api::param<short>::get(struct SQVM *,int)" (?get@?$param@F@script_api@@SAFPAUSQVM@@H@Z) referenced in function "int __cdecl exp_factory_constructor(struct SQVM *)" (?exp_factory_constructor@@YAHPAUSQVM@@@Z)
1>api_tiles.obj : error LNK2001: unresolved external symbol "public: static short __cdecl script_api::param<short>::get(struct SQVM *,int)" (?get@?$param@F@script_api@@SAFPAUSQVM@@H@Z)
1>api_factory.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<unsigned int>::push(struct SQVM *,unsigned int const &)" (?push@?$param@I@script_api@@SAHPAUSQVM@@ABI@Z) referenced in function "int __cdecl script_api::push_instance<short,short,char const *,unsigned int>(struct SQVM *,char const *,short const &,short const &,char const * const &,unsigned int const &)" (??$push_instance@FFPBDI@script_api@@YAHPAUSQVM@@PBDABF2ABQBDABI@Z)
1>api_settings.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned int>::push(struct SQVM *,unsigned int const &)" (?push@?$param@I@script_api@@SAHPAUSQVM@@ABI@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned int>::push(struct SQVM *,unsigned int const &)" (?push@?$param@I@script_api@@SAHPAUSQVM@@ABI@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static int __cdecl script_api::param<unsigned int>::push(struct SQVM *,unsigned int const &)" (?push@?$param@I@script_api@@SAHPAUSQVM@@ABI@Z)
1>api_factory.obj : error LNK2019: unresolved external symbol "public: static class fabrik_t * __cdecl script_api::param<class fabrik_t *>::get(struct SQVM *,int)" (?get@?$param@PAVfabrik_t@@@script_api@@SAPAVfabrik_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class fabrik_t *,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class fabrik_t *,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PAVfabrik_t@@H@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PAVfabrik_t@@H@Z_N@Z)
1>api_factory.obj : error LNK2019: unresolved external symbol "public: static class ware_production_t const * __cdecl script_api::param<class ware_production_t const *>::get(struct SQVM *,int)" (?get@?$param@PBVware_production_t@@@script_api@@SAPBVware_production_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class ware_production_t const *,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class ware_production_t const *,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PBVware_production_t@@H@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PBVware_production_t@@H@Z_N@Z)
1>api_goods_desc.obj : error LNK2019: unresolved external symbol "public: static class ware_besch_t const * __cdecl script_api::param<class ware_besch_t const *>::get(struct SQVM *,int)" (?get@?$param@PBVware_besch_t@@@script_api@@SAPBVware_besch_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<unsigned char (__thiscall ware_besch_t::*)(void)const >::call_function(struct SQVM *,unsigned char (__thiscall ware_besch_t::*)(void)const ,bool)" (?call_function@?$embed_call_t@P8ware_besch_t@@BEEXZ@script_api@@SAHPAUSQVM@@P8ware_besch_t@@BEEXZ_N@Z)
1>api_halt.obj : error LNK2019: unresolved external symbol "public: static class quickstone_tpl<class haltestelle_t> __cdecl script_api::param<class quickstone_tpl<class haltestelle_t> >::get(struct SQVM *,int)" (?get@?$param@V?$quickstone_tpl@Vhaltestelle_t@@@@@script_api@@SA?AV?$quickstone_tpl@Vhaltestelle_t@@@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class quickstone_tpl<class haltestelle_t>,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class quickstone_tpl<class haltestelle_t>,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@V?$quickstone_tpl@Vhaltestelle_t@@@@H@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@V?$quickstone_tpl@Vhaltestelle_t@@@@H@Z_N@Z)
1>api_player.obj : error LNK2019: unresolved external symbol "public: static class spieler_t * __cdecl script_api::param<class spieler_t *>::get(struct SQVM *,int)" (?get@?$param@PAVspieler_t@@@script_api@@SAPAVspieler_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class spieler_t *,int)>::call_function(struct SQVM *,class vector_tpl<__int64> const & (__cdecl*)(class spieler_t *,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PAVspieler_t@@H@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PAVspieler_t@@H@Z_N@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class plainstring>::push(struct SQVM *,class plainstring const &)" (?push@?$param@Vplainstring@@@script_api@@SAHPAUSQVM@@ABVplainstring@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class plainstring (__thiscall scenario_t::*)(char const *)>::call_function(struct SQVM *,class plainstring (__thiscall scenario_t::*)(char const *),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AE?AVplainstring@@PBD@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AE?AVplainstring@@PBD@Z_N@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static class scenario_t * __cdecl script_api::param<class scenario_t *>::get(struct SQVM *,int)" (?get@?$param@PAVscenario_t@@@script_api@@SAPAVscenario_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class plainstring (__thiscall scenario_t::*)(char const *)>::call_function(struct SQVM *,class plainstring (__thiscall scenario_t::*)(char const *),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AE?AVplainstring@@PBD@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AE?AVplainstring@@PBD@Z_N@Z)
1>export_objs.obj : error LNK2001: unresolved external symbol "public: static class scenario_t * __cdecl script_api::param<class scenario_t *>::get(struct SQVM *,int)" (?get@?$param@PAVscenario_t@@@script_api@@SAPAVscenario_t@@PAUSQVM@@H@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static unsigned char __cdecl script_api::param<unsigned char>::get(struct SQVM *,int)" (?get@?$param@E@script_api@@SAEPAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall scenario_t::*)(unsigned char,unsigned short)>::call_function(struct SQVM *,void (__thiscall scenario_t::*)(unsigned char,unsigned short),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AEXEG@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AEXEG@Z_N@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static unsigned short __cdecl script_api::param<unsigned short>::get(struct SQVM *,int)" (?get@?$param@G@script_api@@SAGPAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall scenario_t::*)(unsigned char,unsigned short)>::call_function(struct SQVM *,void (__thiscall scenario_t::*)(unsigned char,unsigned short),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AEXEG@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AEXEG@Z_N@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static enum waytype_t __cdecl script_api::param<enum waytype_t>::get(struct SQVM *,int)" (?get@?$param@W4waytype_t@@@script_api@@SA?AW4waytype_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t)>::call_function(struct SQVM *,void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AEXEGW4waytype_t@@@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AEXEGW4waytype_t@@@Z_N@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static class koord __cdecl script_api::param<class koord>::get(struct SQVM *,int)" (?get@?$param@Vkoord@@@script_api@@SA?AVkoord@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t,class koord,class koord,class plainstring)>::call_function(struct SQVM *,void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t,class koord,class koord,class plainstring),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AEXEGW4waytype_t@@Vkoord@@1Vplainstring@@@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AEXEGW4waytype_t@@Vkoord@@2Vplainstring@@@Z_N@Z)
1>api_world.obj : error LNK2001: unresolved external symbol "public: static class koord __cdecl script_api::param<class koord>::get(struct SQVM *,int)" (?get@?$param@Vkoord@@@script_api@@SA?AVkoord@@PAUSQVM@@H@Z)
1>api_scenario.obj : error LNK2019: unresolved external symbol "public: static class plainstring __cdecl script_api::param<class plainstring>::get(struct SQVM *,int)" (?get@?$param@Vplainstring@@@script_api@@SA?AVplainstring@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t,class koord,class koord,class plainstring)>::call_function(struct SQVM *,void (__thiscall scenario_t::*)(unsigned char,unsigned short,enum waytype_t,class koord,class koord,class plainstring),bool)" (?call_function@?$embed_call_t@P8scenario_t@@AEXEGW4waytype_t@@Vkoord@@1Vplainstring@@@Z@script_api@@SAHPAUSQVM@@P8scenario_t@@AEXEGW4waytype_t@@Vkoord@@2Vplainstring@@@Z_N@Z)
1>export_besch.obj : error LNK2001: unresolved external symbol "public: static class plainstring __cdecl script_api::param<class plainstring>::get(struct SQVM *,int)" (?get@?$param@Vplainstring@@@script_api@@SA?AVplainstring@@PAUSQVM@@H@Z)
1>dynamic_string.obj : error LNK2001: unresolved external symbol "public: static class plainstring __cdecl script_api::param<class plainstring>::get(struct SQVM *,int)" (?get@?$param@Vplainstring@@@script_api@@SA?AVplainstring@@PAUSQVM@@H@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: static class plainstring __cdecl script_api::param<class plainstring>::get(struct SQVM *,int)" (?get@?$param@Vplainstring@@@script_api@@SA?AVplainstring@@PAUSQVM@@H@Z)
1>api_settings.obj : error LNK2019: unresolved external symbol "public: static unsigned int __cdecl script_api::param<unsigned int>::get(struct SQVM *,int)" (?get@?$param@I@script_api@@SAIPAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall settings_t::*)(unsigned int)>::call_function(struct SQVM *,void (__thiscall settings_t::*)(unsigned int),bool)" (?call_function@?$embed_call_t@P8settings_t@@AEXI@Z@script_api@@SAHPAUSQVM@@P8settings_t@@AEXI@Z_N@Z)
1>api_settings.obj : error LNK2019: unresolved external symbol "public: static class settings_t * __cdecl script_api::param<class settings_t *>::get(struct SQVM *,int)" (?get@?$param@PAVsettings_t@@@script_api@@SAPAVsettings_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<void (__thiscall settings_t::*)(unsigned int)>::call_function(struct SQVM *,void (__thiscall settings_t::*)(unsigned int),bool)" (?call_function@?$embed_call_t@P8settings_t@@AEXI@Z@script_api@@SAHPAUSQVM@@P8settings_t@@AEXI@Z_N@Z)
1>api_tiles.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class quickstone_tpl<class haltestelle_t> >::push(struct SQVM *,class quickstone_tpl<class haltestelle_t> const &)" (?push@?$param@V?$quickstone_tpl@Vhaltestelle_t@@@@@script_api@@SAHPAUSQVM@@ABV?$quickstone_tpl@Vhaltestelle_t@@@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class quickstone_tpl<class haltestelle_t> (__thiscall grund_t::*)(void)const >::call_function(struct SQVM *,class quickstone_tpl<class haltestelle_t> (__thiscall grund_t::*)(void)const ,bool)" (?call_function@?$embed_call_t@P8grund_t@@BE?AV?$quickstone_tpl@Vhaltestelle_t@@@@XZ@script_api@@SAHPAUSQVM@@P8grund_t@@BE?AV?$quickstone_tpl@Vhaltestelle_t@@@@XZ_N@Z)
1>api_tiles.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class grund_t *>::push(struct SQVM *,class grund_t * const &)" (?push@?$param@PAVgrund_t@@@script_api@@SAHPAUSQVM@@ABQAVgrund_t@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class grund_t * (__thiscall planquadrat_t::*)(short)const >::call_function(struct SQVM*,class grund_t * (__thiscall planquadrat_t::*)(short)const ,bool)" (?call_function@?$embed_call_t@P8planquadrat_t@@BEPAVgrund_t@@F@Z@script_api@@SAHPAUSQVM@@P8planquadrat_t@@BEPAVgrund_t@@F@Z_N@Z)
1>api_tiles.obj : error LNK2019: unresolved external symbol "public: static class grund_t * __cdecl script_api::param<class grund_t *>::get(struct SQVM *,int)" (?get@?$param@PAVgrund_t@@@script_api@@SAPAVgrund_t@@PAUSQVM@@H@Z) referenced in function "public: static class grund_t const * __cdecl script_api::param<class grund_t const *>::get(struct SQVM *,int)" (?get@?$param@PBVgrund_t@@@script_api@@SAPBVgrund_t@@PAUSQVM@@H@Z)
1>api_tiles.obj : error LNK2019: unresolved external symbol "public: static class planquadrat_t * __cdecl script_api::param<class planquadrat_t *>::get(struct SQVM *,int)" (?get@?$param@PAVplanquadrat_t@@@script_api@@SAPAVplanquadrat_t@@PAUSQVM@@H@Z) referenced in function "public: static class planquadrat_t const * __cdecl script_api::param<class planquadrat_t const *>::get(struct SQVM *,int)" (?get@?$param@PBVplanquadrat_t@@@script_api@@SAPBVplanquadrat_t@@PAUSQVM@@H@Z)
1>api_world.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<class stadt_t *>::push(struct SQVM *,class stadt_t * const &)" (?push@?$param@PAVstadt_t@@@script_api@@SAHPAUSQVM@@ABQAVstadt_t@@@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class stadt_t * (__thiscall karte_t::*)(class koord)const >::call_function(struct SQVM*,class stadt_t * (__thiscall karte_t::*)(class koord)const ,bool)" (?call_function@?$embed_call_t@P8karte_t@@BEPAVstadt_t@@Vkoord@@@Z@script_api@@SAHPAUSQVM@@P8karte_t@@BEPAVstadt_t@@Vkoord@@@Z_N@Z)
1>api_world.obj : error LNK2019: unresolved external symbol "public: static class karte_t * __cdecl script_api::param<class karte_t *>::get(struct SQVM *,int)" (?get@?$param@PAVkarte_t@@@script_api@@SAPAVkarte_t@@PAUSQVM@@H@Z) referenced in function "public: static int __cdecl script_api::embed_call_t<class vector_tpl<__int64> const & (__cdecl*)(class karte_t *,bool,int)>::call_function(struct SQVM*,class vector_tpl<__int64> const & (__cdecl*)(class karte_t *,bool,int),bool)" (?call_function@?$embed_call_t@P6AABV?$vector_tpl@_J@@PAVkarte_t@@_NH@Z@script_api@@SAHPAUSQVM@@P6AABV?$vector_tpl@_J@@PAVkarte_t@@_NH@Z2@Z)
1>simsys.obj : error LNK2019: unresolved external symbol __imp__ShellExecuteExA@4 referenced in function "bool __cdecl dr_download_pakset(char const *,bool)" (?dr_download_pakset@@YA_NPBD_N@Z)
1>optionen.obj : error LNK2019: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z) referenced in function "public: virtual bool __thiscall optionen_gui_t::action_triggered(class gui_action_creator_t *,union value_t)" (?action_triggered@optionen_gui_t@@UAE_NPAVgui_action_creator_t@@Tvalue_t@@@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z)
1>scenario_frame.obj : error LNK2001: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z)
1>savegame_frame.obj : error LNK2019: unresolved external symbol __imp__SHFileOperationA@4 referenced in function "protected: virtual bool __thiscall savegame_frame_t::del_action(char const *)" (?del_action@savegame_frame_t@@MAE_NPBD@Z)
1>scenario.obj : error LNK2019: unresolved external symbol "public: void __thiscall scenario_info_t::open_result_tab(void)" (?open_result_tab@scenario_info_t@@QAEXXZ) referenced in function "public: bool __thiscall scenario_t::open_info_win(void)const " (?open_info_win@scenario_t@@QBE_NXZ)
1>scenario.obj : error LNK2019: unresolved external symbol "public: static int __cdecl script_api::param<unsigned short>::push(struct SQVM *,unsigned short const &)" (?push@?$param@G@script_api@@SAHPAUSQVM@@ABG@Z) referenced in function "public: char const * __thiscall script_vm_t::call_function<bool,unsigned char,unsigned short,short>(char const *,bool &,unsigned char,unsigned short,short)" (??$call_function@_NEGF@script_vm_t@@QAEPBDPBDAA_NEGF@Z)
1>.\simutrans\Simutrans-Experimental-debug.exe : fatal error LNK1120: 43 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Do I need to adjust the project file settings to compile this? If so, I should be grateful to know what I need to add. Thank you!

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #26 on: November 18, 2012, 11:11:08 PM »
There are a lot of new files in directories script and squirrel.

Please see Simutrans-Experimental-BG.vcxproj in my branch 112.x-merge for a complete list of included files.

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #27 on: November 18, 2012, 11:12:49 PM »
I've synchronised all of the script and squirrel files, and double checked that my file list is the same as in Simutrans-Experimental-BG.vcxproj, but still I seem to get these errors. Are there any other changes to the project...?

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #28 on: November 18, 2012, 11:26:42 PM »
You will need to link with shell32.lib, but that will not solve most of your linker errors. More changes I cannot remember.

Did you completely recompile the project?

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #29 on: November 18, 2012, 11:32:30 PM »
Is script/api_param.cc part of your project? Looks like the first few missing externals are in it.

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #30 on: November 18, 2012, 11:51:01 PM »
Aha, thank you, that got most of them. I still get two linker errors, however:

Code: [Select]
1>optionen.obj : error LNK2019: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z) referenced in function "public: virtual bool __thiscall optionen_gui_t::action_triggered(class gui_action_creator_t *,union value_t)" (?action_triggered@optionen_gui_t@@UAE_NPAVgui_action_creator_t@@Tvalue_t@@@Z)
1>scenario.obj : error LNK2001: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z)
1>scenario_frame.obj : error LNK2001: unresolved external symbol "public: __thiscall scenario_info_t::scenario_info_t(class karte_t *)" (??0scenario_info_t@@QAE@PAVkarte_t@@@Z)
1>scenario.obj : error LNK2019: unresolved external symbol "public: void __thiscall scenario_info_t::open_result_tab(void)" (?open_result_tab@scenario_info_t@@QAEXXZ) referenced in function "public: bool __thiscall scenario_t::open_info_win(void)const " (?open_info_win@scenario_t@@QBE_NXZ)
1>.\simutrans\Simutrans-Experimental-debug.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Do you know where those might be found...?

Also, I managed to compile a debug version with your project file. One bug to report from that so far: the "stop status" and "queing" (sic) overlays for the map give circles that are too small - almost invisible except on close inspection.

Thank you very much for this help.

Edit: Aha, I have it: I was missing scenario_info.cc. Thank you for your help - it works now.

Edit 2: I have noticed a further map problem: see this saved game. Using the "Pass. Dest." feature results in odd streaking on the minimap, rather than individual squares.
« Last Edit: November 19, 2012, 12:16:05 AM by jamespetts »

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #31 on: November 21, 2012, 02:04:36 AM »
Another few bugs to report so far: with this saved game (and possibly others: I have not checked), the default (and, in that case, only) player will be loaded with a very large debt when the game loads with the 112.x-merge branch, whereas in 10.14, the game loads with the default player showing a substantial credit balance in the account.

Further, in the depot/replace windows, all vehicles seem to be marked incorrectly as not being able to manage any speed at all fully loaded. Additionally, vehicles always display "cannot find a route" when attempting to start them from a depot (this is probably because all vehicles seem to have extremely high weights rather than their correct weights). Tractive effort values are also multiplied by several factors of ten. Narrow gauge railway depots seem to function as if they were standard gauge depots, with the result that narrow gauge railway vehicles cannot be built. When adding items to a convoy's schedule, each new schedule item does not occupy a new lie, but overlaps the previous item on the same line. Undo does not seem to work.

Do let me know when these have been looked into. Incidentally, what I think that I shall do with this is produce a release candidate version of the merged executable once we have reduced the fairly obvious bugs that I can find to enable wider testing over a long period of time, as these merges have a habit of introducing large numbers of bugs.

Offline IgorEliezer br

  • Devotee
  • Administrator
  • *
  • Posts: 4089
  • Cake recipes are cool... REALLY!
    • Igor Eliezer Architect and Urban Planner/Arquiteto e Urbanista
  • Languages: PT, EN, AutoLISP, Python
Re: Merging Standard 112.x into Experimental
« Reply #32 on: November 21, 2012, 03:48:46 AM »
Congratulations for finishing this task!!
* IgorEliezer shakes fists.

Offline Bernd Gabriel

  • *
  • Posts: 230
  • Addicted to Simutrans: since 2003
    • Fast Function Factory
  • Languages: DE, EN, C++
Re: Merging Standard 112.x into Experimental
« Reply #33 on: November 21, 2012, 10:06:09 PM »
Fixed issues:
  • Odd finances: seems to be fixed after removing redundant new month calculations.
  • Depot/Replace windows (gui_convoy_assembler): weight issues fixed (ST standard changed vehikel_besch_t::weight from tonnes to kg).
  • Schedule GUI (fahrplan_gui).
  • Wrong way type in Narrow Gauge Railway Depot.
  • Standard depots are with "Unpowered vehicles only".
  • Wrong vehicle's cost in convoy assembler.
  • Wrong vehicle's braking force in convoy assembler.
Known issues:
  • Standard aircrafts fly without using the run way.
  • Saving bzip2 game produces exception. This is not an experimental issue. My libbz2.lib is incorrect. Neither executable that I've compiled can save bzip2 files incl. Simutrans Standard.
« Last Edit: November 28, 2012, 11:00:53 PM by Bernd Gabriel »

Online jamespetts gb

  • Simutrans-Extended project coordinator
  • Moderator
  • *
  • Posts: 19353
  • Cake baker
    • Bridgewater-Brunel
  • Languages: EN
Re: Merging Standard 112.x into Experimental
« Reply #34 on: November 24, 2012, 01:16:59 AM »
Thank you for working on those fixes. I have only had time for brief testing, so just a few comments: firstly, on loading a pakset in debug mode, I always get a "corrupted runtime variable" error on line 260 of cbuffer.cc. Selecting "continue" twice will clear it and allow the game to load, although one wonders whether this indicates an error. Reversing at waypoints seems to be broken - trains will (sometimes it seems - this is not consistent) wrap around themselves rather than stop, reverse, and start again.