AMX Mod Compatibility Layer (AMX Mod X)

From AlliedModders Wiki
Revision as of 10:26, 8 September 2006 by BAILOPAN (talk | contribs)
Jump to: navigation, search

As of 1.76, AMX Mod X has an AMX Mod backward compatibility layer. This layer has two goals. The first goal is API compatibility: AMX Mod plugins should compile without modification and subsequently run normally on AMX Mod X. The second goal is ABI compatibility: AMX Mod plugins should run as raw '.amx' files, without recompilation, on AMX Mod X.

This current status of this side project is experimental. While it will work for most plugins, there may be niches or obscure details yet unresolved.

List of Tested Plugins

The following is a list of plugins the development or beta testing team has verified to be working. (D) denotes a default plugin shipped with AMX Mod.

  • Dev Tested
    • admin (D)
    • admin SQL (D)
    • hackmod
    • sentryguns
    • shoot_at_nades
    • ultimate_c4

Makeshift Tracker

  • VexdUM Port
    • Natives
      • Engine's entity_[g|s]_*() natives should no longer bail out if the player is not ingame.
      • radius_damage replacement (NOTE
      • traceresult and its related natives
      • get/set offset functions
      • TODO: Port the TFC natives.
    • Forwards
      • All done but monster_hurt.
  • MySQL Port
    • Entirely done.
  • Fun Port
    • Unknown
  • Core Port
    • Translator functionality nearly complete. Helper functions not done yet.
    • Added detection for AMX Mod's localinfo keys.
    • Math functions ported.

Technical Details

The AMX Mod compatibility layer (codenamed 'bcompat') is largely done through a plugin called amxmod_bcompat. Our wa to keep C++ editing to a minimum. Unfortunately, there are a few limited things that could only be done in C++. However, keeping the majority of code in a plugin reduces the amount of work ordinary plugin developers need to add features or fix problems. It also makes it easy to centralize the system rather than adding spidery code across modules.