/*----------------------------------------------------------------------------*- Function: Text_GetLinear Params: identifier[] - The string to find the text for. Language:languageID - The language to get the text for. Return: text[] Notes: Mainly a debug function. Searches through the entire array using normal strcmp and one by one searching methods. Can be around 10x slower than using the hashed binary search methods. Note: if the required string is the first in the array in which case this is marginally faster, but so fractionally faster and so rarely that it shouldn't be used at all. -*----------------------------------------------------------------------------*/ #if defined _DEBUG stock Text_GetTextLinear(identifier[], Language:languageID) { new ret[MAX_TEXT_ENTRY] = "*** Internal Error! No text or errors found"; for (new i = 0; i < MAX_TEXT; i++) { if (!strcmp(g_sNameTable[i][E_TEXT_POINTERS_NAME], identifier)) { new index = g_sNameTable[i][E_TEXT_POINTERS_POINTER][languageID]; if (index != TEXT_NO_TEXT) return g_sTextTable[languageID][index]; } } return ret; } #endif /*----------------------------------------------------------------------------*- Function: Text_PrintAll Params: - Return: - Notes: Debug function. -*----------------------------------------------------------------------------*/ #if defined _DEBUG Text_PrintAll() { for (new i = 0; i < MAX_TEXT; i++) { new yes = g_sNameTable[i][E_TEXT_POINTERS_NAME][0]; if (!yes) continue; new str[MAX_STRING]; format(str, sizeof (str), "%s (%d): ", g_sNameTable[i][E_TEXT_POINTERS_NAME], bernstein(g_sNameTable[i][E_TEXT_POINTERS_NAME])); for (new Language:j; j < MAX_LANGUAGES; j++) { format(str, sizeof (str), "%s%s, ", str, g_sNameTable[i][E_TEXT_POINTERS_POINTER][j] == TEXT_NO_POINTERS ? "NONE" : g_sTextTable[j][g_sNameTable[i][E_TEXT_POINTERS_POINTER][j]]); } print(str); } } #endif