diff --git a/cl_dll/MOTD.cpp b/cl_dll/MOTD.cpp index 1ca1c0f8..9267ea40 100644 --- a/cl_dll/MOTD.cpp +++ b/cl_dll/MOTD.cpp @@ -73,7 +73,7 @@ int CHudMOTD::Draw( float fTime ) //bool bScroll; // find the top of where the MOTD should be drawn, so the whole thing is centered in the screen int ypos = ( ScreenHeight - LINE_HEIGHT * m_iLines ) / 2; // shift it up slightly - char *ch = m_szMOTD; + unsigned char *ch = (unsigned char*)m_szMOTD; int xpos = ( ScreenWidth - gHUD.m_scrinfo.charWidths['M'] * m_iMaxLength ) / 2; if( xpos < 30 ) xpos = 30; @@ -95,11 +95,13 @@ int CHudMOTD::Draw( float fTime ) gHUD.DrawDarkRectangle( xpos - 5, ypos_r - 5, xmax - xpos + 10, height + 10 ); while( *ch ) { - char *next_line; - int line_length = 0; // count the length of the current line + unsigned char *next_line; for( next_line = ch; *next_line != '\n' && *next_line != 0; next_line++ ) - line_length += gHUD.m_scrinfo.charWidths[*next_line]; - char *top = next_line; + ; + // int line_length = 0; // count the length of the current line + // for( next_line = ch; *next_line != '\n' && *next_line != 0; next_line++ ) + // line_length += gHUD.m_scrinfo.charWidths[*next_line]; + unsigned char *top = next_line; if( *top == '\n' ) *top = 0; else @@ -107,7 +109,7 @@ int CHudMOTD::Draw( float fTime ) // find where to start drawing the line if( ( ypos > ROW_RANGE_MIN ) && ( ypos + LINE_HEIGHT <= ypos_r + height ) ) - DrawUtfString( xpos, ypos, xmax, ch, 255, 180, 0 ); + DrawUtfString( xpos, ypos, xmax, (const char*)ch, 255, 180, 0 ); ypos += LINE_HEIGHT; diff --git a/cl_dll/cdll_int.cpp b/cl_dll/cdll_int.cpp index 57f879d7..55516b84 100644 --- a/cl_dll/cdll_int.cpp +++ b/cl_dll/cdll_int.cpp @@ -28,7 +28,7 @@ #include "vgui_TeamFortressViewport.h" #endif -#if GOLDSOURCE_SUPPORT && (_WIN32 || __linux__ || __APPLE__) && (__i386 || _M_IX86) +#if GOLDSOURCE_SUPPORT && (XASH_WIN32 || XASH_LINUX || XASH_APPLE) && XASH_X86 #define USE_FAKE_VGUI !USE_VGUI #if USE_FAKE_VGUI #include "VGUI_Panel.h" diff --git a/cl_dll/cl_dll.h b/cl_dll/cl_dll.h index 5e5fe905..83d3d7ab 100644 --- a/cl_dll/cl_dll.h +++ b/cl_dll/cl_dll.h @@ -28,6 +28,7 @@ #pragma once #if !defined(CL_DLL_H) #define CL_DLL_H +#include "build.h" typedef unsigned char byte; typedef unsigned short word; typedef float vec_t; @@ -39,7 +40,7 @@ typedef float vec_t; #include "../engine/cdll_int.h" #include "../dlls/cdll_dll.h" -#if !_WIN32 +#if !XASH_WIN32 #define _cdecl #endif #include "exportdef.h" @@ -49,9 +50,6 @@ typedef float vec_t; #else #include #endif -#if __LP64__ || __LLP64__ || _WIN64 || (__x86_64__ && !__ILP32__) || _M_X64 || __ia64 || _M_IA64 || __aarch64__ || __powerpc64__ - #define XASH_64BIT 1 -#endif extern cl_enginefunc_t gEngfuncs; #include "../engine/mobility_int.h" diff --git a/cl_dll/in_camera.cpp b/cl_dll/in_camera.cpp index 7a81a15f..143b8c5f 100644 --- a/cl_dll/in_camera.cpp +++ b/cl_dll/in_camera.cpp @@ -15,7 +15,7 @@ #include "camera.h" #include "in_defs.h" -#if _WIN32 +#if XASH_WIN32 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #define WIN32_EXTRA_LEAN #define HSPRITE WINDOWS_HSPRITE diff --git a/cl_dll/input_goldsource.cpp b/cl_dll/input_goldsource.cpp index 89408423..5f96f304 100644 --- a/cl_dll/input_goldsource.cpp +++ b/cl_dll/input_goldsource.cpp @@ -23,7 +23,7 @@ #include "keydefs.h" #include "view.h" -#if !_WIN32 +#if !XASH_WIN32 #define USE_SDL2 1 #endif @@ -114,7 +114,7 @@ static SDLFunction sdlFunctions[] = { }; #endif -#if _WIN32 +#if XASH_WIN32 #include #else typedef unsigned int DWORD; @@ -149,7 +149,7 @@ extern cvar_t *cl_forwardspeed; extern cvar_t *cl_pitchspeed; extern cvar_t *cl_movespeedkey; -#if _WIN32 +#if XASH_WIN32 static cvar_t* m_rawinput = NULL; static double s_flRawInputUpdateTime = 0.0f; static bool m_bRawInput = false; @@ -157,7 +157,7 @@ static bool m_bMouseThread = false; bool isMouseRelative = false; #endif -#if _WIN32 +#if XASH_WIN32 #include "progdefs.h" #endif @@ -184,7 +184,7 @@ static cvar_t *m_customaccel_max; //Mouse move is raised to this power before being scaled by scale factor static cvar_t *m_customaccel_exponent; -#if _WIN32 +#if XASH_WIN32 // if threaded mouse is enabled then the time to sleep between polls static cvar_t *m_mousethread_sleep; #endif @@ -218,7 +218,7 @@ enum _ControlList AxisTurn }; -#if !USE_SDL2 && _WIN32 +#if !USE_SDL2 && XASH_WIN32 DWORD dwAxisFlags[JOY_MAX_AXES] = { JOY_RETURNX, @@ -234,7 +234,7 @@ DWORD dwAxisMap[ JOY_MAX_AXES ]; DWORD dwControlMap[ JOY_MAX_AXES ]; #if USE_SDL2 int pdwRawValue[ JOY_MAX_AXES ]; -#elif _WIN32 +#elif XASH_WIN32 PDWORD pdwRawValue[ JOY_MAX_AXES ]; #endif DWORD joy_oldbuttonstate, joy_oldpovstate; @@ -244,7 +244,7 @@ DWORD joy_numbuttons; #if USE_SDL2 SDL_GameController *s_pJoystick = NULL; -#elif _WIN32 +#elif XASH_WIN32 DWORD joy_flags; static JOYINFOEX ji; #endif @@ -276,7 +276,7 @@ cvar_t *joy_wwhack2; int joy_avail, joy_advancedinit, joy_haspov; -#if _WIN32 +#if XASH_WIN32 unsigned int s_hMouseThreadId = 0; HANDLE s_hMouseThread = 0; HANDLE s_hMouseQuitEvent = 0; @@ -300,7 +300,7 @@ void Force_CenterView_f (void) } } -#if _WIN32 +#if XASH_WIN32 LONG mouseThreadActive = 0; LONG mouseThreadCenterX = 0; @@ -382,7 +382,7 @@ void IN_SetMouseMode(bool enable) if(enable) { -#if _WIN32 +#if XASH_WIN32 if (mouseparmsvalid) restore_spi = SystemParametersInfo (SPI_SETMOUSE, 0, newmouseparms, 0); @@ -402,7 +402,7 @@ void IN_SetMouseMode(bool enable) } else { -#if _WIN32 +#if XASH_WIN32 if(isMouseRelative) { #if USE_SDL2 @@ -423,7 +423,7 @@ void IN_SetMouseMode(bool enable) void IN_SetVisibleMouse(bool visible) { -#if _WIN32 +#if XASH_WIN32 bool lockEntered = MouseThread_ActiveLock_Enter(); #endif @@ -431,7 +431,7 @@ void IN_SetVisibleMouse(bool visible) IN_SetMouseMode(!visible); -#if _WIN32 +#if XASH_WIN32 UpdateMouseThreadActive(); if(lockEntered) MouseThread_ActiveLock_Exit(); #endif @@ -448,7 +448,7 @@ void GoldSourceInput::IN_ActivateMouse (void) { if (mouseinitialized) { -#if _WIN32 +#if XASH_WIN32 bool lockEntered = MouseThread_ActiveLock_Enter(); #endif @@ -456,7 +456,7 @@ void GoldSourceInput::IN_ActivateMouse (void) mouseactive = 1; -#if _WIN32 +#if XASH_WIN32 UpdateMouseThreadActive(); if(lockEntered) MouseThread_ActiveLock_Exit(); #endif @@ -476,7 +476,7 @@ void GoldSourceInput::IN_DeactivateMouse (void) { if (mouseinitialized) { -#if _WIN32 +#if XASH_WIN32 bool lockEntered = MouseThread_ActiveLock_Enter(); #endif @@ -484,7 +484,7 @@ void GoldSourceInput::IN_DeactivateMouse (void) mouseactive = 0; -#if _WIN32 +#if XASH_WIN32 UpdateMouseThreadActive(); if(lockEntered) MouseThread_ActiveLock_Exit(); #endif @@ -502,7 +502,7 @@ void GoldSourceInput::IN_StartupMouse (void) return; mouseinitialized = 1; -#if _WIN32 +#if XASH_WIN32 mouseparmsvalid = SystemParametersInfo (SPI_GETMOUSE, 0, originalmouseparms, 0); if (mouseparmsvalid) @@ -537,7 +537,7 @@ void GoldSourceInput::IN_Shutdown (void) { IN_DeactivateMouse (); -#if _WIN32 +#if XASH_WIN32 if ( s_hMouseQuitEvent ) { SetEvent( s_hMouseQuitEvent ); @@ -597,7 +597,7 @@ FIXME: Call through to engine? void IN_ResetMouse( void ) { // no work to do in SDL -#if _WIN32 +#if XASH_WIN32 // reset only if mouse is active and not in visible mode: if(mouseactive && !iVisibleMouse && gEngfuncs.GetWindowCenterX && gEngfuncs.GetWindowCenterY) { @@ -712,7 +712,7 @@ void GoldSourceInput::IN_GetMouseDelta( int *pOutX, int *pOutY) if(active) { int deltaX, deltaY; -#if _WIN32 +#if XASH_WIN32 if ( !m_bRawInput ) { if ( m_bMouseThread ) @@ -746,7 +746,7 @@ void GoldSourceInput::IN_GetMouseDelta( int *pOutX, int *pOutY) #endif } -#if _WIN32 +#if XASH_WIN32 if ( !m_bRawInput ) { if ( m_bMouseThread ) @@ -771,7 +771,7 @@ void GoldSourceInput::IN_GetMouseDelta( int *pOutX, int *pOutY) my_accum = 0; // reset mouse position if required, so there is room to move: -#if _WIN32 +#if XASH_WIN32 // do not reset if mousethread would do it: if ( m_bRawInput || !m_bMouseThread ) #else @@ -779,7 +779,7 @@ void GoldSourceInput::IN_GetMouseDelta( int *pOutX, int *pOutY) #endif IN_ResetMouse(); -#if _WIN32 +#if XASH_WIN32 // update m_bRawInput occasionally: const float currentTime = gEngfuncs.GetClientTime(); if ( currentTime - s_flRawInputUpdateTime > 1.0f || s_flRawInputUpdateTime == 0.0f ) @@ -929,7 +929,7 @@ void GoldSourceInput::IN_Accumulate (void) { if (mouseactive) { -#if _WIN32 +#if XASH_WIN32 if ( !m_bRawInput ) { if ( !m_bMouseThread ) @@ -957,7 +957,7 @@ void GoldSourceInput::IN_Accumulate (void) } // force the mouse to the center, so there's room to move -#if _WIN32 +#if XASH_WIN32 // do not reset if mousethread would do it: if ( m_bRawInput || !m_bMouseThread ) #else @@ -1030,7 +1030,7 @@ void IN_StartupJoystick (void) { gEngfuncs.Con_DPrintf ("joystick not found -- driver not present\n\n"); } -#elif _WIN32 +#elif XASH_WIN32 int numdevs; JOYCAPS jc; MMRESULT mmr; @@ -1102,7 +1102,7 @@ int RawValuePointer (int axis) } } -#elif _WIN32 +#elif XASH_WIN32 PDWORD RawValuePointer (int axis) { switch (axis) @@ -1185,7 +1185,7 @@ void Joy_AdvancedUpdate_f (void) dwControlMap[JOY_AXIS_V] = dwTemp & JOY_RELATIVE_AXIS; } -#if !USE_SDL2 && _WIN32 +#if !USE_SDL2 && XASH_WIN32 // compute the axes to collect from DirectInput joy_flags = JOY_RETURNCENTERED | JOY_RETURNBUTTONS | JOY_RETURNPOV; for (i = 0; i < JOY_MAX_AXES; i++) @@ -1231,7 +1231,7 @@ void GoldSourceInput::IN_Commands (void) { pdwRawValue[i] = RawValuePointer(i); } -#elif _WIN32 +#elif XASH_WIN32 buttonstate = ji.dwButtons; #endif @@ -1257,7 +1257,7 @@ void GoldSourceInput::IN_Commands (void) // this avoids any potential problems related to moving from one // direction to another without going through the center position povstate = 0; -#if !USE_SDL2 && _WIN32 +#if !USE_SDL2 && XASH_WIN32 if(ji.dwPOV != JOY_POVCENTERED) { if (ji.dwPOV == JOY_POVFORWARD) @@ -1298,7 +1298,7 @@ int IN_ReadJoystick (void) #if USE_SDL2 safe_pfnSDL_JoystickUpdate(); return 1; -#elif _WIN32 +#elif XASH_WIN32 memset (&ji, 0, sizeof(ji)); ji.dwSize = sizeof(ji); ji.dwFlags = joy_flags; @@ -1377,7 +1377,7 @@ void IN_JoyMove ( float frametime, usercmd_t *cmd ) // get the floating point zero-centered, potentially-inverted data for the current axis #if USE_SDL2 fAxisValue = (float)pdwRawValue[i]; -#elif _WIN32 +#elif XASH_WIN32 fAxisValue = (float) *pdwRawValue[i]; fAxisValue -= 32768.0; #endif @@ -1571,7 +1571,7 @@ void GoldSourceInput::IN_Init (void) m_customaccel_max = gEngfuncs.pfnRegisterVariable ( "m_customaccel_max", "0", FCVAR_ARCHIVE ); m_customaccel_exponent = gEngfuncs.pfnRegisterVariable ( "m_customaccel_exponent", "1", FCVAR_ARCHIVE ); -#if _WIN32 +#if XASH_WIN32 m_rawinput = gEngfuncs.pfnGetCvarPointer("m_rawinput"); m_bRawInput = m_rawinput && m_rawinput->value != 0; m_bMouseThread = gEngfuncs.CheckParm ("-mousethread", NULL ) != NULL; @@ -1603,7 +1603,7 @@ void GoldSourceInput::IN_Init (void) #endif #if USE_SDL2 -#if __APPLE__ +#if XASH_APPLE #define SDL2_FULL_LIBNAME "libsdl2-2.0.0.dylib" #else #define SDL2_FULL_LIBNAME "libSDL2-2.0.so.0" diff --git a/cl_dll/input_mouse.h b/cl_dll/input_mouse.h index 814e239f..1fa76eb6 100644 --- a/cl_dll/input_mouse.h +++ b/cl_dll/input_mouse.h @@ -1,7 +1,4 @@ #pragma once - -#include "build.h" - #if !defined(INPUT_MOUSE_H) #define INPUT_MOUSE_H #include "cl_dll.h" @@ -51,7 +48,7 @@ protected: #if GOLDSOURCE_SUPPORT && ( XASH_WIN32 || ( XASH_LINUX && !XASH_ANDROID ) || XASH_APPLE ) && XASH_X86 #define SUPPORT_GOLDSOURCE_INPUT 1 -#if _WIN32 +#if XASH_WIN32 #define HSPRITE WINDOWS_HSPRITE #include #undef HSPRITE diff --git a/cl_dll/vgui_TeamFortressViewport.cpp b/cl_dll/vgui_TeamFortressViewport.cpp index debac7ef..b19ae2a1 100644 --- a/cl_dll/vgui_TeamFortressViewport.cpp +++ b/cl_dll/vgui_TeamFortressViewport.cpp @@ -673,7 +673,7 @@ int TeamFortressViewport::CreateCommandMenu( const char *menuFile, int direction return newIndex; } -#ifdef _WIN32 +#if XASH_WIN32 try { #endif @@ -873,7 +873,7 @@ int TeamFortressViewport::CreateCommandMenu( const char *menuFile, int direction pfile = gEngfuncs.COM_ParseFile( pfile, token ); } -#ifdef _WIN32 +#if XASH_WIN32 } catch( CException *e ) { diff --git a/dlls/cbase.cpp b/dlls/cbase.cpp index 4b7b5660..33825e2c 100644 --- a/dlls/cbase.cpp +++ b/dlls/cbase.cpp @@ -98,7 +98,7 @@ static DLL_FUNCTIONS gFunctionTable = static void SetObjectCollisionBox( entvars_t *pev ); -#if !_WIN32 +#if !XASH_WIN32 extern "C" { #endif int GetEntityAPI( DLL_FUNCTIONS *pFunctionTable, int interfaceVersion ) @@ -125,7 +125,7 @@ int GetEntityAPI2( DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion ) return TRUE; } -#if !_WIN32 +#if !XASH_WIN32 } #endif diff --git a/dlls/crossbow.cpp b/dlls/crossbow.cpp index 9432b04f..f52be735 100644 --- a/dlls/crossbow.cpp +++ b/dlls/crossbow.cpp @@ -324,7 +324,7 @@ void CCrossbow::Holster( int skiplocal /* = 0 */ ) { m_fInReload = FALSE;// cancel any reload in progress. - if( m_fInZoom ) + if( m_pPlayer->pev->fov != 0 ) { SecondaryAttack(); } diff --git a/dlls/exportdef.h b/dlls/exportdef.h index 6de40543..f90eb06f 100644 --- a/dlls/exportdef.h +++ b/dlls/exportdef.h @@ -1,7 +1,7 @@ #pragma once #if !defined(EXPORTDEF_H) #define EXPORTDEF_H -#if _WIN32 || __CYGWIN__ +#if XASH_WIN32 || __CYGWIN__ #if __GNUC__ #define EXPORT __attribute__ ((dllexport)) #else diff --git a/dlls/extdll.h b/dlls/extdll.h index 2b592763..9541ee16 100644 --- a/dlls/extdll.h +++ b/dlls/extdll.h @@ -15,7 +15,7 @@ #pragma once #if !defined(EXTDLL_H) #define EXTDLL_H - +#include "build.h" // // Global header file for extension DLLs // @@ -35,7 +35,7 @@ #endif // Prevent tons of unused windows definitions -#if _WIN32 +#if XASH_WIN32 #define WIN32_LEAN_AND_MEAN #define NOWINRES #define NOSERVICE @@ -76,10 +76,6 @@ typedef int BOOL; #define M_PI_F (float)M_PI #endif -#if __LP64__ || __LLP64__ || _WIN64 || (__x86_64__ && !__ILP32__) || _M_X64 || __ia64 || _M_IA64 || __aarch64__ || __powerpc64__ - #define XASH_64BIT 1 -#endif - // Header file containing definition of globalvars_t and entvars_t typedef unsigned int func_t; typedef int string_t; // from engine's pr_comp.h; diff --git a/dlls/h_export.cpp b/dlls/h_export.cpp index 11884f9c..d1610275 100644 --- a/dlls/h_export.cpp +++ b/dlls/h_export.cpp @@ -29,7 +29,7 @@ enginefuncs_t g_engfuncs; globalvars_t *gpGlobals; -#if _WIN32 +#if XASH_WIN32 // Required DLL entry point BOOL WINAPI DllMain( HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved ) diff --git a/dlls/talkmonster.cpp b/dlls/talkmonster.cpp index 3eea072d..49b01da2 100644 --- a/dlls/talkmonster.cpp +++ b/dlls/talkmonster.cpp @@ -795,7 +795,7 @@ CBaseEntity *CTalkMonster::FindNearestFriend( BOOL fPlayer ) // for each friend in this bsp... while( ( pFriend = UTIL_FindEntityByClassname( pFriend, pszFriend ) ) ) { - if( pFriend == this || !pFriend->IsAlive() ) + if( pFriend == this || !pFriend->IsAlive() || pFriend->pev->deadflag != DEAD_NO ) // don't talk to self or dead people continue; diff --git a/dlls/util.cpp b/dlls/util.cpp index 36f36db8..cea2bd62 100644 --- a/dlls/util.cpp +++ b/dlls/util.cpp @@ -1752,26 +1752,11 @@ void CSaveRestoreBuffer::BufferRewind( int size ) m_pdata->size -= size; } -#if !_WIN32 && !__WATCOMC__ -extern "C" { -unsigned _rotr( unsigned val, int shift ) +#if !XASH_WIN32 && !__WATCOMC__ +static unsigned _rotr( unsigned val, int shift ) { - unsigned lobit; /* non-zero means lo bit set */ - unsigned num = val; /* number to rotate */ - - shift &= 0x1f; /* modulo 32 -- this will also make - negative shifts work */ - - while( shift-- ) - { - lobit = num & 1; /* get high bit */ - num >>= 1; /* shift right one bit */ - if( lobit ) - num |= 0x80000000; /* set hi bit if lo bit was set */ - } - - return num; -} + // Any modern compiler will generate one single ror instruction for x86, arm and mips here. + return ( val >> shift ) | ( val << ( 32 - shift )); } #endif diff --git a/utils/fake_vgui/include/VGUI.h b/utils/fake_vgui/include/VGUI.h index c33e0589..d7cbba94 100644 --- a/utils/fake_vgui/include/VGUI.h +++ b/utils/fake_vgui/include/VGUI.h @@ -77,7 +77,7 @@ // then App can come along later and fire all the signals //TODO: Change all method naming to starting with a capital letter. -#ifdef _WIN32 +#if XASH_WIN32 # define VGUIAPI __declspec( dllexport ) #else # define VGUIAPI __attribute__ ((visibility("default"))) diff --git a/utils/fake_vgui/include/VGUI_Dar.h b/utils/fake_vgui/include/VGUI_Dar.h index 6f8eb513..32ec592a 100644 --- a/utils/fake_vgui/include/VGUI_Dar.h +++ b/utils/fake_vgui/include/VGUI_Dar.h @@ -166,7 +166,7 @@ protected: ELEMTYPE* _data; }; -#ifdef _WIN32 +#if XASH_WIN32 //forward referencing all the template types used so they get exported template class VGUIAPI Dar; template class VGUIAPI Dar; @@ -191,4 +191,4 @@ template class VGUIAPI Dar; } -#endif \ No newline at end of file +#endif