Reproduced from MUD Planet Forums:
** The maximum short integer size, which is attempted in several calls in the code, is wrong in several of those places.
## Use grep -i 300 and grep -i 320 and grep -i 327 to find the most of these entries, figure out which ones should be fixed, and fix them. For vnums I suggest adding a define in mud.h (#define MAX_VNUM 32767) and using that for the vnum calls. Also, if you look closely, even the coded documentation on some of those functions are bad. IE they use > 32767 but in the code right below it says 30000 is the maximum.
** Supplicate recall and do_recall uses a hard coded room vnum check for deadly recall.
## Add a define for ROOM_VNUM_DEADLY and use that in the checks for 3009.
** Supplicate recall does not do the racial recall check that do_recall does.
## Copy the racial recall code from do_recall and add it to the supplicate recall code.
** Bad MAX_WHERE_NAME check in act_wiz.c.
## Fix the call to use < MAX_WHERE_NAME instead of <= MAX_WHERE_NAME.
** Setrace language uses the straight number you input. Should use a bitvector.
## This is a bit more involved. Need to scan lang_array or lang_names for an argument, if found set the language to lang_array value.
** Gnome race has no default language.
## Using the above fix, give it a language.
** Showrace doesn't show a race's language.
## Change showrace to compare the language to the lang_array, if a match, print the language name. Fairly small amount of code.
** The commands mpfind, opfind, and rpfind are not created as commands.
## Create the commands, set them to the level of your highest builder, or something. Might want to make a help file, and remove the help functions they use, as its excess code for functions that are so similar.
** Hell and unhell still use hardcoded vnum checks.
## Fix hell and unhell to use ROOM_VNUM_HELL, and add it to mud.h. Saves a lot of time and trouble in the long run.
** The gsn_shieldwork is never called in any source file.
## Remove gsn_shieldwork from mud.h.
** Formpass doesn't check submitted arguments to even see if they exist, and there is no help file for it.
## Do some simple checks in formpass to make sure there are two arguments (one_argument them both... they'll never have a two word name, and if they do there is a problem), and add the help file entry. If you want to save some work, if they're missing an argument put in a call to do_help( ch, "formpass" ).
** Null entries in the commands.dat file.
## Well, this one actually has a simple fix. First, cedit save cmdtable.
Then open up commands.dat (should be in the system directory), and search for '0x.' Every time you find one of those, it means that there is no code for it. Some of these commands MAY still have a use. Check for them, if not, go ahead and rip them out.
** A hell of a lot of useless entries in help.are.
## Well, only one way to do this. Go through every one of them, and rip them out, one by one. I managed to drop off about 130k or so, from the help.are file. Though, I suggest reading the daily# entries. Some are quite funny. Something about people not having the sense god gave a duck's ass and them not being stupid, just possessed by a retarded ghost.
** Loads of #include calls in all the source files, that simply do NOT need to be there.
## Well, only way I know of to test this is to rip out the includes from each file, one by one, and re-add them if the code bitches at you about them. I managed to drop a good bit off my exe size by doing this. Note, some of the #includes in mud.h are necessary with the way mud.h is set up. If you see an include in mud.h it doesn't need to be in any other file that includes mud.h. Because it is in mud.h, it is already included in those files.
** The tax_player function (or some name similar to it) is called, but the whole function is commented out.
## Remove the call, and the function.
** Unused typedefs and structs in mud.h. Credit for finding these goes to Samson.
## Again, easiest way to do it is go through them one by one and see what is used. If it's not used, remove it. Samson, possibly, may have a list of the ones he found.
** Typing 'who www' in game prints HTML code that was meant for the request pipe.
## Go in and add a case for if used online, or remove it altogether.
** Ignoring of Immortals, so that you can see who they are while they're invisible, still works.
## Several solutions. Don't print the name of the person being ignored, if the person ignoring them can't see it, is the simplest solution. Meaning mainly fix the calls in act_comm.c to use PERS( ch, victim ) refs.
** Wasted token use in prompts. %b and %B for blood along with %m and %M for mana, where you could just use %m and %M for magic.
## The best solution is to go through these and reorganize them, clean them up... as some of these tokens, people may not even know about.
That's all of them that come to mind at the moment. I know there were more, but I'm drawing a blank, now. Once I remember the others, I'll try to post them.