This wiki is archived and useful information is being migrated to the main bzflag.org website
Editing BZFS API 2.4 Upgrade
Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.
The administrator who locked it offered this explanation: Archived wiki
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 17: | Line 17: | ||
===Player Records=== | ===Player Records=== | ||
− | The [[bz_PlayerRecord]] has been replaced with [[bz_BasePlayerRecord]] to allow for future derivation. Some of | + | The [[bz_PlayerRecord]] has been replaced with [[bz_BasePlayerRecord]] to allow for future derivation. Some of it's members have been changed, mostly notably the player position information is now part of the '''lastKnownState''' member of type [[bz_PlayerUpdateState]]. This structure contains much more information about the player state. |
==Entry Points== | ==Entry Points== | ||
Line 59: | Line 59: | ||
==Events== | ==Events== | ||
− | Every plug-in now has a single callback method for all events that it registers. The functions [[bz_registerEvent]] and [[bz_removeEvent]] have been removed from the API. In | + | Every plug-in now has a single callback method for all events that it registers. The functions [[bz_registerEvent]] and [[bz_removeEvent]] have been removed from the API. In there place the [[bz_Plugin]] class now implements it's own '''Register''' and '''Remove''' methods. |
These methods only take an event type and do not need a separate handler class, they will always use the '''Event''' method of the calling class. | These methods only take an event type and do not need a separate handler class, they will always use the '''Event''' method of the calling class. | ||
Line 105: | Line 105: | ||
* Change the '''handle''' method in any bz_CustomMapObjectInfo to '''MapObject''' | * Change the '''handle''' method in any bz_CustomMapObjectInfo to '''MapObject''' | ||
* Find the bz_Load callback and replace it with the '''Init''' method from the plug-in class. | * Find the bz_Load callback and replace it with the '''Init''' method from the plug-in class. | ||
− | * Replace calls to ''' | + | * Replace calls to '''bz_registerEventHandler''' with calls to '''Register''', and remove the second parameter. |
− | * If the plug-in used custom slash commands or custom map objects that need to be cleaned up then implement the '''Cleanup''' method for the plug-in class and replace the bz_Unload Callback with it. Calls to ''' | + | * If the plug-in used custom slash commands or custom map objects that need to be cleaned up then implement the '''Cleanup''' method for the plug-in class and replace the bz_Unload Callback with it. Calls to '''bz_removeEventHandler''' can be removed, and the method Flush can be called once for all events. If the plug-in only registers events then the bz_Unload callback can be removed. |
* Replace the following. | * Replace the following. | ||
# '''bzApiString''' with '''bz_ApiString''' | # '''bzApiString''' with '''bz_ApiString''' | ||
− | # '''bzAPIIntList''' with '''bz_APIIntList''' | + | # '''bzAPIIntList''' with '''bz_APIIntList''' |
− | # '''bzAPIFloatList''' with '''bz_APIFloatList''' | + | # '''bzAPIFloatList''' with '''bz_APIFloatList''' |
− | # '''bzAPIStringList''' with '''bz_APIStringList | + | # '''bzAPIStringList''' with '''bz_APIStringList''' |
− | + | ||
* Add '''_V1''' to all event data classes, and adjust calls to members as needed, time to eventTime, etc... | * Add '''_V1''' to all event data classes, and adjust calls to members as needed, time to eventTime, etc... |