/* * Copyright (C) 1995-1997 Christopher D. Granz * * This header may not be removed. * * Refer to the file "License" included in this package for further * information and before using any of the following. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "sapphire.h" /* * Functions */ /* * Returns a file type number given a filename. */ int get_file_type( char *pFilename ) { if ( ( pFilename = strrchr( pFilename, '.' ) ) != NULL ) { int i; for ( i = 0; snFileTypeTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snFileTypeTable[i].pName, pFilename ) == TRUE ) return ( snFileTypeTable[i].iNumber ); } } return ( 0 ); } /* * Returns a help structure given a keyword. */ HELP_DATA *get_help( char *pKeyword ) { HELP_DATA *pHelp; for ( pHelp = pHelpList; pHelp != NULL; pHelp = pHelp->pNext ) { if ( multi_compare_2( pKeyword, pHelp->pKeywords ) == TRUE ) return ( pHelp ); } return ( NULL ); } /* * Returns an NPC index structure given a number. */ NPC_INDEX_DATA *get_npc_index( int iNumber ) { NPC_INDEX_DATA *pNPCIndex; for ( pNPCIndex = *( ppNPCIndexList + ( iNumber % iHashListSize ) ); pNPCIndex != NULL; pNPCIndex = pNPCIndex->pNext ) { if ( pNPCIndex->iNumber == iNumber ) return ( pNPCIndex ); } return ( NULL ); } /* * Returns an object index structure given a number. */ OBJ_INDEX_DATA *get_object_index( int iNumber ) { OBJ_INDEX_DATA *pObjIndex; for ( pObjIndex = *( ppObjIndexList + ( iNumber % iHashListSize ) ); pObjIndex != NULL; pObjIndex = pObjIndex->pNext ) { if ( pObjIndex->iNumber == iNumber ) return ( pObjIndex ); } return ( NULL ); } /* * Returns a room index structure given a number. */ ROOM_INDEX_DATA *get_room_index( int iNumber ) { ROOM_INDEX_DATA *pRoomIndex; for ( pRoomIndex = *( ppRoomIndexList + ( iNumber % iHashListSize ) ); pRoomIndex != NULL; pRoomIndex = pRoomIndex->pNext ) { if ( pRoomIndex->iNumber == iNumber ) return ( pRoomIndex ); } return ( NULL ); } /* * Returns a sex number given a string. */ int get_sex_number( char *pName ) { int i; for ( i = 0; snSexTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snSexTable[i].pName, pName ) == TRUE ) return ( snSexTable[i].iNumber ); } return ( 0 ); } /* * Returns a sex string given a number. */ char *get_sex_string( int iNumber ) { int i; for ( i = 0; snSexTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == snSexTable[i].iNumber ) return ( snSexTable[i].pName ); } return ( EMPTY_STRING ); } int get_hair_color_number( char *pName ) { int i; for ( i = 0; snHairColorTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snHairColorTable[i].pName, pName ) == TRUE ) return ( snHairColorTable[i].iNumber ); } return ( 0 ); } char *get_hair_color_string( int iNumber ) { int i; for ( i = 0; snHairColorTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == snHairColorTable[i].iNumber ) return ( snHairColorTable[i].pName ); } return ( EMPTY_STRING ); } int get_eye_color_number( char *pName ) { int i; for ( i = 0; snEyeColorTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snEyeColorTable[i].pName, pName ) == TRUE ) return ( snEyeColorTable[i].iNumber ); } return ( 0 ); } char *get_eye_color_string( int iNumber ) { int i; for ( i = 0; snEyeColorTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == snEyeColorTable[i].iNumber ) return ( snEyeColorTable[i].pName ); } return ( EMPTY_STRING ); } int get_race_number( char *pName ) { int i; for ( i = 0; rRaceTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( rRaceTable[i].pName, pName ) == TRUE ) return ( rRaceTable[i].iNumber ); } return ( 0 ); } char *get_race_string( int iNumber ) { int i; for ( i = 0; rRaceTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == rRaceTable[i].iNumber ) return ( rRaceTable[i].pName ); } return ( EMPTY_STRING ); } char *get_race_string_2( int iNumber ) { char *pOutput = EMPTY_STRING; int i; for ( i = 0; rRaceTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == rRaceTable[i].iNumber ) { sprintf( ( pOutput = new_buffer( ) ), "%s %s", rRaceTable[i].pConj, rRaceTable[i].pName ); break; } } return ( pOutput ); } int get_race_index( int iNumber ) { int i; for ( i = 0; rRaceTable[i].pName[0] != '\0'; i++ ) { if ( rRaceTable[i].iNumber == iNumber ) break; } return ( i ); } int get_position_number( char *pName ) { int i; for ( i = 0; snPositionTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snPositionTable[i].pName, pName ) == TRUE ) return ( snPositionTable[i].iNumber ); } return ( 0 ); } char *get_position_string( int iNumber ) { int i; for ( i = 0; snPositionTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == snPositionTable[i].iNumber ) return ( snPositionTable[i].pName ); } return ( EMPTY_STRING ); } int get_sector_number( char *pName ) { int i; for ( i = 0; snSectorTable[i].pName[0] != '\0'; i++ ) { if ( str_compare( snSectorTable[i].pName, pName ) == TRUE ) return ( snSectorTable[i].iNumber ); } return ( 0 ); } char *get_sector_string( int iNumber ) { int i; for ( i = 0; snSectorTable[i].pName[0] != '\0'; i++ ) { if ( iNumber == snSectorTable[i].iNumber ) return ( snSectorTable[i].pName ); } return ( EMPTY_STRING ); } /* * End of lookup.c */