diff options
author | erorcun <erayorcunus@gmail.com> | 2019-11-09 18:06:20 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-09 18:06:20 +0300 |
commit | 0df15bb73dbdf352f92bc522c7b5c102f1e33ba5 (patch) | |
tree | 73c9bf00f83b91d7862f28296640860fa16291ab /src/animation | |
parent | f9ab910e26ee8fda103bc03acd25aae2c329fa95 (diff) | |
parent | c202fc3b550b8fc569f510e2002241eec399c18d (diff) |
Merge pull request #263 from Sergeanur/strcmp
Implemented faststrcmp, faststricmp, strcasecmp
Diffstat (limited to 'src/animation')
-rw-r--r-- | src/animation/AnimBlendAssocGroup.cpp | 15 | ||||
-rw-r--r-- | src/animation/AnimManager.cpp | 5 | ||||
-rw-r--r-- | src/animation/RpAnimBlend.cpp | 3 |
3 files changed, 13 insertions, 10 deletions
diff --git a/src/animation/AnimBlendAssocGroup.cpp b/src/animation/AnimBlendAssocGroup.cpp index 72c90233..ecdebd29 100644 --- a/src/animation/AnimBlendAssocGroup.cpp +++ b/src/animation/AnimBlendAssocGroup.cpp @@ -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; } } diff --git a/src/animation/AnimManager.cpp b/src/animation/AnimManager.cpp index 444ae93d..e5721bdf 100644 --- a/src/animation/AnimManager.cpp +++ b/src/animation/AnimManager.cpp @@ -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++; } diff --git a/src/animation/RpAnimBlend.cpp b/src/animation/RpAnimBlend.cpp index 17394743..8108619e 100644 --- a/src/animation/RpAnimBlend.cpp +++ b/src/animation/RpAnimBlend.cpp @@ -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; } |