Implemented faststrcmp, faststricmp, strcasecmp

This commit is contained in:
Sergeanur
2019-10-30 01:12:58 +02:00
parent c075b863d2
commit c202fc3b55
19 changed files with 101 additions and 53 deletions

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "patcher.h"
#include "General.h"
#include "ModelInfo.h"
#include "AnimManager.h"
#include "RpAnimBlend.h"
@ -38,7 +39,7 @@ CAnimBlendAssocGroup::GetAnimation(const char *name)
{
int i;
for(i = 0; i < numAssociations; i++)
if(strcmpi(assocList[i].hierarchy->name, name) == 0)
if(!CGeneral::faststricmp(assocList[i].hierarchy->name, name))
return &assocList[i];
return nil;
}
@ -64,7 +65,7 @@ CAnimBlendAssocGroup::CopyAnimation(const char *name)
return new CAnimBlendAssociation(*anim);
}
int
bool
strcmpIgnoringDigits(const char *s1, const char *s2)
{
char c1, c2;
@ -75,13 +76,13 @@ strcmpIgnoringDigits(const char *s1, const char *s2)
if(c1) s1++;
if(c2) s2++;
if(c1 == '\0' && c2 == '\0')
return 1;
if(islower(c1)) c1 = toupper(c1);
if(islower(c2)) c2 = toupper(c2);
if(isdigit(c1) && isdigit(c2))
return true;
if(__ascii_iswdigit(c1) && __ascii_iswdigit(c2))
continue;
c1 = __ascii_toupper(c1);
c2 = __ascii_toupper(c2);
if(c1 != c2)
return 0;
return false;
}
}

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "patcher.h"
#include "General.h"
#include "ModelInfo.h"
#include "ModelIndices.h"
#include "FileMgr.h"
@ -605,7 +606,7 @@ CAnimManager::GetAnimationBlock(const char *name)
int i;
for(i = 0; i < ms_numAnimBlocks; i++)
if(strcmpi(ms_aAnimBlocks[i].name, name) == 0)
if(strcasecmp(ms_aAnimBlocks[i].name, name) == 0)
return &ms_aAnimBlocks[i];
return nil;
}
@ -617,7 +618,7 @@ CAnimManager::GetAnimation(const char *name, CAnimBlock *animBlock)
CAnimBlendHierarchy *hier = &ms_aAnimations[animBlock->firstIndex];
for(i = 0; i < animBlock->numAnims; i++){
if(strcmpi(hier->name, name) == 0)
if(!CGeneral::faststricmp(hier->name, name))
return hier;
hier++;
}

View File

@ -1,5 +1,6 @@
#include "common.h"
#include "patcher.h"
#include "General.h"
#include "NodeName.h"
#include "VisibilityPlugins.h"
#include "AnimBlendClumpData.h"
@ -320,7 +321,7 @@ void
FrameFindCallBack(AnimBlendFrameData *frame, void *arg)
{
char *nodename = GetFrameNodeName(frame->frame);
if(strcmpi(nodename, (char*)arg) == 0)
if(!CGeneral::faststricmp(nodename, (char*)arg))
pFrameDataFound = frame;
}