Let me apologize first for asking what are sure to be a series of very silly sounding questions. Having lost my coder and still being determined to get my MUD up off the ground, I decided to do the best I could with SmaugFUSS 1.9 and hope for the best.
I googled some help and found how to take out old races and add in new races that my group designed into the race list. There are 18 of them, so I also went in and upped the MAX_RACE to 18 instead of 16. I also made sure I based them all off the Human template, not the _Vampire_ one.
But for some reason, in my creation screen I can only see 16 of the 18 races. It's not even listing "Human".
I thought this could be an issue with classes, as those are chosen first, but I set all of the races to have "0" as their class and "0" is the Mage, which I've been selecting until I can go in and add the class I want.
Do any of you have any ideas as to why only 16 of my 18 races are showing up?
/*#define MAX_RACE 20 Trying to fix a bunch of problems– Scryn*/ /*#define MAX_RACE 15 */ /* added 6 for new race code */ #define MAX_RACE 26 All this found in ===>>> mud.h
Hope this helps. Not sure why the MAX_RACE is defined as 26 when it appears there are only 14 visible listed there, though. Also, where are the races not showing up? Upon creation, or with a specific command?
Ok, I can only guess on your problem from the small amount of information you give.
SMAUG unlike most codebases is set up to allow on line creation and editing of many things that are hard coded in more primitive codebases, including races. Setrace is used to create and edit races, though in stock SMAUG (and in FUSS) the system is most useful in adding new races and editing bits of the existing races. There are issues with removing or even renaming the existing races though. Though most of those issues you just have to fix in the shell with manual editing of the race files or the race.lst file. Though stock does still have a few hard coded things for races (racism in shops, and the align of nephs come to mind) normally you can change races and things will work well with no coding at all.
MAX_RACE is the max number of races you can have and you should be able to create races until you get to this number, and can be higher then the number you are using, MAX_PC_RACE is the current number of races and is set on race load or when you create a new race online.
My best guess on what your problem is, is with one of the biggest weaknesses they left in the system, the stock system still uses the array index as a persistent id for players (in the SMAUG derivative I use that races have nothing hard coded, race is saved as name and the race files do not save the old index value) and is saved in the race files and actually used to place the race data on load. This means if you remove any of the existing races, you have to manually edit the race files to make sure you have one and only one race with a given race number and there are no holes in the range of numbers.
} race_types; looks to be in there just fine following the races.
I checked the races files to make sure they they're using the correct number, and that they all have an individual number. All of that looks to be correct.
I had read somewhere that if I were taking out races and putting in new ones, I could simply copy, paste, and edit one of the other race files to make my additional races. The template I used was Human. I haven't gone in and adjusted any of the languages or classes yet, so I'll see if that makes a difference at all as to whether or not I can get all of the races to show.
Ok, I looked at some FUSS code I had here, though it is not the newest, but I did notice a few things you might check. First, it does seem FUSS still hard codes RACE_VAMPIRE out of the races shown at create. If that is still in comm.c, I would either remove that part of the if statements or make sure RACE_VAMPIRE is set to something other then a number between 0 and 17 inclusive.
To make it clear, the race files should have race numbers from 0 to 17 and not have an empty name, or a name of 'unused'. You should be able to use showrace with no argument to get a list of the races that have been loaded, this might give a hint to the problem.
And one last thing, it was a little unclear in your first post if you understood this, the races classes field should be 0 to allow all classes (the classes field is a bitvector of the not allowed classes, not a number of a class).