diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-10-29 09:16:39 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-10-29 09:16:39 +0000 |
commit | 8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4 (patch) | |
tree | 844de2f22a0f03953031d1baaf3ffdc426ad48cd /src/map/charcommand.h | |
parent | ccbcf5a85c209341e6471269abef23b58633d083 (diff) | |
download | hercules-8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4.tar.gz hercules-8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4.tar.bz2 hercules-8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4.tar.xz hercules-8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4.zip |
Command code cleaning (refer to topic:169759)
* separated the execution part of command code into interface part and internal part to better see which checks are done and when (fixes problem where 'nocommand' mapflag blocked server npcs)
* moved the internal commands list (array) to the end of the file, this let me discard that long block of ACMD_FUNC() declarations
* removed enum AtCommandType from command headers and commands array; its purpose was perhaps to identify aliased commands, but apparently it was never finished because the rest of the code doesn't use it (also doing aliases like this is not a very good idea)
* internally, commands are now referenced to using their function name
* removed the @/# symbols from the command lists; all lookup functions will now properly deal with strings with- and without a command symbol (commands interface still requires the symbol tho', so TODO for later)
* removed several unneeded commands (*id2 code, dmalloc debug commands)
* reverted atcommand config from alphabetically-sorted to how it was before (with additional fixes; see /conf changelog)
* added missing code for #dropall / #storeall
* added a warning when trying to set gm level of an undefined command
The structure of the commands table has changed, please adjust docs/guides to match the new format (sorry for the inconvenience).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11607 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/charcommand.h')
-rw-r--r-- | src/map/charcommand.h | 101 |
1 files changed, 8 insertions, 93 deletions
diff --git a/src/map/charcommand.h b/src/map/charcommand.h index 754989d4b..25a27b732 100644 --- a/src/map/charcommand.h +++ b/src/map/charcommand.h @@ -4,101 +4,16 @@ #ifndef _CHARCOMMAND_H_ #define _CHARCOMMAND_H_ -enum CharCommandType { - CharCommand_None = -1, - CharCommandJobChange, - CharCommandPetRename, - CharCommandPetFriendly, - CharCommandReset, - CharCommandStats, - CharCommandOption, - CharCommandSave, - CharCommandSpiritball, - CharCommandItemList, - CharCommandEffect, - CharCommandStorageList, - CharCommandItem, // by MC Cameri - CharCommandWarp, - CharCommandZeny, - CharCommandFakeName, - CharCommandBaseLevel, - CharCommandJobLevel, - CharCommandQuestSkill, - CharCommandLostSkill, - CharCommandSkReset, - CharCommandStReset, - CharCommandModel, - CharCommandSKPoint, - CharCommandSTPoint, - CharCommandChangeSex, - CharCommandFeelReset, // Komurka - CharCommandHelp, - CharCommandLoad, - CharCommandSpeed, - CharCommandStorage, - CharCommandGStorage, - CharCommandHide, - CharCommandAlive, - CharCommandHeal, - CharCommandItem2, - CharCommandItemReset, - CharCommandRefine, - CharCommandProduce, - CharCommandStrength, - CharCommandAgility, - CharCommandVitality, - CharCommandIntelligence, - CharCommandDexterity, - CharCommandLuck, - CharCommandGuildLevelUp, - CharCommandHatch, - CharCommandPetHungry, - CharCommandAllSkill, - CharCommandDye, - CharCommandHStyle, - CharCommandHColor, - CharCommandAllStats, - CharCommandMountPeco, - CharCommandDelItem, - CharCommandJailTime, - CharCommandDisguie, - CharCommandUnDisguise, - CharCommandCartList, - CharCommandKiller, - CharCommandKillable, - CharCommandRefresh, - CharCommandExp, - CharCommandMonsterIgnore, - CharCommandSize, - CharCommandHomLevel, - CharCommandHomEvolve, - CharCommandHomFriendly, - CharCommandHomHungry, - CharCommandHomInfo, - // No more commands after this line - CharCommand_Unknown, - CharCommand_MAX -}; +//#include "map.h" +struct map_session_data; -typedef enum CharCommandType CharCommandType; -typedef struct CharCommandInfo { - CharCommandType type; - const char* command; - int level; - int (*proc)(const int, struct map_session_data*, - const char* command, const char* message); -} CharCommandInfo; - -CharCommandType -is_charcommand(const int fd, struct map_session_data* sd, const char* message); -CharCommandType -is_charcommand_sub(const int fd, struct map_session_data* sd, const char* str, int gmlvl); +extern char charcommand_symbol; +typedef int (*CharCommandFunc)(const int fd, struct map_session_data* sd, const char* command, const char* message); -CharCommandType charcommand( - struct map_session_data* sd, const int level, const char* message, CharCommandInfo* info); -int get_charcommand_level(const CharCommandType type); +bool is_charcommand(const int fd, struct map_session_data* sd, const char* message); +bool is_charcommand_sub(const int fd, struct map_session_data* sd, const char* str, int gmlvl); +int get_charcommand_level(const CharCommandFunc func); -int charcommand_config_read(const char *cfgName); -extern char charcommand_symbol; +int charcommand_config_read(const char* cfgName); #endif /* _CHARCOMMAND_H_ */ |