Git Product home page Git Product logo

Comments (5)

goodidea82 avatar goodidea82 commented on June 11, 2024

Info. When downloading FLA the source code is included. There you can find the file:
fastman92_limit_adjuster_4_3\fastman92 limit adjuster 4.3\source code\fastman92 limit adjuster\fastman92 limit adjuster\howToMakePluginsCompatible.txt

I have found the following update from version 4.2 to 4.3:
4.2:
0x40122D - holds a pointer to CStreaming::ms_modelInfoPtrs array (0x0xA9B0C8 by default)
4.3:
(0x4C5538+3)- holds a pointer to CStreaming::ms_modelInfoPtrs array (0x0xA9B0C8 by default)

from plugin-sdk.

goodidea82 avatar goodidea82 commented on June 11, 2024

Recently I started to host an FLA compatible version of GarageExtender. The mod created by Link2012 uses some of the old files from plugin-sdk, so the issue is very similar.

The current version of GarageExtender uses the addresses for FLA 4.2. I have tested it now with FLA 4.3 and it does not work reliably for the reason described in the previous post (changed addresses). Hence, a solution is neede how to detect the version of FLA and to detect if FLA is running at all. The solution must be backward compatible with older versions of FLA that are in use and will be used.

To detect if FLA is running, a possibility is (a) to check which modules are loaded in memory or (b) check if the FLA asi file is present in the folder. I am not sure at what time it is safe to assume that all modules are loaded.

To detect the version of FLA the file size can be checked (which is different each time), or the comment in FLA log file can be read. However, the time when the log file is created maybe too late.

from plugin-sdk.

fastman92 avatar fastman92 commented on June 11, 2024

There is really no need to check the FLA version.
Just tell me what's the problem and I'll tell you the best solution.
Be precise when asking. Tell me what's the exact problem instead of saying something doesn't work like many would.

4.2:
0x40122D - holds a pointer to CStreaming::ms_modelInfoPtrs array (0x0xA9B0C8 by default)
4.3:
(0x4C5538+3)- holds a pointer to CStreaming::ms_modelInfoPtrs array (0x0xA9B0C8 by default)

The old one still works in HOODLUM.

The newer address is better, because it valid for compact/HOODLUM EXE and it will never need to be changed anymore.
It's a part of this simple function:
void __cdecl CModelInfo::SetModelInfo(int index, CBaseModelInfo* pModelInfo) { CModelInfo::ms_modelInfoPtrs[index] = pModelInfo; }

The FLA should always be loaded first unless the ASI loader is not well made.
For this reason the file is called $fastman92limitAdjuster.asi
$ should come before any other letter, when sorted.

When other plugin loads, the FLA is already loaded (if it exists) or not.

from plugin-sdk.

goodidea82 avatar goodidea82 commented on June 11, 2024

Moved discussion with fastman92 here due to addition topics to discuss.

from plugin-sdk.

DK22Pac avatar DK22Pac commented on June 11, 2024

Compatibility will be implemented in future versions.

from plugin-sdk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.