summaryrefslogtreecommitdiff
path: root/src/map/charcommand.h
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-29 09:16:39 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-10-29 09:16:39 +0000
commit8f36123ac4f0dad6a9c2428b0b01a3ffd81017a4 (patch)
tree844de2f22a0f03953031d1baaf3ffdc426ad48cd /src/map/charcommand.h
parentccbcf5a85c209341e6471269abef23b58633d083 (diff)
downloadhercules-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.h101
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_ */