/// <summary> /// A utility function to return the proper model file data ID based on filters. /// /// ModelFileData.db2 is keyed on file data id, and maps it to a model ID. /// ComponentModelFileData.db2 is keyed on file data id as well, and provides filtering mechanism for the client to be /// able to select the proper model based off gender, race and class. /// </summary> /// /// <remarks> /// Quoting Simca: /// /// ModelFileDataID /// * Used internally to reference model files in almost all cases (spell visuals seem /// to go directly to FileDataID in a few places because being consistent is hard) /// * Used to bunch many different FileDataIDs together who have the same purpose but /// slightly different characteristics.For example, a helmet item will reference 1 /// ModelFileDataID, which in turn will resolve into a different FileDataID for /// every race/gender combination. The characteristics supported in this grouping /// process are: RaceID, SexID, SpecID, and 'Order' (0 = left shoulder, 1 = right /// shoulder, -1 = everything else). /// * Implemented by ComponentModelFileData.db2 (details the characteristics) and /// ModelFileData.db2(groups the FileDataIDs by ModelFileDataID). /// </remarks> /// <param name="modelID"></param> /// <param name="gender">Gender of the creature.</param> /// <param name="classID">Class of the creature</param> /// <param name="raceID">Race of the creature.</param> /// <param name="order">Texture order; 0 for the left shoulder, 1 for the right one, and -1 otherwise.</param> /// <returns></returns>