Merge branch 'next' into public_next

This commit is contained in:
Alam Ed Arias 2016-07-11 16:15:03 -04:00
commit 6f8d22d507
24 changed files with 79 additions and 52 deletions

View file

@ -732,7 +732,8 @@ void luaV_execute (lua_State *L, int nexeccalls) {
luaG_runerror(L, LUA_QL("for") " limit must be a number"); luaG_runerror(L, LUA_QL("for") " limit must be a number");
else if (!tonumber(pstep, ra+2)) else if (!tonumber(pstep, ra+2))
luaG_runerror(L, LUA_QL("for") " step must be a number"); luaG_runerror(L, LUA_QL("for") " step must be a number");
setnvalue(ra, luai_numsub(nvalue(ra), nvalue(pstep))); if (ra && pstep)
setnvalue(ra, luai_numsub(nvalue(ra), nvalue(pstep)));
dojump(L, pc, GETARG_sBx(i)); dojump(L, pc, GETARG_sBx(i));
continue; continue;
} }

View file

@ -966,9 +966,11 @@ void CV_RegisterVar(consvar_t *variable)
// check net variables // check net variables
if (variable->flags & CV_NETVAR) if (variable->flags & CV_NETVAR)
{ {
const consvar_t *netvar;
variable->netid = CV_ComputeNetid(variable->name); variable->netid = CV_ComputeNetid(variable->name);
if (CV_FindNetVar(variable->netid)) netvar = CV_FindNetVar(variable->netid);
I_Error("Variables %s and %s have same netid\n", variable->name, CV_FindNetVar(variable->netid)->name); if (netvar)
I_Error("Variables %s and %s have same netid\n", variable->name, netvar->name);
} }
// link the variable in // link the variable in

View file

@ -41,7 +41,7 @@ void D_SRB2Main(void);
// Called by IO functions when input is detected. // Called by IO functions when input is detected.
void D_PostEvent(const event_t *ev); void D_PostEvent(const event_t *ev);
#ifndef DOXYGEN #ifndef DOXYGEN
void D_PostEvent_end(void); // delimiter for locking memory FUNCMATH void D_PostEvent_end(void); // delimiter for locking memory
#endif #endif
void D_ProcessEvents(void); void D_ProcessEvents(void);

View file

@ -6717,12 +6717,14 @@ static const char *const MOBJEFLAG_LIST[] = {
NULL NULL
}; };
#ifdef HAVE_BLUA
static const char *const MAPTHINGFLAG_LIST[4] = { static const char *const MAPTHINGFLAG_LIST[4] = {
NULL, NULL,
"OBJECTFLIP", // Reverse gravity flag for objects. "OBJECTFLIP", // Reverse gravity flag for objects.
"OBJECTSPECIAL", // Special flag used with certain objects. "OBJECTSPECIAL", // Special flag used with certain objects.
"AMBUSH" // Deaf monsters/do not react to sound. "AMBUSH" // Deaf monsters/do not react to sound.
}; };
#endif
static const char *const PLAYERFLAG_LIST[] = { static const char *const PLAYERFLAG_LIST[] = {
// Flip camera angle with gravity flip prefrence. // Flip camera angle with gravity flip prefrence.
@ -6795,6 +6797,7 @@ static const char *const PLAYERFLAG_LIST[] = {
NULL // stop loop here. NULL // stop loop here.
}; };
#ifdef HAVE_BLUA
// Linedef flags // Linedef flags
static const char *const ML_LIST[16] = { static const char *const ML_LIST[16] = {
"IMPASSIBLE", "IMPASSIBLE",
@ -6814,6 +6817,7 @@ static const char *const ML_LIST[16] = {
"BOUNCY", "BOUNCY",
"TFERLINE" "TFERLINE"
}; };
#endif
// This DOES differ from r_draw's Color_Names, unfortunately. // This DOES differ from r_draw's Color_Names, unfortunately.
// Also includes Super colors // Also includes Super colors
@ -7762,7 +7766,7 @@ fixed_t get_number(const char *word)
#endif #endif
} }
void DEH_Check(void) void FUNCMATH DEH_Check(void)
{ {
#if defined(_DEBUG) || defined(PARANOIA) #if defined(_DEBUG) || defined(PARANOIA)
const size_t dehstates = sizeof(STATE_LIST)/sizeof(const char*); const size_t dehstates = sizeof(STATE_LIST)/sizeof(const char*);

View file

@ -35,7 +35,7 @@ void F_CutsceneTicker(void);
void F_TitleDemoTicker(void); void F_TitleDemoTicker(void);
// Called by main loop. // Called by main loop.
void F_GameEndDrawer(void); FUNCMATH void F_GameEndDrawer(void);
void F_IntroDrawer(void); void F_IntroDrawer(void);
void F_TitleScreenDrawer(void); void F_TitleScreenDrawer(void);

View file

@ -54,7 +54,7 @@
#endif #endif
#endif #endif
typedef void (*I_Error_t) (const char *error, ...); typedef void (*I_Error_t) (const char *error, ...) FUNCIERROR;
// ========================================================================== // ==========================================================================
// MATHS // MATHS

View file

@ -4529,7 +4529,8 @@ static void HWR_SortVisSprites(void)
// Fix first and last. ds still points to the last one after the loop // Fix first and last. ds still points to the last one after the loop
dsfirst->prev = &unsorted; dsfirst->prev = &unsorted;
unsorted.next = dsfirst; unsorted.next = dsfirst;
ds->next = &unsorted; if (ds)
ds->next = &unsorted;
unsorted.prev = ds; unsorted.prev = ds;
// pull the vissprites out by scale // pull the vissprites out by scale
@ -4552,10 +4553,13 @@ static void HWR_SortVisSprites(void)
best = ds; best = ds;
} }
} }
best->next->prev = best->prev; if (best)
best->prev->next = best->next; {
best->next = &gr_vsprsortedhead; best->next->prev = best->prev;
best->prev = gr_vsprsortedhead.prev; best->prev->next = best->next;
best->next = &gr_vsprsortedhead;
best->prev = gr_vsprsortedhead.prev;
}
gr_vsprsortedhead.prev->next = best; gr_vsprsortedhead.prev->next = best;
gr_vsprsortedhead.prev = best; gr_vsprsortedhead.prev = best;
} }

View file

@ -1836,10 +1836,7 @@ EXPORT void HWRAPI(SetSpecialState) (hwdspecialstate_t IdState, INT32 Value)
} }
} }
// -----------------+ static inline void DrawMD2Ex(INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color)
// HWRAPI DrawMD2 : Draw an MD2 model with glcommands
// -----------------+
EXPORT void HWRAPI(DrawMD2i) (INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color)
{ {
INT32 val, count, pindex; INT32 val, count, pindex;
GLfloat s, t; GLfloat s, t;
@ -1931,7 +1928,7 @@ EXPORT void HWRAPI(DrawMD2i) (INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 d
//pglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha = level of transparency //pglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha = level of transparency
// Remove depth mask when the model is transparent so it doesn't cut thorugh sprites // SRB2CBTODO: For all stuff too?! // Remove depth mask when the model is transparent so it doesn't cut thorugh sprites // SRB2CBTODO: For all stuff too?!
if (color[3] < 255) if (color && color[3] < 255)
{ {
pglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha = level of transparency pglBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // alpha = level of transparency
pglDepthMask(GL_FALSE); pglDepthMask(GL_FALSE);
@ -2007,11 +2004,20 @@ EXPORT void HWRAPI(DrawMD2i) (INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 d
pglDisable(GL_CULL_FACE); pglDisable(GL_CULL_FACE);
} }
// -----------------+
// HWRAPI DrawMD2 : Draw an MD2 model with glcommands
// -----------------+
EXPORT void HWRAPI(DrawMD2i) (INT32 *gl_cmd_buffer, md2_frame_t *frame, UINT32 duration, UINT32 tics, md2_frame_t *nextframe, FTransform *pos, float scale, UINT8 flipped, UINT8 *color)
{
DrawMD2Ex(gl_cmd_buffer, frame, duration, tics, nextframe, pos, scale, flipped, color);
}
EXPORT void HWRAPI(DrawMD2) (INT32 *gl_cmd_buffer, md2_frame_t *frame, FTransform *pos, float scale) EXPORT void HWRAPI(DrawMD2) (INT32 *gl_cmd_buffer, md2_frame_t *frame, FTransform *pos, float scale)
{ {
DrawMD2i(gl_cmd_buffer, frame, 0, 0, NULL, pos, scale, false, NULL); DrawMD2Ex(gl_cmd_buffer, frame, 0, 0, NULL, pos, scale, false, NULL);
} }
// -----------------+ // -----------------+
// SetTransform : // SetTransform :
// -----------------+ // -----------------+

View file

@ -87,7 +87,7 @@ void HU_Init(void);
void HU_LoadGraphics(void); void HU_LoadGraphics(void);
// reset heads up when consoleplayer respawns. // reset heads up when consoleplayer respawns.
void HU_Start(void); FUNCMATH void HU_Start(void);
boolean HU_Responder(event_t *ev); boolean HU_Responder(event_t *ev);

View file

@ -3626,7 +3626,7 @@ void P_PlayerFlagBurst(player_t *player, boolean toss)
// Flag text // Flag text
{ {
char plname[MAXPLAYERNAME+4]; char plname[MAXPLAYERNAME+4];
char *flagtext; const char *flagtext;
char flagcolor; char flagcolor;
snprintf(plname, sizeof(plname), "%s%s%s", snprintf(plname, sizeof(plname), "%s%s%s",

View file

@ -252,7 +252,7 @@ mobj_t *P_SPMAngle(mobj_t *source, mobjtype_t type, angle_t angle, UINT8 aimtype
void P_ColorTeamMissile(mobj_t *missile, player_t *source); void P_ColorTeamMissile(mobj_t *missile, player_t *source);
SINT8 P_MobjFlip(mobj_t *mobj); SINT8 P_MobjFlip(mobj_t *mobj);
fixed_t P_GetMobjGravity(mobj_t *mo); fixed_t P_GetMobjGravity(mobj_t *mo);
boolean P_WeaponOrPanel(mobjtype_t type); FUNCMATH boolean P_WeaponOrPanel(mobjtype_t type);
boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled); boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled);

View file

@ -441,7 +441,7 @@ boolean P_SupermanLook4Players(mobj_t *actor);
void P_DestroyRobots(void); void P_DestroyRobots(void);
void P_SnowThinker(precipmobj_t *mobj); void P_SnowThinker(precipmobj_t *mobj);
void P_RainThinker(precipmobj_t *mobj); void P_RainThinker(precipmobj_t *mobj);
void P_NullPrecipThinker(precipmobj_t *mobj); FUNCMATH void P_NullPrecipThinker(precipmobj_t *mobj);
void P_RemovePrecipMobj(precipmobj_t *mobj); void P_RemovePrecipMobj(precipmobj_t *mobj);
void P_SetScale(mobj_t *mobj, fixed_t newscale); void P_SetScale(mobj_t *mobj, fixed_t newscale);
void P_XYMovement(mobj_t *mo); void P_XYMovement(mobj_t *mo);

View file

@ -87,7 +87,7 @@ extern lighttable_t **planezlight;
extern fixed_t *yslope; extern fixed_t *yslope;
extern fixed_t distscale[MAXVIDWIDTH]; extern fixed_t distscale[MAXVIDWIDTH];
void R_InitPlanes(void); FUNCMATH void R_InitPlanes(void);
void R_PortalStoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale); void R_PortalStoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale);
void R_PortalRestoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale); void R_PortalRestoreClipValues(INT32 start, INT32 end, INT16 *ceil, INT16 *floor, fixed_t *scale);
void R_ClearPlanes(void); void R_ClearPlanes(void);

View file

@ -63,7 +63,11 @@ typedef struct floorsplat_s
fixed_t P_SegLength(seg_t *seg); fixed_t P_SegLength(seg_t *seg);
// call at P_SetupLevel() // call at P_SetupLevel()
#if !(defined (WALLSPLATS) || defined (FLOORSPLATS))
FUNCMATH void R_ClearLevelSplats(void);
#else
void R_ClearLevelSplats(void); void R_ClearLevelSplats(void);
#endif
#ifdef WALLSPLATS #ifdef WALLSPLATS
void R_AddWallSplat(line_t *wallline, INT16 sectorside, const char *patchname, fixed_t top, void R_AddWallSplat(line_t *wallline, INT16 sectorside, const char *patchname, fixed_t top,

View file

@ -1634,7 +1634,8 @@ void R_SortVisSprites(void)
// Fix first and last. ds still points to the last one after the loop // Fix first and last. ds still points to the last one after the loop
dsfirst->prev = &unsorted; dsfirst->prev = &unsorted;
unsorted.next = dsfirst; unsorted.next = dsfirst;
ds->next = &unsorted; if (ds)
ds->next = &unsorted;
unsorted.prev = ds; unsorted.prev = ds;
// pull the vissprites out by scale // pull the vissprites out by scale

View file

@ -119,7 +119,7 @@ void S_ResumeAudio(void);
// //
void S_UpdateSounds(void); void S_UpdateSounds(void);
fixed_t S_CalculateSoundDistance(fixed_t px1, fixed_t py1, fixed_t pz1, fixed_t px2, fixed_t py2, fixed_t pz2); FUNCMATH fixed_t S_CalculateSoundDistance(fixed_t px1, fixed_t py1, fixed_t pz1, fixed_t px2, fixed_t py2, fixed_t pz2);
void S_SetDigMusicVolume(INT32 volume); void S_SetDigMusicVolume(INT32 volume);
void S_SetMIDIMusicVolume(INT32 volume); void S_SetMIDIMusicVolume(INT32 volume);

View file

@ -69,6 +69,13 @@ consvar_t cv_scr_height = {"scr_height", "800", CV_SAVE, CV_Unsigned, NULL, 0, N
consvar_t cv_scr_depth = {"scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_scr_depth = {"scr_depth", "16 bits", CV_SAVE, scr_depth_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
#endif #endif
consvar_t cv_renderview = {"renderview", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_renderview = {"renderview", "On", 0, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
#ifdef DIRECTFULLSCREEN
static FUNCMATH void SCR_ChangeFullscreen (void);
#else
static void SCR_ChangeFullscreen (void);
#endif
consvar_t cv_fullscreen = {"fullscreen", "Yes", CV_SAVE|CV_CALL, CV_YesNo, SCR_ChangeFullscreen, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_fullscreen = {"fullscreen", "Yes", CV_SAVE|CV_CALL, CV_YesNo, SCR_ChangeFullscreen, 0, NULL, NULL, 0, 0, NULL};
// ========================================================================= // =========================================================================

View file

@ -175,9 +175,7 @@ void SCR_SetDefaultMode (void);
void SCR_Startup (void); void SCR_Startup (void);
void SCR_ChangeFullscreen (void); FUNCMATH boolean SCR_IsAspectCorrect(INT32 width, INT32 height);
boolean SCR_IsAspectCorrect(INT32 width, INT32 height);
// move out to main code for consistency // move out to main code for consistency
void SCR_DisplayTicRate(void); void SCR_DisplayTicRate(void);

View file

@ -12,25 +12,25 @@ consvar_t cd_volume = {"cd_volume","31",CV_SAVE,soundvolume_cons_t, NULL, 0, NUL
consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cdUpdate = {"cd_update","1",CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
void I_InitCD(void){} FUNCMATH void I_InitCD(void){}
void I_StopCD(void){} FUNCMATH void I_StopCD(void){}
void I_PauseCD(void){} FUNCMATH void I_PauseCD(void){}
void I_ResumeCD(void){} FUNCMATH void I_ResumeCD(void){}
void I_ShutdownCD(void){} FUNCMATH void I_ShutdownCD(void){}
void I_UpdateCD(void){} FUNCMATH void I_UpdateCD(void){}
void I_PlayCD(UINT8 track, UINT8 looping) FUNCMATH void I_PlayCD(UINT8 track, UINT8 looping)
{ {
(void)track; (void)track;
(void)looping; (void)looping;
} }
boolean I_SetVolumeCD(int volume) FUNCMATH boolean I_SetVolumeCD(int volume)
{ {
(void)volume; (void)volume;
return false; return false;

View file

@ -2049,14 +2049,14 @@ void I_StartupMouse2(void)
// //
// I_Tactile // I_Tactile
// //
void I_Tactile(FFType pFFType, const JoyFF_t *FFEffect) FUNCMATH void I_Tactile(FFType pFFType, const JoyFF_t *FFEffect)
{ {
// UNUSED. // UNUSED.
(void)pFFType; (void)pFFType;
(void)FFEffect; (void)FFEffect;
} }
void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect) FUNCMATH void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect)
{ {
// UNUSED. // UNUSED.
(void)pFFType; (void)pFFType;
@ -2067,7 +2067,7 @@ void I_Tactile2(FFType pFFType, const JoyFF_t *FFEffect)
*/ */
static ticcmd_t emptycmd; static ticcmd_t emptycmd;
ticcmd_t *I_BaseTiccmd(void) FUNCMATH ticcmd_t *I_BaseTiccmd(void)
{ {
return &emptycmd; return &emptycmd;
} }
@ -2076,7 +2076,7 @@ ticcmd_t *I_BaseTiccmd(void)
*/ */
static ticcmd_t emptycmd2; static ticcmd_t emptycmd2;
ticcmd_t *I_BaseTiccmd2(void) FUNCMATH ticcmd_t *I_BaseTiccmd2(void)
{ {
return &emptycmd2; return &emptycmd2;
} }
@ -2179,7 +2179,7 @@ tic_t I_GetTime (void)
// //
//I_StartupTimer //I_StartupTimer
// //
void I_StartupTimer(void) FUNCMATH void I_StartupTimer(void)
{ {
#if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX) #if (defined (_WIN32) && !defined (_WIN32_WCE)) && !defined (_XBOX)
// for win2k time bug // for win2k time bug
@ -2313,11 +2313,11 @@ void I_WaitVBL(INT32 count)
SDL_Delay(count); SDL_Delay(count);
} }
void I_BeginRead(void) FUNCMATH void I_BeginRead(void)
{ {
} }
void I_EndRead(void) FUNCMATH void I_EndRead(void)
{ {
} }
@ -3067,5 +3067,5 @@ const CPUInfoFlags *I_CPUInfo(void)
} }
// note CPUAFFINITY code used to reside here // note CPUAFFINITY code used to reside here
void I_RegisterSysCommands(void) {} FUNCMATH void I_RegisterSysCommands(void) {}
#endif #endif

View file

@ -1346,7 +1346,7 @@ void I_SetPalette(RGBA_t *palette)
} }
// return number of fullscreen + X11 modes // return number of fullscreen + X11 modes
INT32 VID_NumModes(void) FUNCMATH INT32 VID_NumModes(void)
{ {
if (USE_FULLSCREEN && numVidModes != -1) if (USE_FULLSCREEN && numVidModes != -1)
return numVidModes - firstEntry; return numVidModes - firstEntry;
@ -1354,7 +1354,7 @@ INT32 VID_NumModes(void)
return MAXWINMODES; return MAXWINMODES;
} }
const char *VID_GetModeName(INT32 modeNum) FUNCMATH const char *VID_GetModeName(INT32 modeNum)
{ {
#if 0 #if 0
if (USE_FULLSCREEN && numVidModes != -1) // fullscreen modes if (USE_FULLSCREEN && numVidModes != -1) // fullscreen modes
@ -1384,7 +1384,7 @@ const char *VID_GetModeName(INT32 modeNum)
return &vidModeName[modeNum][0]; return &vidModeName[modeNum][0];
} }
INT32 VID_GetModeForSize(INT32 w, INT32 h) FUNCMATH INT32 VID_GetModeForSize(INT32 w, INT32 h)
{ {
int i; int i;
for (i = 0; i < MAXWINMODES; i++) for (i = 0; i < MAXWINMODES; i++)

View file

@ -126,7 +126,7 @@ void I_ShutdownSound(void)
#endif #endif
} }
void I_UpdateSound(void) FUNCMATH void I_UpdateSound(void)
{ {
} }
@ -464,7 +464,7 @@ static void mix_gme(void *udata, Uint8 *stream, int len)
} }
#endif #endif
void I_InitMusic(void) FUNCMATH void I_InitMusic(void)
{ {
} }
@ -769,7 +769,7 @@ boolean I_SetSongTrack(int track)
// MIDI Music // MIDI Music
// //
void I_InitMIDIMusic(void) FUNCMATH void I_InitMIDIMusic(void)
{ {
} }

View file

@ -24,7 +24,7 @@
// //
// Called by main loop. // Called by main loop.
void ST_Ticker(void); FUNCMATH void ST_Ticker(void);
// Called by main loop. // Called by main loop.
void ST_Drawer(void); void ST_Drawer(void);

View file

@ -82,7 +82,7 @@ typedef UINT32 angle_t;
extern angle_t tantoangle[SLOPERANGE+1]; extern angle_t tantoangle[SLOPERANGE+1];
// Utility function, called by R_PointToAngle. // Utility function, called by R_PointToAngle.
unsigned SlopeDiv(unsigned num, unsigned den); FUNCMATH unsigned SlopeDiv(unsigned num, unsigned den);
// 360 - angle_t(ANGLE_45) = ANGLE_315 // 360 - angle_t(ANGLE_45) = ANGLE_315
FUNCMATH FUNCINLINE static ATTRINLINE angle_t InvAngle(angle_t a) FUNCMATH FUNCINLINE static ATTRINLINE angle_t InvAngle(angle_t a)