> 
> I wish to revise my statement.
> 
> After debugging the Hash interface, I was able to cut only 2 
> seconds off my boot time. It is 16 seconds.  Apparently 4 of 
> them was from the hash beign removed for a bug testing.
> 
> So Jason, how did you get rid of the Hashing for arrays?

It was a large task, but well worth it.
I created some globals:

extern ROOM_INDEX_DATA *pRoomArray[MAX_ROOMS];
ROOM_INDEX_DATA *pRoomArray[MAX_ROOMS];

extern MOB_INDEX_DATA *pMobArray[MAX_ROOMS];
MOB_INDEX_DATA *pMobArray[MAX_ROOMS];

extern OBJ_INDEX_DATA *pObjArray[MAX_ROOMS];
OBJ_INDEX_DATA *pObjArray[MAX_ROOMS];

extern PROG_CODE *pMprogArray[MAX_MOB_PROGS];
PROG_CODE *pMprogArray[MAX_MOB_PROGS];

extern PROG_CODE *pOprogArray[MAX_MOB_PROGS];
PROG_CODE *pOprogArray[MAX_MOB_PROGS];

extern PROG_CODE *pRprogArray[MAX_MOB_PROGS];
PROG_CODE *pRprogArray[MAX_MOB_PROGS];

In all of the loading functions I've added code like this:
(in load_rooms)
pRoomArray[vnum]=pRoomIndex;

taking out this stuff:
        iHash                   = vnum % MAX_KEY_HASH;
        pRoomIndex->next        = room_index_hash[iHash];
        room_index_hash[iHash]  = pRoomIndex;

Then change get_room_index to something like this:

ROOM_INDEX_DATA *get_room_index( int vnum )
{
    return pRoomArray[vnum];
}

(or make it a macro, whatever)

I did this with room, becuase I had so many.
Then I went to mobiles, objects, etc.


Reply via email to