diff --git a/code/botlib/be_aas_bspq3.c b/code/botlib/be_aas_bspq3.c index 0fbb734..a6e76b3 100644 --- a/code/botlib/be_aas_bspq3.c +++ b/code/botlib/be_aas_bspq3.c @@ -190,7 +190,7 @@ qboolean AAS_EntityCollision(int entnum, //=========================================================================== qboolean AAS_inPVS(vec3_t p1, vec3_t p2) { - return botimport.inPVS(p1, p2); + return (qboolean) botimport.inPVS(p1, p2); } //end of the function AAS_InPVS //=========================================================================== // returns true if in Potentially Visible Set diff --git a/code/botlib/be_aas_entity.c b/code/botlib/be_aas_entity.c index e11356b..be09029 100644 --- a/code/botlib/be_aas_entity.c +++ b/code/botlib/be_aas_entity.c @@ -390,9 +390,9 @@ int AAS_NearestEntity(vec3_t origin, int modelindex) ent = &aasworld.entities[i]; if (ent->i.modelindex != modelindex) continue; VectorSubtract(ent->i.origin, origin, dir); - if (abs(dir[0]) < 40) + if (fabs(dir[0]) < 40) { - if (abs(dir[1]) < 40) + if (fabs(dir[1]) < 40) { dist = VectorLength(dir); if (dist < bestdist) diff --git a/code/botlib/be_aas_move.c b/code/botlib/be_aas_move.c index 3433153..f9babde 100644 --- a/code/botlib/be_aas_move.c +++ b/code/botlib/be_aas_move.c @@ -168,7 +168,7 @@ int AAS_AgainstLadder(vec3_t origin) //get the plane the face is in plane = &aasworld.planes[face->planenum ^ side]; //if the origin is pretty close to the plane - if (abs(DotProduct(plane->normal, origin) - plane->dist) < 3) + if (fabs(DotProduct(plane->normal, origin) - plane->dist) < 3) { if (AAS_PointInsideFace(abs(facenum), origin, 0.1f)) return qtrue; } //end if diff --git a/code/botlib/be_aas_reach.c b/code/botlib/be_aas_reach.c index 4b69d28..223421d 100644 --- a/code/botlib/be_aas_reach.c +++ b/code/botlib/be_aas_reach.c @@ -592,7 +592,7 @@ int AAS_FallDamageDistance(void) { float maxzvelocity, gravity, t; - maxzvelocity = sqrt(30 * 10000); + maxzvelocity = sqrt(30.f * 10000.f); gravity = aassettings.phys_gravity; t = maxzvelocity / gravity; return 0.5 * gravity * t * t; @@ -2478,8 +2478,8 @@ int AAS_Reachability_Ladder(int area1num, int area2num) VectorMA(area1point, -32, dir, area1point); VectorMA(area2point, 32, dir, area2point); // - ladderface1vertical = abs(DotProduct(plane1->normal, up)) < 0.1; - ladderface2vertical = abs(DotProduct(plane2->normal, up)) < 0.1; + ladderface1vertical = fabs(DotProduct(plane1->normal, up)) < 0.1; + ladderface2vertical = fabs(DotProduct(plane2->normal, up)) < 0.1; //there's only reachability between vertical ladder faces if (!ladderface1vertical && !ladderface2vertical) return qfalse; //if both vertical ladder faces @@ -2487,7 +2487,7 @@ int AAS_Reachability_Ladder(int area1num, int area2num) //and the ladder faces do not make a sharp corner && DotProduct(plane1->normal, plane2->normal) > 0.7 //and the shared edge is not too vertical - && abs(DotProduct(sharededgevec, up)) < 0.7) + && fabs(DotProduct(sharededgevec, up)) < 0.7) { //create a new reachability link lreach = AAS_AllocReachability(); @@ -2612,7 +2612,7 @@ int AAS_Reachability_Ladder(int area1num, int area2num) if (face2->faceflags & FACE_LADDER) { plane2 = &aasworld.planes[face2->planenum]; - if (abs(DotProduct(plane2->normal, up)) < 0.1) break; + if (fabs(DotProduct(plane2->normal, up)) < 0.1) break; } //end if } //end for //if from another area without vertical ladder faces diff --git a/code/botlib/be_aas_sample.c b/code/botlib/be_aas_sample.c index 68806eb..16caccc 100644 --- a/code/botlib/be_aas_sample.c +++ b/code/botlib/be_aas_sample.c @@ -606,34 +606,8 @@ aas_trace_t AAS_TraceClientBBox(vec3_t start, vec3_t end, int presencetype, //the current node plane plane = &aasworld.planes[aasnode->planenum]; - switch(plane->type) - {/*FIXME: wtf doesn't this work? obviously the axial node planes aren't always facing positive!!! - //check for axial planes - case PLANE_X: - { - front = cur_start[0] - plane->dist; - back = cur_end[0] - plane->dist; - break; - } //end case - case PLANE_Y: - { - front = cur_start[1] - plane->dist; - back = cur_end[1] - plane->dist; - break; - } //end case - case PLANE_Z: - { - front = cur_start[2] - plane->dist; - back = cur_end[2] - plane->dist; - break; - } //end case*/ - default: //gee it's not an axial plane - { - front = DotProduct(cur_start, plane->normal) - plane->dist; - back = DotProduct(cur_end, plane->normal) - plane->dist; - break; - } //end default - } //end switch + front = DotProduct(cur_start, plane->normal) - plane->dist; + back = DotProduct(cur_end, plane->normal) - plane->dist; // bk010221 - old location of FPE hack and divide by zero expression //if the whole to be traced line is totally at the front of this node //only go down the tree with the front child @@ -797,34 +771,8 @@ int AAS_TraceAreas(vec3_t start, vec3_t end, int *areas, vec3_t *points, int max //the current node plane plane = &aasworld.planes[aasnode->planenum]; - switch(plane->type) - {/*FIXME: wtf doesn't this work? obviously the node planes aren't always facing positive!!! - //check for axial planes - case PLANE_X: - { - front = cur_start[0] - plane->dist; - back = cur_end[0] - plane->dist; - break; - } //end case - case PLANE_Y: - { - front = cur_start[1] - plane->dist; - back = cur_end[1] - plane->dist; - break; - } //end case - case PLANE_Z: - { - front = cur_start[2] - plane->dist; - back = cur_end[2] - plane->dist; - break; - } //end case*/ - default: //gee it's not an axial plane - { - front = DotProduct(cur_start, plane->normal) - plane->dist; - back = DotProduct(cur_end, plane->normal) - plane->dist; - break; - } //end default - } //end switch + front = DotProduct(cur_start, plane->normal) - plane->dist; + back = DotProduct(cur_end, plane->normal) - plane->dist; //if the whole to be traced line is totally at the front of this node //only go down the tree with the front child diff --git a/code/botlib/be_ai_char.c b/code/botlib/be_ai_char.c index ddbbeba..a874a3d 100644 --- a/code/botlib/be_ai_char.c +++ b/code/botlib/be_ai_char.c @@ -302,7 +302,7 @@ bot_character_t *BotLoadCharacterFromFile(char *charfile, int skill) else if (token.type == TT_STRING) { StripDoubleQuotes(token.string); - ch->c[index].value.string = GetMemory((int)strlen(token.string)+1); + ch->c[index].value.string = (char*)GetMemory((int)strlen(token.string)+1); strcpy(ch->c[index].value.string, token.string); ch->c[index].type = CT_STRING; } //end else if diff --git a/code/botlib/be_ai_chat.c b/code/botlib/be_ai_chat.c index 2844f11..ec735b3 100644 --- a/code/botlib/be_ai_chat.c +++ b/code/botlib/be_ai_chat.c @@ -1552,7 +1552,7 @@ bot_stringlist_t *BotCheckChatMessageIntegrety(char *message, bot_stringlist_t * if (!BotFindStringInList(stringlist, temp)) { Log_Write("%s = {\"%s\"} //MISSING RANDOM\r\n", temp, temp); - s = GetClearedMemory(sizeof(bot_stringlist_t) + (int)strlen(temp) + 1); + s = (bot_stringlist_t*) GetClearedMemory(sizeof(bot_stringlist_t) + (int)strlen(temp) + 1); s->string = (char *) s + sizeof(bot_stringlist_t); strcpy(s->string, temp); s->next = stringlist; @@ -1855,7 +1855,7 @@ bot_replychat_t *BotLoadReplyChat(char *filename) return NULL; } //end if // - replychat = GetClearedHunkMemory(sizeof(bot_replychat_t)); + replychat = (bot_replychat_t*) GetClearedHunkMemory(sizeof(bot_replychat_t)); replychat->keys = NULL; replychat->next = replychatlist; replychatlist = replychat; @@ -2241,7 +2241,7 @@ int BotLoadChatFile(int chatstate, char *chatfile, char *chatname) } //end if if (!LibVarGetValue("bot_reloadcharacters")) { - ichatdata[avail] = GetClearedMemory( sizeof(bot_ichatdata_t) ); + ichatdata[avail] = (bot_ichatdata_t*) GetClearedMemory( sizeof(bot_ichatdata_t) ); ichatdata[avail]->chat = cs->chat; Q_strncpyz( ichatdata[avail]->chatname, chatname, sizeof(ichatdata[avail]->chatname) ); Q_strncpyz( ichatdata[avail]->filename, chatfile, sizeof(ichatdata[avail]->filename) ); @@ -2900,7 +2900,7 @@ int BotAllocChatState(void) { if (!botchatstates[i]) { - botchatstates[i] = GetClearedMemory(sizeof(bot_chatstate_t)); + botchatstates[i] = (bot_chatstate_t*) GetClearedMemory(sizeof(bot_chatstate_t)); return i; } //end if } //end for diff --git a/code/botlib/be_ai_goal.c b/code/botlib/be_ai_goal.c index 5caaec2..562955b 100644 --- a/code/botlib/be_ai_goal.c +++ b/code/botlib/be_ai_goal.c @@ -1736,7 +1736,7 @@ int BotAllocGoalState(int client) { if (!botgoalstates[i]) { - botgoalstates[i] = GetClearedMemory(sizeof(bot_goalstate_t)); + botgoalstates[i] = (bot_goalstate_t*) GetClearedMemory(sizeof(bot_goalstate_t)); botgoalstates[i]->client = client; return i; } //end if diff --git a/code/botlib/be_ai_move.c b/code/botlib/be_ai_move.c index 1f3b8ee..965e50c 100644 --- a/code/botlib/be_ai_move.c +++ b/code/botlib/be_ai_move.c @@ -132,7 +132,7 @@ int BotAllocMoveState(void) { if (!botmovestates[i]) { - botmovestates[i] = GetClearedMemory(sizeof(bot_movestate_t)); + botmovestates[i] = (bot_movestate_t*) GetClearedMemory(sizeof(bot_movestate_t)); return i; } //end if } //end for @@ -2093,7 +2093,7 @@ bot_moveresult_t BotTravel_Elevator(bot_movestate_t *ms, aas_reachability_t *rea botimport.Print(PRT_MESSAGE, "bot on elevator\n"); #endif //DEBUG_ELEVATOR //if vertically not too far from the end point - if (abs(ms->origin[2] - reach->end[2]) < sv_maxbarrier->value) + if (fabs(ms->origin[2] - reach->end[2]) < sv_maxbarrier->value) { #ifdef DEBUG_ELEVATOR botimport.Print(PRT_MESSAGE, "bot moving to end\n"); diff --git a/code/botlib/be_ai_weap.c b/code/botlib/be_ai_weap.c index 45704d8..2929b6b 100644 --- a/code/botlib/be_ai_weap.c +++ b/code/botlib/be_ai_weap.c @@ -467,7 +467,7 @@ int BotAllocWeaponState(void) { if (!botweaponstates[i]) { - botweaponstates[i] = GetClearedMemory(sizeof(bot_weaponstate_t)); + botweaponstates[i] = (bot_weaponstate_t*) GetClearedMemory(sizeof(bot_weaponstate_t)); return i; } //end if } //end for diff --git a/code/botlib/l_precomp.c b/code/botlib/l_precomp.c index f0d165d..a07506b 100644 --- a/code/botlib/l_precomp.c +++ b/code/botlib/l_precomp.c @@ -665,10 +665,13 @@ void PC_AddBuiltinDefines(source_t *source) { int i; define_t *define; - struct builtin + struct builtinStruct { char *string; int builtin; + + builtinStruct(char* istring, int ibuiltin) + : string(istring), builtin(ibuiltin) {} } builtin[] = { // bk001204 - brackets { "__LINE__", BUILTIN_LINE }, { "__FILE__", BUILTIN_FILE }, @@ -736,7 +739,7 @@ int PC_ExpandBuiltinDefine(source_t *source, token_t *deftoken, define_t *define case BUILTIN_DATE: { t = time(NULL); - curtime = ctime(&t); + curtime = ctime((const time_t*)&t); strcpy(token->string, "\""); strncat(token->string, curtime+4, 7); strncat(token->string+7, curtime+20, 4); @@ -751,7 +754,7 @@ int PC_ExpandBuiltinDefine(source_t *source, token_t *deftoken, define_t *define case BUILTIN_TIME: { t = time(NULL); - curtime = ctime(&t); + curtime = ctime((const time_t*)&t); strcpy(token->string, "\""); strncat(token->string, curtime+11, 8); strcat(token->string, "\""); @@ -1331,7 +1334,7 @@ define_t *PC_DefineFromString(char *string) strncpy(src.filename, "*extern", MAX_PATH); src.scriptstack = script; #if DEFINEHASHING - src.definehash = GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); + src.definehash = (define_t**) GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); #endif //DEFINEHASHING //create a define from the source res = PC_Directive_define(&src); @@ -1606,7 +1609,7 @@ int PC_Directive_endif(source_t *source) //============================================================================ typedef struct operator_s { - int operator; + int operatorCode; int priority; int parentheses; struct operator_s *prev, *next; @@ -1914,7 +1917,7 @@ int PC_EvaluateTokens(source_t *source, token_t *tokens, signed long int *intval { //o = (operator_t *) GetClearedMemory(sizeof(operator_t)); AllocOperator(o); - o->operator = t->subtype; + o->operatorCode = t->subtype; o->priority = PC_OperatorPriority(t->subtype); o->parentheses = parentheses; o->next = NULL; @@ -1969,8 +1972,8 @@ int PC_EvaluateTokens(source_t *source, token_t *tokens, signed long int *intval if (o->priority >= o->next->priority) break; } //end if //if the arity of the operator isn't equal to 1 - if (o->operator != P_LOGIC_NOT - && o->operator != P_BIN_NOT) v = v->next; + if (o->operatorCode != P_LOGIC_NOT + && o->operatorCode != P_BIN_NOT) v = v->next; //if there's no value or no next value if (!v) { @@ -1994,7 +1997,7 @@ int PC_EvaluateTokens(source_t *source, token_t *tokens, signed long int *intval if (v2) Log_Write("value2 = %f", v2->floatvalue); } //end else #endif //DEBUG_EVAL - switch(o->operator) + switch(o->operatorCode) { case P_LOGIC_NOT: v1->intvalue = !v1->intvalue; v1->floatvalue = !v1->floatvalue; break; @@ -2085,13 +2088,13 @@ int PC_EvaluateTokens(source_t *source, token_t *tokens, signed long int *intval else Log_Write("result value = %f", v1->floatvalue); #endif //DEBUG_EVAL if (error) break; - lastoperatortype = o->operator; + lastoperatortype = o->operatorCode; //if not an operator with arity 1 - if (o->operator != P_LOGIC_NOT - && o->operator != P_BIN_NOT) + if (o->operatorCode != P_LOGIC_NOT + && o->operatorCode != P_BIN_NOT) { //remove the second value if not question mark operator - if (o->operator != P_QUESTIONMARK) v = v->next; + if (o->operatorCode != P_QUESTIONMARK) v = v->next; // if (v->prev) v->prev->next = v->next; else firstvalue = v->next; @@ -3002,7 +3005,7 @@ source_t *LoadSourceFile(const char *filename) source->skip = 0; #if DEFINEHASHING - source->definehash = GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); + source->definehash = (define_t**) GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); #endif //DEFINEHASHING PC_AddGlobalDefinesToSource(source); return source; @@ -3035,7 +3038,7 @@ source_t *LoadSourceMemory(char *ptr, int length, char *name) source->skip = 0; #if DEFINEHASHING - source->definehash = GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); + source->definehash = (define_t**) GetClearedMemory(DEFINEHASHSIZE * sizeof(define_t *)); #endif //DEFINEHASHING PC_AddGlobalDefinesToSource(source); return source; diff --git a/code/botlib/l_struct.c b/code/botlib/l_struct.c index b206ee0..7f733c5 100644 --- a/code/botlib/l_struct.c +++ b/code/botlib/l_struct.c @@ -80,7 +80,7 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) long int intval, intmin = 0, intmax = 0; double floatval; - if (!PC_ExpectAnyToken(source, &token)) return 0; + if (!PC_ExpectAnyToken(source, &token)) return (qboolean) 0; //check for minus sign if (token.type == TT_PUNCTUATION) @@ -88,23 +88,23 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) if (fd->type & FT_UNSIGNED) { SourceError(source, "expected unsigned value, found %s", token.string); - return 0; + return (qboolean) 0; } //end if //if not a minus sign if (strcmp(token.string, "-")) { SourceError(source, "unexpected punctuation %s", token.string); - return 0; + return (qboolean) 0; } //end if negative = qtrue; //read the number - if (!PC_ExpectAnyToken(source, &token)) return 0; + if (!PC_ExpectAnyToken(source, &token)) return (qboolean) 0; } //end if //check if it is a number if (token.type != TT_NUMBER) { SourceError(source, "expected number, found %s", token.string); - return 0; + return (qboolean) 0; } //end if //check for a float value if (token.subtype & TT_FLOAT) @@ -112,7 +112,7 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) if ((fd->type & FT_TYPE) != FT_FLOAT) { SourceError(source, "unexpected float"); - return 0; + return (qboolean) 0; } //end if floatval = token.floatvalue; if (negative) floatval = -floatval; @@ -121,11 +121,11 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) if (floatval < fd->floatmin || floatval > fd->floatmax) { SourceError(source, "float out of range [%f, %f]", fd->floatmin, fd->floatmax); - return 0; + return (qboolean) 0; } //end if } //end if *(float *) p = (float) floatval; - return 1; + return (qboolean) 1; } //end if // intval = token.intvalue; @@ -151,7 +151,7 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) if (intval < intmin || intval > intmax) { SourceError(source, "value %d out of range [%d, %d]", intval, intmin, intmax); - return 0; + return (qboolean) 0; } //end if } //end if else if ((fd->type & FT_TYPE) == FT_FLOAT) @@ -161,7 +161,7 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) if (intval < fd->floatmin || intval > fd->floatmax) { SourceError(source, "value %d out of range [%f, %f]", intval, fd->floatmin, fd->floatmax); - return 0; + return (qboolean) 0; } //end if } //end if } //end else if @@ -180,7 +180,7 @@ qboolean ReadNumber(source_t *source, fielddef_t *fd, void *p) { *(float *) p = (float) intval; } //end else - return 1; + return (qboolean) 1; } //end of the function ReadNumber //=========================================================================== // @@ -192,7 +192,7 @@ qboolean ReadChar(source_t *source, fielddef_t *fd, void *p) { token_t token; - if (!PC_ExpectAnyToken(source, &token)) return 0; + if (!PC_ExpectAnyToken(source, &token)) return (qboolean) 0; //take literals into account if (token.type == TT_LITERAL) @@ -203,9 +203,9 @@ qboolean ReadChar(source_t *source, fielddef_t *fd, void *p) else { PC_UnreadLastToken(source); - if (!ReadNumber(source, fd, p)) return 0; + if (!ReadNumber(source, fd, p)) return (qboolean) 0; } //end if - return 1; + return (qboolean) 1; } //end of the function ReadChar //=========================================================================== // diff --git a/code/win32/vs/botlib.vcxproj b/code/win32/vs/botlib.vcxproj index f184403..f70c790 100644 --- a/code/win32/vs/botlib.vcxproj +++ b/code/win32/vs/botlib.vcxproj @@ -106,6 +106,7 @@ Level4 true + CompileAsCpp NDEBUG;%(PreprocessorDefinitions) @@ -131,6 +132,7 @@ Level4 true + CompileAsCpp NDEBUG;%(PreprocessorDefinitions) @@ -155,6 +157,7 @@ Level3 true EditAndContinue + CompileAsCpp _DEBUG;%(PreprocessorDefinitions) @@ -179,6 +182,7 @@ Level3 true ProgramDatabase + CompileAsCpp _DEBUG;%(PreprocessorDefinitions)