Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow external handling of internal ACS functions from other ports #2965

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

Boondorl
Copy link
Contributor

This is a feature geared towards allowing mods to handle certain ACS functions that will never be ported to GZDoom due to how they're handled internally. For example, Zandronum's multiplayer gamemodes can be recreated entirely via ZScript giving no reason to bake them in; however, Zandronum maps that rely on these ACS functions will be unusable. This is a huge barrier for gamemodes like Invasion because while all classes and gamemode handling can be ported properly, the ACS functions will never be able to. This PR allows you to hook up these ACS functions to your own custom API, finally resolving the largest hurdle to compatibility with other ports.

I'm going to mark this as a draft for now since I want to discuss realistically what should and shouldn't be allowed to be handled. While some functionality is a given (gamemode getters/setters), others are less clear like the database functionality. While technically GZDoom doesn't support this and someone could easily set up their own database handling by hooking into these functions, it's also possible it'll be added in the future and hooking these functions up to that would be much smarter. Other functions can easily be baked into GZDoom, they just need to be merged over correctly.

The current list of handled functions is not complete and is likely to change. I mostly want to get this up now to gather some thoughts on it before fully committing since I'm also not sure how smart it is to expose the internals of ACS like this.

For ACS functions that should not be baked into the engine, allow hooking into them externally so that ZScript mods can still make use of them.
@RicardoLuis0
Copy link
Collaborator

i think it'd be good to export this to gzdoom.pk3, so that they can be reimplemented in zscript if possible, but not for PWADs

@RicardoLuis0
Copy link
Collaborator

(also cool would be if you managed to add a way to call built-in ACS functions from zscript)

@MajorCooke
Copy link
Contributor

Ricardo did say he would tackle database with SQLite but it's low on the priority list. Unless that changed anytime soon. Still, database would allow for me to make Minecraft land generation possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants