Merge pull request #254 from Arkshine/feature/gameconfig
Implement a game config parser and expose functionnalities to the module/plugin API
This commit is contained in:
@ -30,6 +30,7 @@
|
||||
#include <textparse_smc>
|
||||
#include <textparse_ini>
|
||||
#include <cvars>
|
||||
#include <gameconfig>
|
||||
|
||||
/**
|
||||
* Called just after server activation.
|
||||
|
93
plugins/include/gameconfig.inc
Normal file
93
plugins/include/gameconfig.inc
Normal file
@ -0,0 +1,93 @@
|
||||
// vim: set ts=4 sw=4 tw=99 noet:
|
||||
//
|
||||
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
|
||||
// Copyright (C) The AMX Mod X Development Team.
|
||||
//
|
||||
// This software is licensed under the GNU General Public License, version 3 or higher.
|
||||
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
|
||||
// https://alliedmods.net/amxmodx-license
|
||||
|
||||
//
|
||||
// Game Config Functions
|
||||
//
|
||||
|
||||
#if defined _gameconfigs_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _gameconfigs_included
|
||||
|
||||
enum GameConfig
|
||||
{
|
||||
Invalid_GameConfig = 0
|
||||
};
|
||||
|
||||
/**
|
||||
* Loads a game config file.
|
||||
*
|
||||
* @note The file path must be relative to the 'gamedata' folder under the data folder
|
||||
* and the extension should be omitted.
|
||||
*
|
||||
* @param file File to load
|
||||
*
|
||||
* @return A handle to the game config file
|
||||
*/
|
||||
native GameConfig:LoadGameConfigFile(const file[]);
|
||||
|
||||
/**
|
||||
* Returns an offset value.
|
||||
*
|
||||
* @param handle Game config handle
|
||||
* @param key Key to retrieve from the offset section
|
||||
*
|
||||
* @return An offset, or -1 on failure
|
||||
* @error Invalid game config handle
|
||||
*/
|
||||
native GameConfGetOffset(GameConfig:handle, const key[]);
|
||||
|
||||
/**
|
||||
* Returns an offset value given a classname.
|
||||
*
|
||||
* @param handle Game config handle
|
||||
* @param classname Class name to match from the offset section
|
||||
* @param key Key to retrieve from the offset section
|
||||
*
|
||||
* @return An offset, or -1 on failure
|
||||
* @error Invalid game config handle
|
||||
*/
|
||||
native GameConfGetClassOffset(GameConfig:handle, const classname[], const key[]);
|
||||
|
||||
/**
|
||||
* Gets the value of a key from the "Keys" section.
|
||||
*
|
||||
* @param handle Game config handle
|
||||
* @param key Key to retrieve from the Keys section
|
||||
* @param buffer Destination string buffer
|
||||
* @param maxlen Maximum length of output string buffer
|
||||
*
|
||||
* @return True if key existed, false otherwise
|
||||
* @error Invalid game config handle
|
||||
*/
|
||||
native bool:GameConfGetKeyValue(GameConfig:handle, const key[], buffer[], maxlen);
|
||||
|
||||
/**
|
||||
* Finds an address calculation in a GameConfig file.
|
||||
*
|
||||
* @param handle Game config handle
|
||||
* @param name Name of the property to find
|
||||
*
|
||||
* @return An address calculated on success, otherwise 0 on failure.
|
||||
* @error Invalid game config handle
|
||||
*/
|
||||
native GameConfGetAddress(GameConfig:handle, const name[]);
|
||||
|
||||
/**
|
||||
* Destroys a game config and frees its memory.
|
||||
*
|
||||
* @note The function automatically sets the variable passed to it to 0 to aid
|
||||
* in preventing accidental usage after destroy.
|
||||
*
|
||||
* @param handle Game config handle
|
||||
*
|
||||
* @return 1 on success, 0 if an invalid handle was passed in
|
||||
*/
|
||||
native CloseGameConfigFile(&GameConfig:handle);
|
Reference in New Issue
Block a user