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

[Discussion] Making AMXX 1.9 official with updated signatures for 25th anniversary #1108

Open
Jhob94 opened this issue Jul 31, 2024 · 5 comments

Comments

@Jhob94
Copy link

Jhob94 commented Jul 31, 2024

Not sure if i am in the right place since i am not used to github.

I would like to suggest AMXX 1.9 as the official version with the signatures fixed for the latest cs version. Most users already use this version but with outdated signatures while they run servers with legacy.

Why is this a must?
Some servers fail to set legacy version on server start-up and it requires a map change to fix it. Plugins that use hamsandwich will not work on start-up because legacy was not loaded and the signatures are outdated. This is an issue and we must fix it.
The signatures for the latest version are all here: #1086 posted by ClaudiuHKS.

@fysiks1
Copy link
Contributor

fysiks1 commented Aug 22, 2024

Probably need to increment one of the version numbers if you make the signatures update since people have been using 1.9 for a while now with the pre-anniversary version. Or, why not just leave 1.9 alone and do this to 1.10? What are the risks of using 1.10?

@HamletEagle
Copy link
Contributor

HamletEagle commented Aug 22, 2024

I think that amxx 1.9 can be considered (unofficially) released as people have been using it for a long time, as fysiks mentioned. To me, it doesn't make much sense to update 1.9 with the new signatures.

1.10 is the current dev version, it should get the update. Updating 1.9 will create an awkward situation where we have two versions of both 1.9 and 1.10, each corresponding to a different HLDS version as the signature updates eventually need to make their way into 1.10 as well. This could lead to unnecessary complexity for the end user.

By updating 1.10, servers that prefer the legacy branch can continue using 1.9, while those running the 25th-anniversary edition can migrate to 1.10.

@Jhob94
Copy link
Author

Jhob94 commented Sep 11, 2024

I’ve read somewhere that register_native style 1 has been deprecated on 1.10. I don’t think it should ever become an official version. Why would we remove the most efficient plus readable way of registering natives? We would downgrade amxx. Imo 2 versions of 1.9 would be the most reasonable decision.

Edit:
Another possible solution is by making 1.9 with new signatures renamed to 2.0.
I am aware that there is a myth on forum that style 1 should be avoided. It is misinformation. Not only style 1 is more practical and readable as it is more efficient:
“When a plugin uses your native (you should distribute a .inc), the handler will be called with two parameters: the calling plugin id, and the number of parameters.

If you set style=1, the method of parameter passing is a tad more efficient. Instead of "id, numParams", you label the native exactly as how the parameters should, in theory, be sent. Then for each byreference parameter, you call param_convert(num).”

  • in Amxx Documentation

@fysiks1
Copy link
Contributor

fysiks1 commented Sep 12, 2024

Deprecated doesn't mean it's obsolete, it should remain functional but no longer recommended. If you don't think 1.10 should ever become an official version then you are in luck! Nothing will ever become an official version ;) based on the last decade.

Back on the topic of signatures, @ClaudiuHKS mentions in this post that his files aren't fully functional which is a potential issue to incorporating those changes in to master.

@Jhob94
Copy link
Author

Jhob94 commented Sep 12, 2024

#1086 (comment)

He later edited and added the missing signatures. What was left to do was verifying hamdata, which i already did.

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

No branches or pull requests

3 participants