diff --git a/polymer/eduke32/source/actors.c b/polymer/eduke32/source/actors.c index 5850f9309..7eafe6f63 100644 --- a/polymer/eduke32/source/actors.c +++ b/polymer/eduke32/source/actors.c @@ -590,7 +590,7 @@ void G_Polymer_UnInit(void) // deletesprite() game wrapper void A_DeleteSprite(int32_t s) { - if (block_deletesprite) + if (EDUKE32_PREDICT_FALSE(block_deletesprite)) { OSD_Printf(OSD_ERROR "A_DeleteSprite(): tried to remove sprite %d in EVENT_EGS\n",s); return; @@ -1525,11 +1525,11 @@ ACTOR_STATIC void G_MoveFallers(void) A_SetSprite(i,CLIPMASK0); } - if (G_CheckForSpaceFloor(s->sectnum)) + if (EDUKE32_PREDICT_FALSE(G_CheckForSpaceFloor(s->sectnum))) x = 0; else { - if (G_CheckForSpaceCeiling(s->sectnum)) + if (EDUKE32_PREDICT_FALSE(G_CheckForSpaceCeiling(s->sectnum))) x = g_spriteGravity/6; else x = g_spriteGravity; @@ -2978,43 +2978,6 @@ ACTOR_STATIC void G_MoveWeapons(void) case RADIUSEXPLOSION__STATIC: case KNEE__STATIC: KILLIT(i); -/* - case TONGUE__STATIC: - T1 = sintable[(T2)&2047]>>9; - T2 += 32; - if (T2 > 2047) - KILLIT(i); - - if (sprite[s->owner].statnum == MAXSTATUS) - if (A_CheckEnemySprite(&sprite[s->owner]) == 0) - KILLIT(i); - - s->ang = sprite[s->owner].ang; - s->x = sprite[s->owner].x; - s->y = sprite[s->owner].y; - if (sprite[s->owner].picnum == APLAYER) - s->z = sprite[s->owner].z-(34<<8); - for (k=0; ksectnum, - s->x+((k*sintable[(s->ang+512)&2047])>>9), - s->y+((k*sintable[s->ang&2047])>>9), - s->z+((k*ksgn(s->zvel))*klabs(s->zvel/12)),TONGUE,-40+(k<<1), - 8,8,0,0,0,i,5); - sprite[q].cstat = 128; - sprite[q].pal = 8; - } - q = A_InsertSprite(s->sectnum, - s->x+((k*sintable[(s->ang+512)&2047])>>9), - s->y+((k*sintable[s->ang&2047])>>9), - s->z+((k*ksgn(s->zvel))*klabs(s->zvel/12)),INNERJAW,-40, - 32,32,0,0,0,i,5); - sprite[q].cstat = 128; - if (T2 > 512 && T2 < (1024)) - sprite[q].picnum = INNERJAW+1; - - goto BOLT; -*/ case FREEZEBLAST__STATIC: if (s->yvel < 1 || s->extra < 2 || (s->xvel|s->zvel) == 0) diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index ff23ebeb2..de1c13d1d 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2665,7 +2665,7 @@ void G_PrintGameQuotes(int32_t snum) if (ps->fta <= 1) return; - if (ScriptQuotes[ps->ftq] == NULL) + if (EDUKE32_PREDICT_FALSE(ScriptQuotes[ps->ftq] == NULL)) { OSD_Printf(OSD_ERROR "%s %d null quote %d\n",__FILE__,__LINE__,ps->ftq); return; @@ -2739,7 +2739,7 @@ void P_DoQuote(int32_t q, DukePlayer_t *p) q &= ~MAXQUOTES; } - if (ScriptQuotes[q] == NULL) + if (EDUKE32_PREDICT_FALSE(ScriptQuotes[q] == NULL)) { OSD_Printf(OSD_ERROR "%s %d null quote %d\n",__FILE__,__LINE__,q); return; @@ -4683,7 +4683,7 @@ void G_DrawRooms(int32_t snum, int32_t smoothratio) if (dont_draw != 1) // event return values other than 0 and 1 are reserved { - if (dont_draw != 0) + if (EDUKE32_PREDICT_FALSE(dont_draw != 0)) OSD_Printf(OSD_ERROR "ERROR: EVENT_DISPLAYROOMS return value must be 0 or 1, " "other values are reserved.\n"); @@ -6005,7 +6005,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) break; } case WATERBUBBLEMAKER__STATIC: - if (sp->hitag && sp->picnum == WATERBUBBLEMAKER) + if (EDUKE32_PREDICT_FALSE(sp->hitag && sp->picnum == WATERBUBBLEMAKER)) { // JBF 20030913: Pisses off X_Move(), eg. in bobsp2 OSD_Printf_nowarn(OSD_ERROR "WARNING: WATERBUBBLEMAKER %d @ %d,%d with hitag!=0. Applying fixup.\n", @@ -6586,10 +6586,9 @@ int32_t A_Spawn(int32_t j, int32_t pn) T3 = sector[sect].floorz; //Stopping loc j = nextsectorneighborz(sect,sector[sect].floorz,-1,-1); - if (j >= 0) - { + + if (EDUKE32_PREDICT_TRUE(j >= 0)) T4 = sector[j].ceilingz; - } else { // use elevator sector's ceiling as heuristic @@ -6600,7 +6599,8 @@ int32_t A_Spawn(int32_t j, int32_t pn) } j = nextsectorneighborz(sect,sector[sect].ceilingz,1,1); - if (j >= 0) + + if (EDUKE32_PREDICT_TRUE(j >= 0)) T5 = sector[j].floorz; else { @@ -6806,7 +6806,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) break; } } - if (j == -1) + if (EDUKE32_PREDICT_FALSE(j == -1)) { OSD_Printf_nowarn(OSD_ERROR "Found lonely Sector Effector (lotag 0) at (%d,%d)\n", TrackerCast(sp->x),TrackerCast(sp->y)); @@ -6825,7 +6825,7 @@ int32_t A_Spawn(int32_t j, int32_t pn) msx[tempwallptr] = wall[s].x-sp->x; msy[tempwallptr] = wall[s].y-sp->y; tempwallptr++; - if (tempwallptr > 2047) + if (EDUKE32_PREDICT_FALSE(tempwallptr > 2047)) { Bsprintf_nowarn(tempbuf, "Too many moving sectors at (%d,%d).\n", TrackerCast(wall[s].x),TrackerCast(wall[s].y)); diff --git a/polymer/eduke32/source/gameexec.c b/polymer/eduke32/source/gameexec.c index 82e179a1e..0d3485596 100644 --- a/polymer/eduke32/source/gameexec.c +++ b/polymer/eduke32/source/gameexec.c @@ -67,8 +67,14 @@ GAMEEXEC_STATIC void VM_Execute(int32_t loop); # include "gamestructures.c" #endif -#define VM_CONDITIONAL(xxx) { if ((xxx) || ((insptr = (intptr_t *)*(insptr+1)) && (((*insptr) & 0xfff) == CON_ELSE))) \ -{ insptr += 2; VM_Execute(0); } } +#define VM_CONDITIONAL(xxx) \ + { \ + if ((xxx) || ((insptr = (intptr_t *)*(insptr + 1)) && (((*insptr) & 0xfff) == CON_ELSE))) \ + { \ + insptr += 2; \ + VM_Execute(0); \ + } \ + } void VM_ScriptInfo(void) { @@ -782,7 +788,7 @@ dead: static void P_AddWeaponMaybeSwitch(DukePlayer_t *ps, int32_t weap) { - if ((ps->weaponswitch & 1) && (ps->weaponswitch & 4)) + if ((ps->weaponswitch & (1|4)) == (1|4)) { const int32_t snum = P_Get(ps->i); int32_t i, new_wchoice = -1, curr_wchoice = -1; @@ -825,7 +831,7 @@ static void P_AddWeaponAmmoCommon(DukePlayer_t *ps, int32_t weap, int32_t amount static int32_t VM_AddWeapon(int32_t weap, int32_t amount, DukePlayer_t *ps) { - if ((unsigned)weap >= MAX_WEAPONS) + if (EDUKE32_PREDICT_FALSE((unsigned)weap >= MAX_WEAPONS)) { CON_ERRPRINTF("Invalid weapon ID %d\n", weap); return 1; @@ -1425,10 +1431,6 @@ skip_check: P_DropWeapon(P_GetP(vm.g_sp)); continue; - case CON_NULLOP: - insptr++; - continue; - case CON_MIKESND: insptr++; if (EDUKE32_PREDICT_FALSE(((unsigned)vm.g_sp->yvel >= MAXSOUNDS))) @@ -1607,8 +1609,9 @@ skip_check: return; case CON_RIGHTBRACE: loop--; + case CON_NULLOP: insptr++; - continue;; + continue; case CON_ADDAMMO: insptr++; diff --git a/polymer/eduke32/source/sounds.c b/polymer/eduke32/source/sounds.c index 7cf4f8c85..8117b2674 100644 --- a/polymer/eduke32/source/sounds.c +++ b/polymer/eduke32/source/sounds.c @@ -256,7 +256,7 @@ int32_t S_PlayMusic(const char *fn, const int32_t sel) } while (0); - if (fp < 0) + if (EDUKE32_PREDICT_FALSE(fp < 0)) { OSD_Printf(OSD_ERROR "S_PlayMusic(): error: can't open \"%s\" for playback!\n",fn); return 0; @@ -266,7 +266,7 @@ int32_t S_PlayMusic(const char *fn, const int32_t sel) MusicLen = kfilelength(fp); - if (MusicLen < 4) + if (EDUKE32_PREDICT_FALSE(MusicLen < 4)) { OSD_Printf(OSD_ERROR "S_PlayMusic(): error: empty music file \"%s\"\n", fn); kclose(fp); @@ -277,7 +277,7 @@ int32_t S_PlayMusic(const char *fn, const int32_t sel) MusicPtr = (char *)Xmalloc(MusicLen); g_musicSize = kread(fp, (char *)MusicPtr, MusicLen); - if (g_musicSize != MusicLen) + if (EDUKE32_PREDICT_FALSE(g_musicSize != MusicLen)) { OSD_Printf(OSD_ERROR "S_PlayMusic(): error: read %d bytes from \"%s\", expected %d\n", g_musicSize, fn, MusicLen); @@ -371,7 +371,7 @@ void S_Cleanup(void) i = g_sounds[num].SoundOwner[j].ow; - if (g_sounds[num].num > MAXSOUNDINSTANCES) + if (EDUKE32_PREDICT_FALSE(g_sounds[num].num > MAXSOUNDINSTANCES)) OSD_Printf(OSD_ERROR "S_Cleanup(): num exceeds MAXSOUNDINSTANCES! g_sounds[%d].num %d wtf?\n", num, g_sounds[num].num); if (g_sounds[num].num > 0) @@ -399,7 +399,7 @@ int32_t S_LoadSound(uint32_t num) if (num > (unsigned)g_maxSoundPos || ud.config.SoundToggle == 0 || ud.config.FXDevice < 0) return 0; - if (g_sounds[num].filename == NULL && g_sounds[num].filename1 == NULL) + if (EDUKE32_PREDICT_FALSE(g_sounds[num].filename == NULL && g_sounds[num].filename1 == NULL)) { OSD_Printf(OSD_ERROR "Sound (#%d) not defined!\n",num); return 0; @@ -412,7 +412,7 @@ int32_t S_LoadSound(uint32_t num) { fp = kopen4loadfrommod(g_sounds[num].filename,g_loadFromGroupOnly); - if (fp == -1) + if (EDUKE32_PREDICT_FALSE(fp == -1)) { OSD_Printf(OSDTEXT_RED "Sound %s(#%d) not found!\n",g_sounds[num].filename,num); return 0; @@ -607,7 +607,7 @@ int32_t S_PlaySound3D(int32_t num, int32_t i, const vec3_t *pos) while (j < MAXSOUNDINSTANCES && g_sounds[num].SoundOwner[j].voice != voice) j++; - if (j >= MAXSOUNDINSTANCES) + if (EDUKE32_PREDICT_FALSE(j >= MAXSOUNDINSTANCES)) { OSD_Printf(OSD_ERROR "%s %d: WTF?\n", __FILE__, __LINE__); return -1; @@ -818,7 +818,7 @@ void S_StopEnvSound(int32_t num, int32_t i) do { - if (iter++ > MAXSOUNDINSTANCES<<1) + if (EDUKE32_PREDICT_FALSE(iter++ > MAXSOUNDINSTANCES<<1)) { initprintf(OSD_ERROR "S_StopEnvSound(): too many iterations! The following IDs are still active for sound %d:\n", num); for (j=MAXSOUNDINSTANCES-1; j>=0; j--) @@ -831,7 +831,7 @@ void S_StopEnvSound(int32_t num, int32_t i) { if ((i == -1 && g_sounds[num].SoundOwner[j].voice > FX_Ok) || (i != -1 && g_sounds[num].SoundOwner[j].ow == i)) { - if (i >= 0 && g_sounds[num].SoundOwner[j].voice <= FX_Ok) + if (EDUKE32_PREDICT_FALSE(i >= 0 && g_sounds[num].SoundOwner[j].voice <= FX_Ok)) initprintf(OSD_ERROR "S_StopEnvSound(): bad voice %d for sound ID %d index %d!\n", g_sounds[num].SoundOwner[j].voice, num, j); else if (g_sounds[num].SoundOwner[j].voice > FX_Ok) { @@ -857,7 +857,7 @@ void S_ChangeSoundPitch(int32_t num, int32_t i, int32_t pitchoffset) if ((i == -1 && voice > FX_Ok) || (i != -1 && g_sounds[num].SoundOwner[j].ow == i)) { - if (i >= 0 && voice <= FX_Ok) + if (EDUKE32_PREDICT_FALSE(i >= 0 && voice <= FX_Ok)) initprintf(OSD_ERROR "S_ChangeSoundPitch(): bad voice %d for sound ID %d index %d!\n", voice, num, j); else if (voice > FX_Ok && FX_SoundActive(voice)) FX_SetPitch(voice, pitchoffset);