SW: Fix questionable function pointer typecasts

Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7502 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
hendricks266 2019-04-08 06:25:51 +00:00 committed by Christoph Oelckers
parent d842dc761d
commit c456c414da
2 changed files with 13 additions and 13 deletions

View file

@ -432,26 +432,23 @@ BREAK_INFO SpriteBreakInfo[] =
// SORT & SEARCH SUPPORT
//////////////////////////////////////////////
int CompareBreakInfo(BREAK_INFOp break_info1, BREAK_INFOp break_info2)
static int CompareBreakInfo(void const * a, void const * b)
{
auto break_info1 = (BREAK_INFO const *)a;
auto break_info2 = (BREAK_INFO const *)b;
// will return a number less than 0 if break_info1 < break_info2
return break_info1->picnum - break_info2->picnum;
}
int CompareSearchBreakInfo(short *picnum, BREAK_INFOp break_info)
{
// will return a number less than 0 if picnum < break_info->picnum
return *picnum - break_info->picnum;
}
BREAK_INFOp FindWallBreakInfo(short picnum)
{
return bsearch(&picnum, &WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), (int(*)(const void *,const void *))CompareSearchBreakInfo);
return (BREAK_INFOp)bsearch(&picnum, &WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), CompareBreakInfo);
}
BREAK_INFOp FindSpriteBreakInfo(short picnum)
{
return bsearch(&picnum, &SpriteBreakInfo, SIZ(SpriteBreakInfo), sizeof(BREAK_INFO), (int(*)(const void *,const void *))CompareSearchBreakInfo);
return (BREAK_INFOp)bsearch(&picnum, &SpriteBreakInfo, SIZ(SpriteBreakInfo), sizeof(BREAK_INFO), CompareBreakInfo);
}
//////////////////////////////////////////////
@ -460,8 +457,8 @@ BREAK_INFOp FindSpriteBreakInfo(short picnum)
void SortBreakInfo(void)
{
qsort(&SpriteBreakInfo, SIZ(SpriteBreakInfo), sizeof(BREAK_INFO), (int(*)(const void *,const void *))CompareBreakInfo);
qsort(&WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), (int(*)(const void *,const void *))CompareBreakInfo);
qsort(&SpriteBreakInfo, SIZ(SpriteBreakInfo), sizeof(BREAK_INFO), CompareBreakInfo);
qsort(&WallBreakInfo, SIZ(WallBreakInfo), sizeof(BREAK_INFO), CompareBreakInfo);
}
BREAK_INFOp SetupWallForBreak(WALLp wallp)

View file

@ -1166,8 +1166,11 @@ GetDeltaAngle(short ang1, short ang2)
TARGET_SORT TargetSort[MAX_TARGET_SORT];
unsigned TargetSortCount;
int CompareTarget(TARGET_SORTp tgt1, TARGET_SORTp tgt2)
static int CompareTarget(void const * a, void const * b)
{
auto tgt1 = (TARGET_SORT const *)a;
auto tgt2 = (TARGET_SORT const *)b;
// will return a number less than 0 if tgt1 < tgt2
return tgt2->weight - tgt1->weight;
}
@ -1294,7 +1297,7 @@ DoPickTarget(SPRITEp sp, uint32_t max_delta_ang, SWBOOL skip_targets)
}
if (TargetSortCount > 1)
qsort(&TargetSort,TargetSortCount,sizeof(TARGET_SORT),(int(*)(const void *,const void *))CompareTarget);
qsort(&TargetSort, TargetSortCount, sizeof(TARGET_SORT), CompareTarget);
return TargetSort[0].sprite_num;
}