\r
static int STR_PutStringInSomeList(stringList_t *list, int index, char *name);\r
static int STR_FindInSomeList(stringList_t *list, char *name);\r
+static int STR_FindInSomeListInsensitive(stringList_t *list, char *name);\r
static void DumpStrings(stringList_t *list, int lenadr, boolean quad, boolean crypt);\r
static void Encrypt(void *data, int key, int len);\r
\r
}\r
LanguageInfo[i]->list.stringCount = 0;\r
NumLanguages++;\r
+ if(NumLanguages > 1 && pc_EnforceHexen)\r
+ {\r
+ ERR_Error(ERR_HEXEN_COMPAT, YES);\r
+ }\r
}\r
return i;\r
}\r
StringLists[list] = MS_Alloc(sizeof(stringList_t), ERR_OUT_OF_MEMORY);\r
StringLists[list]->stringCount = 0;\r
NumStringLists++;\r
+ if(pc_EnforceHexen)\r
+ {\r
+ ERR_Error(ERR_HEXEN_COMPAT, YES);\r
+ }\r
}\r
return STR_FindInSomeList (StringLists[list], name);\r
}\r
\r
//==========================================================================\r
//\r
+// STR_FindInListInsensitive\r
+//\r
+//==========================================================================\r
+\r
+int STR_FindInListInsensitive(int list, char *name)\r
+{\r
+ if (StringLists[list] == NULL)\r
+ {\r
+ StringLists[list] = MS_Alloc(sizeof(stringList_t), ERR_OUT_OF_MEMORY);\r
+ StringLists[list]->stringCount = 0;\r
+ NumStringLists++;\r
+ if(pc_EnforceHexen)\r
+ {\r
+ ERR_Error(ERR_HEXEN_COMPAT, YES);\r
+ }\r
+ }\r
+ return STR_FindInSomeListInsensitive (StringLists[list], name);\r
+}\r
+\r
+//==========================================================================\r
+//\r
+// STR_FindInSomeListInsensitive\r
+//\r
+//==========================================================================\r
+\r
+static int STR_FindInSomeListInsensitive(stringList_t *list, char *name)\r
+{\r
+ int i;\r
+\r
+ for(i = 0; i < list->stringCount; i++)\r
+ {\r
+ if(strcasecmp(list->strings[i].name, name) == 0)\r
+ {\r
+ return i;\r
+ }\r
+ }\r
+ // Add to list\r
+ return STR_PutStringInSomeList(list, i, name);\r
+}\r
+\r
+//==========================================================================\r
+//\r
// STR_GetString\r
//\r
//==========================================================================\r
StringLists[list] = MS_Alloc(sizeof(stringList_t), ERR_OUT_OF_MEMORY);\r
StringLists[list]->stringCount = 0;\r
NumStringLists++;\r
+ if(pc_EnforceHexen)\r
+ {\r
+ ERR_Error(ERR_HEXEN_COMPAT, YES);\r
+ }\r
}\r
return STR_PutStringInSomeList(StringLists[list], StringLists[list]->stringCount, name);\r
}\r
void STR_WriteStrings(void)\r
{\r
int i;\r
- U_LONG pad;\r
+ U_INT pad;\r
\r
MS_Message(MSG_DEBUG, "---- STR_WriteStrings ----\n");\r
for(i = 0; i < LanguageInfo[0]->list.stringCount; i++)\r
int i;\r
\r
MS_Message(MSG_DEBUG, "---- STR_WriteList ----\n");\r
- PC_AppendLong((U_LONG)LanguageInfo[0]->list.stringCount);\r
+ PC_AppendInt((U_INT)LanguageInfo[0]->list.stringCount);\r
for(i = 0; i < LanguageInfo[0]->list.stringCount; i++)\r
{\r
- PC_AppendLong((U_LONG)LanguageInfo[0]->list.strings[i].address);\r
+ PC_AppendInt((U_INT)LanguageInfo[0]->list.strings[i].address);\r
}\r
}\r
\r
MS_Message(MSG_DEBUG, "---- STR_WriteChunk %d ----\n", language);\r
PC_Append(encrypt ? "STRE" : "STRL", 4);\r
lenadr = pc_Address;\r
- PC_SkipLong();\r
+ PC_SkipInt();\r
PC_Append(&lang->name, 4);\r
- PC_AppendLong(lang->list.stringCount);\r
- PC_AppendLong(0); // Used in-game for stringing lists together\r
+ PC_AppendInt(lang->list.stringCount);\r
+ PC_AppendInt(0); // Used in-game for stringing lists together\r
\r
DumpStrings (&lang->list, lenadr, NO, encrypt);\r
}\r
{\r
MS_Message(MSG_DEBUG, "---- STR_WriteListChunk %d %c%c%c%c----\n", list,\r
id&255, (id>>8)&255, (id>>16)&255, (id>>24)&255);\r
- PC_AppendLong((U_LONG)id);\r
+ PC_AppendInt((U_INT)id);\r
lenadr = pc_Address;\r
- PC_SkipLong();\r
- PC_AppendLong(StringLists[list]->stringCount);\r
+ PC_SkipInt();\r
+ PC_AppendInt(StringLists[list]->stringCount);\r
if (quad && pc_Address%8 != 0)\r
{ // If writing quadword indices, align the indices to an\r
// 8-byte boundary.\r
- U_LONG pad = 0;\r
+ U_INT pad = 0;\r
PC_Append (&pad, 4);\r
}\r
DumpStrings(StringLists[list], lenadr, quad, NO);\r
{\r
if (list->strings[i].name != NULL)\r
{\r
- PC_AppendLong((U_LONG)ofs);\r
+ PC_AppendInt((U_INT)ofs);\r
ofs += strlen(list->strings[i].name) + 1;\r
}\r
else\r
{\r
- PC_AppendLong(0);\r
+ PC_AppendInt(0);\r
}\r
if (quad)\r
{\r
- PC_AppendLong(0);\r
+ PC_AppendInt(0);\r
}\r
}\r
\r
}\r
if(pc_Address%4 != 0)\r
{ // Need to align\r
- U_LONG pad = 0;\r
+ U_INT pad = 0;\r
PC_Append((void *)&pad, 4-(pc_Address%4));\r
}\r
\r
- PC_WriteLong(pc_Address - lenadr - 4, lenadr);\r
+ PC_WriteInt(pc_Address - lenadr - 4, lenadr);\r
}\r
\r
static void Encrypt(void *data, int key, int len)\r