adventuregamestudio / ags

AGS editor and engine source code
Other
699 stars 160 forks source link

Whispers of a Machine fails on startup with "unresolved import 'Label::get_TextAlignment'" #751

Closed i30817 closed 5 years ago

i30817 commented 5 years ago

In the ags3 branch.

No placeholder functions for the plugin 'agsspritefont' found. The game might fail to load.
No placeholder functions for the plugin 'agsteam' found. The game might fail to load.
Placeholder functions for the plugin 'agswadjetutil' found.
Loading game failed with error:
Script link failed.
Runtime error: unresolved import 'Label::get_TextAlignment'.

The game files may be incomplete, corrupt or from unsupported version of AGS.

Which i would think would be here https://github.com/adventuregamestudio/ags/blob/50f84a3eb6487e5d167a93b4d2038b10bcffced1/Engine/ac/label.cpp#L153

It's possible this is a ags4 game though (it's recent), and i'm not able to compile it atm (it fails linking with plugins) so i dunno. It would probably fail on the rest of the missing plugins anyway.

i30817 commented 5 years ago

It's a end game puzzle that shows some scrabble tokens built from 3 phrases, that modifies a font with the functionality of the original plugin (not the fork), thus it works if you built it, and doesn't with the stubs (if you do not have the dll on the dir). So it's not really 'broken', imo, unless you plan to make the stubs functional.

ghost commented 5 years ago

So it's not really 'broken', imo, unless you plan to make the stubs functional.

Hmm, no, stubs are stubs, I'd wish there was a working open sourced plugin.

i30817 commented 5 years ago

The funny thing is that i don't think the games actually make much use of the hacks the plugin fork made. My PR is very minimal and gets KR and WoaM font to display well, and there is only one thing broken in kathy rain AFAICT, that postcard, and i can hardcode a return in the font request to avoid it (unfortunately, i do no know how to tell from the plugin code if the game that is running is kathy rain, so i'm hesitant to do it). I haven't played WoaM yet.

Onitake wants to pull in all changes in sync with upstream, but i kind of suspect that is more trouble than it's worth, especially if they can't/won't be merged and the games work without those changes (that were made with 'hacks' too, such as 'special strings' as function arguments to change 'lineheight' state).

edit: tried out WoaM.... it's has further problems with text location. The game has a 'scanner' you can drag around a scene. If you drag it on top of the body in the first scene the text is at completely the wrong x offset. Oh well.

onitake commented 5 years ago

I'm strongly against hardcoding per-game hacks, if there are other options. Once you start going down that road, it will never end.

So, before this deteriorates further, I agree that we should open separate issues about all the little things that were discussed in this thread. The AGSSpriteFont plugin is one of them. Since I already fused the modifications off into a separate branch, I'm going to retarget against the main AGS3 repo.

ghost commented 5 years ago

Whispers of a machine still needs other things " 'MobileShowAchievements' and 'MobileGetAchievement'."

Please try d5bc68d3aa2a31ff5e840558ea7f299989b366f1

i30817 commented 5 years ago

It worked. This can be closed in favor of the other issues.