G'Day all.
I'm trying to find the bug in my code here.
this is what i have ->
<interpreter.c, CON_MENU>
....
const sh_int r_mortal_start_room [NUM_HOMETOWNS][NUM_CLASSES];
...
/* If char was saved with NOWHERE, or real_room above failed... */
if (load_room == NOWHERE) {
if (GET_LEVEL(d->character) >= LVL_IMMORT) {
load_room = r_immort_start_room;
}
else {
// Hometown / Class Guild updated now. - Jus **** HERE *****
load_room =
r_mortal_start_room[GET_HOME(d->character)][GET_CLASS(d->character)];
}
}
now, i believe that load_room should be 1000 (lets say if that's where
everyone will load into room vnum 1000 for this example).
well, load_room != 1000 or whatever. it's somethinng totally different.
now this is my 2d array.
<in config.c>
const sh_int mortal_start_room[NUM_HOMETOWNS][NUM_CLASSES] = {
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000},
{1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000,
1000, 1000}
};
<in structs.h>
...
#define NUM_HOMETOWNS 15
#define NUM_CLASSES 14
so i can't see why it doesn't work. Oh. And i've printed out the values of
GET_HOME and GET_CLASS, and they seemed to be fine (the number of the
hometown city AND the players class).
well, the only way i can think of a problem happening is in here ...
<in db.c>
...
/// make sure the start rooms exist & resolve their vnums to rnums
// This over wrote the old check_start_rooms, ***** taken from the snippets
page.*****
void check_start_rooms(void)
{
int city_count, room_count;
extern sh_int mortal_start_room[NUM_STARTROOMS][NUM_CLASSES];
extern sh_int immort_start_room;
extern sh_int frozen_start_room;
for (city_count = 0; city_count <= NUM_HOMETOWNS; city_count++){
for (room_count = 0; room_count <= NUM_CLASSES; room_count++) {
if ((r_mortal_start_room[city_count][room_count] =
real_room(mortal_start_room[city_count][room_count])) < 0) {
if (city_count > 1)
r_mortal_start_room[city_count][room_count] =
real_room(mortal_start_room[0][0]);
else {
log("SYSERR: Mortal start room does not exist. Change in
config.c.");
exit(1);
}
}
}
}
if ((r_immort_start_room = real_room(immort_start_room)) < 0) {
if (!mini_mud)
log("SYSERR: Warning: Immort start room does not exist. Change in
config.c.");
r_immort_start_room = r_mortal_start_room[0][0];
}
if ((r_frozen_start_room = real_room(frozen_start_room)) < 0) {
if (!mini_mud)
log("SYSERR: Warning: Frozen start room does not exist. Change in
config.c.");
r_frozen_start_room = r_mortal_start_room[0][0];
}
}
any idea's peoples? Thanks heaps in advance ...
jussy
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://cspo.queensu.ca/~fletcher/Circle/list_faq.html |
+-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST