melindil / FTSE

Fallout Tactics Scripting Engine
MIT License
7 stars 1 forks source link

Support FT Improver capabilities natively in FTSE (was: "Some Questions") #1

Open 10Dozen opened 3 years ago

10Dozen commented 3 years ago

Hi,

Awesome job was done here! Much thanks!

Have a few questions about project and plans: 1) Is it possible to create FTSE scripts in various files and then include them somehow to FTSE.lua? Not familiar with LUA, but assume that last included file's functions will overwrite others? Is there plans to support multiple script files for FTSE? 2) Years ago there was a project to recreate dialog UI in FT (as part of Open Fallout Mod). Some video: https://www.youtube.com/watch?v=3kTHxxNLFHA The idea briefly was to convert dialog window sprites to tiles, map tiles somewhere under the level, add entitiy to provide speech 'bubble'; when player speaks to someone - teleport player below the 'dialog' tiles and using forcespeech on entitiy - draw dialog text and answers over 'dialog tiles'. Sounds a bit monstrous, yeah. Ofc i don't wonder about adding custom UI to the game (it will be awesome btw), but this system has a noticable issue -- to select answer, character needs to go close to entity and interact with it. IRC there was some hex address of interaction range constant, but patching exe affect all interaction same time ;( Maybe it can be done dynamically via script? 3) Is FTSE compatible with FT Improver? Do you plan to add similar features as FTI have if tools are not compatible?

melindil commented 1 month ago

Hi! Thanks for the feedback!

Regarding the items listed:

  1. In Lua, you can use the keyword "require" to include functions from another .lua file. This should be what you're looking for. (Note that official module support will be coming soon, as it will be extremely helpful once custom entity and UI types are possible.)
  2. It might be almost possible to do this now. In 0.55a, support for overriding virtual functions in entity classes was added. I think one of these functions might have been the one you're referring to. If I can find that code again, I'll let you know how to temporarily use the vtable override to do what you're asking. But in the long term, once custom UI is working, true dialogue window support should follow very shortly.
  3. This is on the to-do list, as some new coming features may require use of the editor tools built into the main BOS 1.27 executable, which would otherwise make FT Improver a strict requirement for FTSE (which I'd like to avoid).
melindil commented 1 month ago

Since item 3 (FT Improver integration) is a planned feature, and there's no issue open for it yet, I'll repurpose this issue to track progress on that.