>
> 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.