Fix use of strncmp

This commit is contained in:
Sergeanur 2020-12-25 15:18:48 +02:00
parent dc72729a40
commit e00b8a93bf
10 changed files with 80 additions and 66 deletions

View file

@ -70,7 +70,7 @@ CFileLoader::LoadLevel(const char *filename)
if(*line == '#')
continue;
if(strncmp(line, "EXIT", 9) == 0) // BUG: 9?
if(strncmp(line, "EXIT", 4) == 0)
break;
if(strncmp(line, "IMAGEPATH", 9) == 0){
@ -172,7 +172,7 @@ CFileLoader::LoadTexDictionary(const char *filename)
struct ColHeader
{
char ident[4];
uint32 ident;
uint32 size;
};
@ -191,7 +191,7 @@ CFileLoader::LoadCollisionFile(const char *filename, uint8 colSlot)
assert(fd > 0);
while(CFileMgr::Read(fd, (char*)&header, sizeof(header))){
assert(strncmp(header.ident, "COLL", 4) == 0);
assert(header.ident == 'LLOC');
CFileMgr::Read(fd, (char*)work_buff, header.size);
memcpy(modelname, work_buff, 24);
@ -228,7 +228,7 @@ CFileLoader::LoadCollisionFileFirstTime(uint8 *buffer, uint32 size, uint8 colSlo
while(size > 8){
header = (ColHeader*)buffer;
modelsize = header->size;
if(strncmp(header->ident, "COLL", 4) != 0)
if(header->ident == 'LLOC')
return size-8 < CDSTREAM_SECTOR_SIZE;
memcpy(modelname, buffer+8, 24);
memcpy(work_buff, buffer+32, modelsize-24);
@ -262,7 +262,7 @@ CFileLoader::LoadCollisionFile(uint8 *buffer, uint32 size, uint8 colSlot)
while(size > 8){
header = (ColHeader*)buffer;
modelsize = header->size;
if(strncmp(header->ident, "COLL", 4) != 0)
if(header->ident == 'LLOC')
return size-8 < CDSTREAM_SECTOR_SIZE;
memcpy(modelname, buffer+8, 24);
memcpy(work_buff, buffer+32, modelsize-24);
@ -586,6 +586,9 @@ CFileLoader::AddTexDictionaries(RwTexDictionary *dst, RwTexDictionary *src)
RwTexDictionaryForAllTextures(src, MoveTexturesCB, dst);
}
#define isLine3(l, a, b, c) ((l[0] == a) && (l[1] == b) && (l[2] == c))
#define isLine4(l, a, b, c, d) ((l[0] == a) && (l[1] == b) && (l[2] == c) && (l[3] == d))
void
CFileLoader::LoadObjectTypes(const char *filename)
{
@ -621,15 +624,15 @@ CFileLoader::LoadObjectTypes(const char *filename)
continue;
if(section == NONE){
if(strncmp(line, "objs", 4) == 0) section = OBJS;
else if(strncmp(line, "tobj", 4) == 0) section = TOBJ;
else if(strncmp(line, "weap", 4) == 0) section = WEAP;
else if(strncmp(line, "hier", 4) == 0) section = HIER;
else if(strncmp(line, "cars", 4) == 0) section = CARS;
else if(strncmp(line, "peds", 4) == 0) section = PEDS;
else if(strncmp(line, "path", 4) == 0) section = PATH;
else if(strncmp(line, "2dfx", 4) == 0) section = TWODFX;
}else if(strncmp(line, "end", 3) == 0){
if(isLine4(line, 'o','b','j','s')) section = OBJS;
else if(isLine4(line, 't','o','b','j')) section = TOBJ;
else if(isLine4(line, 'w','e','a','p')) section = WEAP;
else if(isLine4(line, 'h','i','e','r')) section = HIER;
else if(isLine4(line, 'c','a','r','s')) section = CARS;
else if(isLine4(line, 'p','e','d','s')) section = PEDS;
else if(isLine4(line, 'p','a','t','h')) section = PATH;
else if(isLine4(line, '2','d','f','x')) section = TWODFX;
}else if(isLine3(line, 'e','n','d')){
section = NONE;
}else switch(section){
case OBJS:
@ -862,21 +865,21 @@ CFileLoader::LoadVehicleObject(const char *line)
mi->m_level = level;
mi->m_compRules = comprules;
if(strncmp(type, "car", 4) == 0){
if(strcmp(type, "car") == 0){
mi->m_wheelId = misc;
mi->m_wheelScale = wheelScale;
mi->m_vehicleType = VEHICLE_TYPE_CAR;
}else if(strncmp(type, "boat", 5) == 0){
}else if(strcmp(type, "boat") == 0){
mi->m_vehicleType = VEHICLE_TYPE_BOAT;
}else if(strncmp(type, "train", 6) == 0){
}else if(strcmp(type, "train") == 0){
mi->m_vehicleType = VEHICLE_TYPE_TRAIN;
}else if(strncmp(type, "heli", 5) == 0){
}else if(strcmp(type, "heli") == 0){
mi->m_vehicleType = VEHICLE_TYPE_HELI;
}else if(strncmp(type, "plane", 6) == 0){
}else if(strcmp(type, "plane") == 0){
mi->m_planeLodId = misc;
mi->m_wheelScale = 1.0f;
mi->m_vehicleType = VEHICLE_TYPE_PLANE;
}else if(strncmp(type, "bike", 5) == 0){
}else if(strcmp(type, "bike") == 0){
mi->m_bikeSteerAngle = misc;
mi->m_wheelScale = wheelScale;
mi->m_vehicleType = VEHICLE_TYPE_BIKE;
@ -885,29 +888,29 @@ CFileLoader::LoadVehicleObject(const char *line)
mi->m_handlingId = mod_HandlingManager.GetHandlingId(handlingId);
if(strncmp(vehclass, "normal", 7) == 0)
if(strcmp(vehclass, "normal") == 0)
mi->m_vehicleClass = CCarCtrl::NORMAL;
else if(strncmp(vehclass, "poorfamily", 11) == 0)
else if(strcmp(vehclass, "poorfamily") == 0)
mi->m_vehicleClass = CCarCtrl::POOR;
else if(strncmp(vehclass, "richfamily", 11) == 0)
else if(strcmp(vehclass, "richfamily") == 0)
mi->m_vehicleClass = CCarCtrl::RICH;
else if(strncmp(vehclass, "executive", 10) == 0)
else if(strcmp(vehclass, "executive") == 0)
mi->m_vehicleClass = CCarCtrl::EXEC;
else if(strncmp(vehclass, "worker", 7) == 0)
else if(strcmp(vehclass, "worker") == 0)
mi->m_vehicleClass = CCarCtrl::WORKER;
else if(strncmp(vehclass, "big", 4) == 0)
else if(strcmp(vehclass, "big") == 0)
mi->m_vehicleClass = CCarCtrl::BIG;
else if(strncmp(vehclass, "taxi", 5) == 0)
else if(strcmp(vehclass, "taxi") == 0)
mi->m_vehicleClass = CCarCtrl::TAXI;
else if(strncmp(vehclass, "moped", 6) == 0)
else if(strcmp(vehclass, "moped") == 0)
mi->m_vehicleClass = CCarCtrl::MOPED;
else if(strncmp(vehclass, "motorbike", 10) == 0)
else if(strcmp(vehclass, "motorbike") == 0)
mi->m_vehicleClass = CCarCtrl::MOTORBIKE;
else if(strncmp(vehclass, "leisureboat", 12) == 0)
else if(strcmp(vehclass, "leisureboat") == 0)
mi->m_vehicleClass = CCarCtrl::LEISUREBOAT;
else if(strncmp(vehclass, "workerboat", 11) == 0)
else if(strcmp(vehclass, "workerboat") == 0)
mi->m_vehicleClass = CCarCtrl::WORKERBOAT;
else if(strncmp(vehclass, "ignore", 11) == 0){
else if(strcmp(vehclass, "ignore") == 0) {
mi->m_vehicleClass = -1;
return;
}
@ -1122,13 +1125,13 @@ CFileLoader::LoadScene(const char *filename)
continue;
if(section == NONE){
if(strncmp(line, "inst", 4) == 0) section = INST;
else if(strncmp(line, "zone", 4) == 0) section = ZONE;
else if(strncmp(line, "cull", 4) == 0) section = CULL;
else if(strncmp(line, "pick", 4) == 0) section = PICK;
else if(strncmp(line, "path", 4) == 0) section = PATH;
else if(strncmp(line, "occl", 4) == 0) section = OCCL;
}else if(strncmp(line, "end", 3) == 0){
if(isLine4(line, 'i','n','s','t')) section = INST;
else if(isLine4(line, 'z','o','n','e')) section = ZONE;
else if(isLine4(line, 'c','u','l','l')) section = CULL;
else if(isLine4(line, 'p','i','c','k')) section = PICK;
else if(isLine4(line, 'p','a','t','h')) section = PATH;
else if(isLine4(line, 'o','c','c','l')) section = OCCL;
}else if(isLine3(line, 'e','n','d')){
section = NONE;
}else switch(section){
case INST:
@ -1326,11 +1329,11 @@ CFileLoader::ReloadPaths(const char *filename)
continue;
if (section == NONE) {
if (strncmp(line, "path", 4) == 0) {
if (isLine4(line, 'p','a','t','h')) {
section = PATH;
ThePaths.AllocatePathFindInfoMem(4500);
}
} else if (strncmp(line, "end", 3) == 0) {
} else if (isLine3(line, 'e','n','d')) {
section = NONE;
} else {
switch (section) {
@ -1381,10 +1384,10 @@ CFileLoader::ReloadObjectTypes(const char *filename)
continue;
if (section == NONE) {
if (strncmp(line, "objs", 4) == 0) section = OBJS;
else if (strncmp(line, "tobj", 4) == 0) section = TOBJ;
else if (strncmp(line, "2dfx", 4) == 0) section = TWODFX;
} else if (strncmp(line, "end", 3) == 0) {
if (isLine4(line, 'o','b','j','s')) section = OBJS;
else if (isLine4(line, 't','o','b','j')) section = TOBJ;
else if (isLine4(line, '2','d','f','x')) section = TWODFX;
} else if (isLine3(line, 'e','n','d')) {
section = NONE;
} else {
switch (section) {
@ -1457,7 +1460,7 @@ CFileLoader::ReLoadScene(const char *filename)
if (*line == '#')
continue;
if (strncmp(line, "EXIT", 9) == 0) // BUG: 9?
if (strncmp(line, "EXIT", 4) == 0)
break;
if (strncmp(line, "IDE", 3) == 0) {