From 75c16f9550d93e0f6bdbcc7a83e816491eda9473 Mon Sep 17 00:00:00 2001 From: mittorn Date: Tue, 1 Sep 2020 15:57:29 +0300 Subject: [PATCH] client: fix some common issues, shut up warnings, disable input code, update vgui headers --- cl_dll/cdll_int.cpp | 2 +- cl_dll/death.cpp | 4 +- cl_dll/demo.cpp | 2 +- cl_dll/enginecallback.h | 3 +- cl_dll/health.cpp | 4 +- cl_dll/in_camera.cpp | 6 +- cl_dll/in_defs.h | 2 +- cl_dll/input.cpp | 2 +- cl_dll/inputw32.cpp | 6 +- cl_dll/menu.cpp | 3 +- cl_dll/render/gl_aurora.cpp | 5 +- cl_dll/render/gl_aurora.h | 2 +- cl_dll/render/gl_export.h | 7 +- cl_dll/render/gl_movie.cpp | 6 +- cl_dll/render/gl_rmain.cpp | 3 +- cl_dll/render/gl_rpart.cpp | 9 +- cl_dll/render/gl_shader.cpp | 6 +- cl_dll/render/gl_shadows.cpp | 4 +- cl_dll/render/gl_sprite.cpp | 3 +- cl_dll/render/gl_studio_draw.cpp | 14 ++- cl_dll/render/gl_studio_init.cpp | 3 +- cl_dll/render/gl_studiodecal.h | 2 +- cl_dll/render/gl_world_new.cpp | 3 +- cl_dll/render/vertex_fmt.h | 31 ++++- cl_dll/vgui_SpectatorPanel.cpp | 2 +- cl_dll/vgui_paranoiatext.cpp | 2 +- cl_dll/vgui_pickup.h | 4 +- cl_dll/vgui_subtitles.cpp | 7 +- cl_dll/wscript | 1 + common/port.h | 4 + dlls/cbase.h | 8 +- dlls/extdll.h | 6 +- dlls/util.h | 2 +- engine/cdll_int.h | 13 +- engine/eiface.h | 2 +- game_shared/bitvec.h | 2 +- game_shared/bone_setup.cpp | 6 +- game_shared/common.cpp | 6 +- game_shared/material.cpp | 9 +- game_shared/mathlib.cpp | 4 +- game_shared/mathlib.h | 1 + game_shared/matrix.h | 4 +- game_shared/stringlib.cpp | 10 +- game_shared/utlarray.h | 4 +- game_shared/utlmemory.h | 4 +- game_shared/vector.h | 15 ++- game_shared/vgui_grid.h | 2 +- game_shared/vgui_helpers.h | 4 +- game_shared/vgui_listbox.h | 4 +- game_shared/vgui_loadtga.cpp | 4 +- game_shared/vgui_loadtga.h | 2 +- game_shared/vgui_scrollbar2.cpp | 4 +- game_shared/vgui_slider2.cpp | 2 +- game_shared/virtualfs.h | 6 +- game_shared/voice_status.cpp | 8 +- game_shared/voice_vgui_tweakdlg.cpp | 12 +- pm_shared/meshdesc.cpp | 16 +-- pm_shared/{pm_math.cpp => pm_math.cpp.unused} | 2 +- pm_shared/trace.cpp | 3 +- scripts/waifulib/library_naming.pyc | Bin 3335 -> 3323 bytes scripts/waifulib/xcompile.pyc | Bin 15396 -> 15264 bytes utils/vgui/include/VGUI.h | 7 +- utils/vgui/include/VGUI_ActionSignal.h | 2 +- utils/vgui/include/VGUI_App.h | 6 +- utils/vgui/include/VGUI_Bitmap.h | 2 +- utils/vgui/include/VGUI_BitmapTGA.h | 2 +- utils/vgui/include/VGUI_Border.h | 2 +- utils/vgui/include/VGUI_BorderLayout.h | 2 +- utils/vgui/include/VGUI_BorderPair.h | 2 +- utils/vgui/include/VGUI_BuildGroup.h | 5 +- utils/vgui/include/VGUI_Button.h | 2 +- utils/vgui/include/VGUI_ButtonController.h | 2 +- utils/vgui/include/VGUI_ButtonGroup.h | 2 +- utils/vgui/include/VGUI_ChangeSignal.h | 2 +- utils/vgui/include/VGUI_CheckButton.h | 2 +- utils/vgui/include/VGUI_Color.h | 2 +- utils/vgui/include/VGUI_ComboKey.h | 2 +- utils/vgui/include/VGUI_ConfigWizard.h | 2 +- utils/vgui/include/VGUI_Cursor.h | 6 +- utils/vgui/include/VGUI_Dar.h | 5 +- utils/vgui/include/VGUI_DataInputStream.h | 2 +- utils/vgui/include/VGUI_Desktop.h | 2 +- utils/vgui/include/VGUI_DesktopIcon.h | 2 +- utils/vgui/include/VGUI_EditPanel.h | 2 +- utils/vgui/include/VGUI_EtchedBorder.h | 2 +- utils/vgui/include/VGUI_FileInputStream.h | 2 +- utils/vgui/include/VGUI_FlowLayout.h | 2 +- utils/vgui/include/VGUI_FocusChangeSignal.h | 2 +- utils/vgui/include/VGUI_FocusNavGroup.h | 2 +- utils/vgui/include/VGUI_Font.h | 5 +- utils/vgui/include/VGUI_Frame.h | 2 +- utils/vgui/include/VGUI_FrameSignal.h | 2 +- utils/vgui/include/VGUI_GridLayout.h | 2 +- utils/vgui/include/VGUI_HeaderPanel.h | 2 +- utils/vgui/include/VGUI_Image.h | 2 +- utils/vgui/include/VGUI_ImagePanel.h | 2 +- utils/vgui/include/VGUI_InputSignal.h | 2 +- utils/vgui/include/VGUI_InputStream.h | 2 +- utils/vgui/include/VGUI_IntChangeSignal.h | 2 +- utils/vgui/include/VGUI_IntLabel.h | 2 +- utils/vgui/include/VGUI_KeyCode.h | 4 +- utils/vgui/include/VGUI_Label.h | 3 +- utils/vgui/include/VGUI_Layout.h | 2 +- utils/vgui/include/VGUI_LayoutInfo.h | 2 +- utils/vgui/include/VGUI_LineBorder.h | 2 +- utils/vgui/include/VGUI_ListPanel.h | 2 +- utils/vgui/include/VGUI_LoweredBorder.h | 2 +- utils/vgui/include/VGUI_Menu.h | 2 +- utils/vgui/include/VGUI_MenuItem.h | 2 +- utils/vgui/include/VGUI_MenuSeparator.h | 2 +- utils/vgui/include/VGUI_MessageBox.h | 2 +- utils/vgui/include/VGUI_MiniApp.h | 2 +- utils/vgui/include/VGUI_MouseCode.h | 6 +- utils/vgui/include/VGUI_Panel.h | 8 +- utils/vgui/include/VGUI_Point.h | 117 ++++++++++++++++++ utils/vgui/include/VGUI_PopupMenu.h | 2 +- utils/vgui/include/VGUI_ProgressBar.h | 2 +- utils/vgui/include/VGUI_RadioButton.h | 2 +- utils/vgui/include/VGUI_RaisedBorder.h | 2 +- utils/vgui/include/VGUI_RepaintSignal.h | 5 +- utils/vgui/include/VGUI_Scheme.h | 10 +- utils/vgui/include/VGUI_ScrollBar.h | 2 +- utils/vgui/include/VGUI_ScrollPanel.h | 2 +- utils/vgui/include/VGUI_Slider.h | 2 +- utils/vgui/include/VGUI_StackLayout.h | 2 +- utils/vgui/include/VGUI_String.h | 4 +- utils/vgui/include/VGUI_Surface.h | 3 +- utils/vgui/include/VGUI_SurfaceBase.h | 3 +- utils/vgui/include/VGUI_SurfaceGL.h | 2 +- utils/vgui/include/VGUI_TabPanel.h | 2 +- utils/vgui/include/VGUI_TablePanel.h | 2 +- utils/vgui/include/VGUI_TaskBar.h | 2 +- utils/vgui/include/VGUI_TextEntry.h | 2 +- utils/vgui/include/VGUI_TextGrid.h | 2 +- utils/vgui/include/VGUI_TextImage.h | 2 +- utils/vgui/include/VGUI_TextPanel.h | 2 +- utils/vgui/include/VGUI_TickSignal.h | 2 +- utils/vgui/include/VGUI_ToggleButton.h | 2 +- utils/vgui/include/VGUI_TreeFolder.h | 2 +- utils/vgui/include/VGUI_WizardPanel.h | 3 +- utils/vgui/lib/win32_vc6/vgui.lib | Bin 416680 -> 416988 bytes wscript | 6 + 142 files changed, 434 insertions(+), 213 deletions(-) rename pm_shared/{pm_math.cpp => pm_math.cpp.unused} (99%) create mode 100644 utils/vgui/include/VGUI_Point.h diff --git a/cl_dll/cdll_int.cpp b/cl_dll/cdll_int.cpp index bd13fe5..762f6be 100644 --- a/cl_dll/cdll_int.cpp +++ b/cl_dll/cdll_int.cpp @@ -21,7 +21,7 @@ #include "hud.h" #include "cl_util.h" #include "netadr.h" -#include "vgui_schememanager.h" +#include "vgui_SchemeManager.h" #include "pm_shared.h" #include "pm_defs.h" diff --git a/cl_dll/death.cpp b/cl_dll/death.cpp index 441d70f..29cb3b2 100644 --- a/cl_dll/death.cpp +++ b/cl_dll/death.cpp @@ -174,7 +174,9 @@ int CHudDeathNotice :: MsgFunc_DeathMsg( const char *pszName, int iSize, void *p gHUD.m_Spectator.DeathMessage(victim); - for ( int i = 0; i < MAX_DEATHNOTICES; i++ ) + int i; + + for ( i = 0; i < MAX_DEATHNOTICES; i++ ) { if ( rgDeathNoticeList[i].iId == 0 ) break; diff --git a/cl_dll/demo.cpp b/cl_dll/demo.cpp index 9694609..7d6114c 100644 --- a/cl_dll/demo.cpp +++ b/cl_dll/demo.cpp @@ -18,7 +18,7 @@ #include "demo_api.h" #include -#define DLLEXPORT __declspec( dllexport ) +//#define DLLEXPORT __declspec( dllexport ) int g_demosniper = 0; int g_demosniperdamage = 0; diff --git a/cl_dll/enginecallback.h b/cl_dll/enginecallback.h index 2d05c79..b56efc7 100644 --- a/cl_dll/enginecallback.h +++ b/cl_dll/enginecallback.h @@ -20,7 +20,8 @@ extern cl_enginefunc_t gEngfuncs; extern render_api_t gRenderfuncs; #define GET_CLIENT_TIME (*gEngfuncs.GetClientTime) -#define GET_CLIENT_OLDTIME (*gEngfuncs.GetClientOldTime) +//#define GET_CLIENT_OLDTIME (*gEngfuncs.GetClientOldTime) +#define GET_CLIENT_OLDTIME (*gEngfuncs.pfnGetClientOldTime) #define CVAR_REGISTER (*gEngfuncs.pfnRegisterVariable) #define CVAR_GET_FLOAT (*gEngfuncs.pfnGetCvarFloat) #define CVAR_GET_STRING (*gEngfuncs.pfnGetCvarString) diff --git a/cl_dll/health.cpp b/cl_dll/health.cpp index 04ea41a..e46a669 100644 --- a/cl_dll/health.cpp +++ b/cl_dll/health.cpp @@ -400,7 +400,7 @@ int CHudHealth::DrawPain(float flTime) int CHudHealth::DrawDamage(float flTime) { - int r, g, b, a; + int r, g, b, a, i; DAMAGE_IMAGE *pdmg; if (!m_bitsDamage) @@ -413,7 +413,7 @@ int CHudHealth::DrawDamage(float flTime) ScaleColors(r, g, b, a); // Draw all the items - for (int i = 0; i < NUM_DMG_TYPES; i++) + for (i = 0; i < NUM_DMG_TYPES; i++) { if (m_bitsDamage & giDmgFlags[i]) { diff --git a/cl_dll/in_camera.cpp b/cl_dll/in_camera.cpp index 453f82a..2478d71 100644 --- a/cl_dll/in_camera.cpp +++ b/cl_dll/in_camera.cpp @@ -4,6 +4,8 @@ // // $NoKeywords: $ //============================================================================= +#if 0 +// TODO: import hlsdk-xash3d input #include "hud.h" #include "cl_util.h" @@ -618,4 +620,6 @@ int DLLEXPORT CL_IsThirdPerson( void ) void DLLEXPORT CL_CameraOffset( float *ofs ) { VectorCopy( cam_ofs, ofs ); -} \ No newline at end of file +} + +#endif diff --git a/cl_dll/in_defs.h b/cl_dll/in_defs.h index e74fdc1..c453a9e 100644 --- a/cl_dll/in_defs.h +++ b/cl_dll/in_defs.h @@ -16,7 +16,7 @@ // fall over #define ROLL 2 -#define DLLEXPORT __declspec( dllexport ) +#include void V_StartPitchDrift( void ); void V_StopPitchDrift( void ); diff --git a/cl_dll/input.cpp b/cl_dll/input.cpp index 6e41d17..b48f70c 100644 --- a/cl_dll/input.cpp +++ b/cl_dll/input.cpp @@ -22,7 +22,7 @@ #include "in_defs.h" #include #include - +#include #include "vgui_TeamFortressViewport.h" diff --git a/cl_dll/inputw32.cpp b/cl_dll/inputw32.cpp index 743f33f..b42dcbb 100644 --- a/cl_dll/inputw32.cpp +++ b/cl_dll/inputw32.cpp @@ -7,6 +7,8 @@ // in_win.c -- windows 95 mouse and joystick code // 02/21/97 JCB Added extended DirectInput code to support external controllers. +/// TODO: import hlsdk-xash3d input interface +#if 0 #include "hud.h" #include "cl_util.h" @@ -960,4 +962,6 @@ void IN_Init (void) IN_StartupMouse (); IN_StartupJoystick (); -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/cl_dll/menu.cpp b/cl_dll/menu.cpp index 06dac92..d3c5fac 100644 --- a/cl_dll/menu.cpp +++ b/cl_dll/menu.cpp @@ -84,7 +84,8 @@ int CHudMenu :: Draw( float flTime ) // count the number of newlines int nlc = 0; - for ( int i = 0; i < MAX_MENU_STRING && g_szMenuString[i] != '\0'; i++ ) + int i; + for ( i = 0; i < MAX_MENU_STRING && g_szMenuString[i] != '\0'; i++ ) { if ( g_szMenuString[i] == '\n' ) nlc++; diff --git a/cl_dll/render/gl_aurora.cpp b/cl_dll/render/gl_aurora.cpp index 2892db9..e3a45b7 100644 --- a/cl_dll/render/gl_aurora.cpp +++ b/cl_dll/render/gl_aurora.cpp @@ -1049,7 +1049,7 @@ bool CParticleSystem :: UpdateParticle( CParticle *part, float frametime ) return true; } -void CParticleSystem :: DrawParticle( CParticle *part, vec3_t &right, vec3_t &up ) +void CParticleSystem :: DrawParticle( CParticle *part, const vec3_t &right, const vec3_t &up ) { float fSize = part->m_fSize; @@ -1083,10 +1083,11 @@ void CParticleSystem :: DrawParticle( CParticle *part, vec3_t &right, vec3_t &up { if( pDraw->pType->m_iDrawCond == CONTENTS_SPOTLIGHT ) { + int i; if( !m_fHasProjectionLighting ) continue; // fast reject - for( int i = 0; i < MAX_DLIGHTS; i++ ) + for( i = 0; i < MAX_DLIGHTS; i++ ) { CDynLight *pl = &tr.dlights[i]; diff --git a/cl_dll/render/gl_aurora.h b/cl_dll/render/gl_aurora.h index 521be51..214ff52 100644 --- a/cl_dll/render/gl_aurora.h +++ b/cl_dll/render/gl_aurora.h @@ -152,7 +152,7 @@ public: // MUST CHECK WHETHER THIS RESULT IS NULL! // returns false if the particle has died bool UpdateParticle( CParticle *part, float frametime ); - void DrawParticle( CParticle *part, Vector &right, Vector &up ); + void DrawParticle( CParticle *part, const Vector &right, const Vector &up ); // Utility functions that have to be public bool ParticleIsVisible( CParticle* part ); diff --git a/cl_dll/render/gl_export.h b/cl_dll/render/gl_export.h index fc482a2..aed36d4 100644 --- a/cl_dll/render/gl_export.h +++ b/cl_dll/render/gl_export.h @@ -16,8 +16,9 @@ GNU General Public License for more details. #ifndef GL_EXPORT_H #define GL_EXPORT_H -#include - +// not needed since we have GL_GetProcAddress in RenderAPI +//#include +#include #ifndef APIENTRY #define APIENTRY #endif @@ -1350,7 +1351,7 @@ EXTERN void ( APIENTRY *pglGetFinalCombinerInputParameterfvNV )( GLenum, GLenum, EXTERN void ( APIENTRY *pglGetFinalCombinerInputParameterivNV )( GLenum, GLenum, GLint * ); EXTERN void ( APIENTRY *pglGenerateMipmap )( GLenum target ); EXTERN void ( APIENTRY *pglDrawBuffersARB)( GLsizei n, const GLenum *bufs ); -EXTERN PROC ( WINAPI *pwglGetProcAddress)( const char * ); +//EXTERN PROC ( WINAPI *pwglGetProcAddress)( const char * ); EXTERN void ( APIENTRY *pglBindVertexArray )( GLuint array ); EXTERN void ( APIENTRY *pglDeleteVertexArrays )( GLsizei n, const GLuint *arrays ); diff --git a/cl_dll/render/gl_movie.cpp b/cl_dll/render/gl_movie.cpp index 91e413a..56ba093 100644 --- a/cl_dll/render/gl_movie.cpp +++ b/cl_dll/render/gl_movie.cpp @@ -39,8 +39,9 @@ int R_PrecacheCinematic( const char *cinname ) if( Q_stricmp( UTIL_FileExtension( cinname ), "avi" )) return -1; + int i; // first check for co-existing - for( int i = 0; i < MAX_MOVIES; i++ ) + for( i = 0; i < MAX_MOVIES; i++ ) { if( !Q_stricmp( tr.cinematics[i].name, cinname )) { @@ -104,7 +105,8 @@ void R_InitCinematics( void ) void R_FreeCinematics( void ) { - for( int i = 0; i < MAX_MOVIES; i++ ) + int i; + for( i = 0; i < MAX_MOVIES; i++ ) { if( tr.cinematics[i].state ) { diff --git a/cl_dll/render/gl_rmain.cpp b/cl_dll/render/gl_rmain.cpp index 1479c7b..fe8a09b 100644 --- a/cl_dll/render/gl_rmain.cpp +++ b/cl_dll/render/gl_rmain.cpp @@ -87,7 +87,8 @@ void R_BuildViewPassHierarchy( void ) if( glState.stack_position > 0 ) num_faces = R_GetPrevInstance()->frame.num_subview_faces; - for( unsigned int i = 0; i < glState.stack_position; i++ ) + unsigned int i; + for( i = 0; i < glState.stack_position; i++ ) empty[i] = ' '; empty[i] = '\0'; diff --git a/cl_dll/render/gl_rpart.cpp b/cl_dll/render/gl_rpart.cpp index d23d884..458d9ee 100644 --- a/cl_dll/render/gl_rpart.cpp +++ b/cl_dll/render/gl_rpart.cpp @@ -509,7 +509,8 @@ bool CQuakePartSystem :: ParseRandomVector( char *&pfile, RandomRange out[3] ) { char token[256]; - for( int i = 0; i < 3 && pfile != NULL; i++ ) + int i; + for( i = 0; i < 3 && pfile != NULL; i++ ) { pfile = COM_ParseLine( pfile, token ); out[i] = RandomRange( token ); @@ -904,7 +905,8 @@ void CQuakePartSystem :: ExplosionParticles( const Vector &pos ) flags = (FPART_STRETCH|FPART_BOUNCE|FPART_FRICTION); - for( int i = 0; i < 384; i++ ) + int i; + for( i = 0; i < 384; i++ ) { src.m_vecOrigin.x = pos.x + RANDOM_LONG( -16, 16 ); src.m_vecOrigin.y = pos.y + RANDOM_LONG( -16, 16 ); @@ -1128,7 +1130,8 @@ void CQuakePartSystem :: BulletParticles( const Vector &org, const Vector &dir ) // sparks int flags = (FPART_STRETCH|FPART_BOUNCE|FPART_FRICTION|FPART_ADDITIVE); - for( int i = 0; i < count; i++ ) + int i; + for( i = 0; i < count; i++ ) { src.m_vecOrigin.x = org[0] + dir[0] * 2 + RANDOM_FLOAT( -1, 1 ); src.m_vecOrigin.y = org[1] + dir[1] * 2 + RANDOM_FLOAT( -1, 1 ); diff --git a/cl_dll/render/gl_shader.cpp b/cl_dll/render/gl_shader.cpp index be301ce..1678d9b 100644 --- a/cl_dll/render/gl_shader.cpp +++ b/cl_dll/render/gl_shader.cpp @@ -1146,8 +1146,9 @@ word GL_FindUberShader( const char *glname, const char *options ) return (word)(prog - glsl_programs); } + int i; // find free spot - for( int i = 1; i < num_glsl_programs; i++ ) + for( i = 1; i < num_glsl_programs; i++ ) if( !glsl_programs[i].name[0] ) break; @@ -1188,8 +1189,9 @@ word GL_FindShader( const char *glname, const char *vpname, const char *fpname, return (word)(prog - glsl_programs); } + int i; // find free spot - for( int i = 1; i < num_glsl_programs; i++ ) + for( i = 1; i < num_glsl_programs; i++ ) if( !glsl_programs[i].name[0] ) break; diff --git a/cl_dll/render/gl_shadows.cpp b/cl_dll/render/gl_shadows.cpp index d936cf8..783a49f 100644 --- a/cl_dll/render/gl_shadows.cpp +++ b/cl_dll/render/gl_shadows.cpp @@ -144,7 +144,9 @@ static int R_ComputeCropBounds( const matrix4x4 &lightViewProjection, Vector bou frustum.DisablePlane( FRUSTUM_NEAR ); frustum.DisablePlane( FRUSTUM_FAR ); - for( int i = 0; i < prevRI->frame.solid_faces.Count(); i++ ) + int i; + + for( i = 0; i < prevRI->frame.solid_faces.Count(); i++ ) { CSolidEntry *entry = &prevRI->frame.solid_faces[i]; diff --git a/cl_dll/render/gl_sprite.cpp b/cl_dll/render/gl_sprite.cpp index d0ac587..c7cd874 100644 --- a/cl_dll/render/gl_sprite.cpp +++ b/cl_dll/render/gl_sprite.cpp @@ -95,7 +95,8 @@ mspriteframe_t *CSpriteModelRenderer :: GetSpriteFrame( int frame, float yaw ) // are positive, so we don't have to worry about division by zero float targettime = m_clTime - ((int)( m_clTime / fullinterval )) * fullinterval; - for( int i = 0; i < (numframes - 1); i++ ) + int i; + for( i = 0; i < (numframes - 1); i++ ) { if( pintervals[i] > targettime ) break; diff --git a/cl_dll/render/gl_studio_draw.cpp b/cl_dll/render/gl_studio_draw.cpp index 170210b..be43a59 100644 --- a/cl_dll/render/gl_studio_draw.cpp +++ b/cl_dll/render/gl_studio_draw.cpp @@ -1363,7 +1363,9 @@ void CStudioModelRenderer :: StudioMergeBones( matrix3x4 &transform, matrix3x4 b for( int i = 0; i < m_pStudioHeader->numbones; i++ ) { - for( int j = 0; j < m_pParentHeader->numbones; j++ ) + int j; + + for( j = 0; j < m_pParentHeader->numbones; j++ ) { if( !Q_stricmp( pchildbones[i].name, pparentbones[j].name )) { @@ -1697,7 +1699,7 @@ void CStudioModelRenderer :: StudioStaticLight( cl_entity_t *ent, mstudiolight_t m_pModelInstance->light_update = false; // init state if was not in frustum - if( abs( m_pModelInstance->cached_frame - tr.realframecount ) > 2 ) + if( Q_abs( m_pModelInstance->cached_frame - tr.realframecount ) > 2 ) m_pModelInstance->oldlight = m_pModelInstance->newlight; } @@ -2849,7 +2851,9 @@ void CStudioModelRenderer :: RenderDeferredStudioList( void ) RI->currentmodel = NULL; m_pCurrentMaterial = NULL; - for( int i = 0; i < RI->frame.solid_meshes.Count(); i++ ) + int i; + + for( i = 0; i < RI->frame.solid_meshes.Count(); i++ ) { CSolidEntry *entry = &RI->frame.solid_meshes[i]; @@ -3731,7 +3735,9 @@ void CStudioModelRenderer :: RenderSolidStudioList( void ) RI->currentmodel = NULL; m_pCurrentMaterial = NULL; - for( int i = 0; i < RI->frame.solid_meshes.Count(); i++ ) + int i; + + for( i = 0; i < RI->frame.solid_meshes.Count(); i++ ) { CSolidEntry *entry = &RI->frame.solid_meshes[i]; diff --git a/cl_dll/render/gl_studio_init.cpp b/cl_dll/render/gl_studio_init.cpp index eb14ba5..7923e6e 100644 --- a/cl_dll/render/gl_studio_init.cpp +++ b/cl_dll/render/gl_studio_init.cpp @@ -1541,8 +1541,9 @@ void CStudioModelRenderer :: SetupSubmodelVerts( const mstudiomodel_t *pSubModel // search for submodel offset int offset = (byte *)pSubModel - (byte *)m_pStudioHeader; + int j; - for( int j = 0; j < MAXSTUDIOMODELS; j++ ) + for( j = 0; j < MAXSTUDIOMODELS; j++ ) { if( m_tbnverts->submodels[j].submodel_offset == offset ) break; diff --git a/cl_dll/render/gl_studiodecal.h b/cl_dll/render/gl_studiodecal.h index cb119cc..5db1775 100644 --- a/cl_dll/render/gl_studiodecal.h +++ b/cl_dll/render/gl_studiodecal.h @@ -16,7 +16,7 @@ GNU General Public License for more details. #ifndef GL_STUDIODECAL_H #define GL_STUDIODECAL_H -typedef enum +enum { DECAL_CLIP_MINUSU = 0x1, DECAL_CLIP_MINUSV = 0x2, diff --git a/cl_dll/render/gl_world_new.cpp b/cl_dll/render/gl_world_new.cpp index d259db7..878ea33 100644 --- a/cl_dll/render/gl_world_new.cpp +++ b/cl_dll/render/gl_world_new.cpp @@ -304,9 +304,10 @@ void GL_LoadAndRebuildCubemaps( int refParams ) // now all the cubemaps are recreated, so we can starts to upload them if( world->loading_cubemaps ) { + int i; Mod_LoadCubemap( &world->defaultCubemap ); - for( int i = 0; i < world->num_cubemaps; i++ ) + for( i = 0; i < world->num_cubemaps; i++ ) { mcubemap_t *cm = &world->cubemaps[i]; Vector vecStart, vecEnd; diff --git a/cl_dll/render/vertex_fmt.h b/cl_dll/render/vertex_fmt.h index 81c36c2..53537db 100644 --- a/cl_dll/render/vertex_fmt.h +++ b/cl_dll/render/vertex_fmt.h @@ -17,8 +17,11 @@ GNU General Public License for more details. #ifndef VERTEX_FMT_H #define VERTEX_FMT_H +#ifdef _MSC_VER #define no_align __declspec(align(1)) - +#else +#define no_align +#endif // name specific: // fisrt letter is model type: B - BrushModel, G - Grass, D - Decal, S - StudioModel // next four letters is always equal "vert" for more readability @@ -48,6 +51,7 @@ typedef struct byte styles[MAXLIGHTMAPS]; // light styles } bvert_v0_gl21_t; +#pragma pack(1) // 84 bytes here no_align typedef struct { @@ -62,7 +66,7 @@ no_align typedef struct byte lights0[4]; // packed light numbers byte lights1[4]; // packed light numbers } bvert_v0_gl30_t; - +#pragma pack() /* ============================================================= @@ -128,7 +132,7 @@ typedef struct float normal[3]; // normal float boneid; // control bones } svert_v0_gl21_t; - +#pragma pack(1) // 24 bytes no_align typedef struct { @@ -137,7 +141,7 @@ no_align typedef struct char normal[3]; // normal char boneid; // control bones } svert_v0_gl30_t; - +#pragma pack() // version 1. have bump, no boneweights, no vertexlight // 68 bytes typedef struct @@ -150,6 +154,7 @@ typedef struct float boneid; // control bones } svert_v1_gl21_t; +#pragma pack(1) // 32 bytes no_align typedef struct { @@ -160,6 +165,7 @@ no_align typedef struct char binormal[3]; // binormal char boneid; // control bones } svert_v1_gl30_t; +#pragma pack() // version 2. no bump, single bone, has vertex lighting // 56 bytes @@ -170,6 +176,7 @@ typedef struct float normal[3]; // normal float light[MAXLIGHTMAPS]; // packed color } svert_v2_gl21_t; +#pragma pack(1) // 40 bytes no_align typedef struct @@ -179,6 +186,7 @@ no_align typedef struct char normal[3]; // normal float light[MAXLIGHTMAPS]; // packed color } svert_v2_gl30_t; +#pragma pack() // version 3. have bump, single bone, has vertex lighting // 96 bytes @@ -192,6 +200,7 @@ typedef struct float tangent[3]; // tangent float binormal[3]; // binormal } svert_v3_gl21_t; +#pragma pack(1) // 64 bytes no_align typedef struct @@ -204,6 +213,7 @@ no_align typedef struct char tangent[3]; // tangent char binormal[3]; // binormal } svert_v3_gl30_t; +#pragma pack() // version 4. no bump, have boneweights, no vertexlight // 72 bytes @@ -216,6 +226,8 @@ typedef struct float weight[4]; // boneweights } svert_v4_gl21_t; +#pragma pack(1) + // 32 bytes no_align typedef struct { @@ -225,6 +237,7 @@ no_align typedef struct char boneid[4]; // control bones byte weight[4]; // boneweights } svert_v4_gl30_t; +#pragma pack() // version 5. have bump, have boneweights, no vertexlight // 96 bytes @@ -239,6 +252,7 @@ typedef struct float weight[4]; // boneweights } svert_v5_gl21_t; +#pragma pack(1) // 40 bytes no_align typedef struct { @@ -250,6 +264,7 @@ no_align typedef struct char boneid[4]; // control bones byte weight[4]; // boneweights } svert_v5_gl30_t; +#pragma pack() // version 6. no bump, single bone, has lightmaps // 76 bytes @@ -263,6 +278,8 @@ typedef struct byte styles[MAXLIGHTMAPS]; // light styles } svert_v6_gl21_t; +#pragma pack(1) + // 60 bytes no_align typedef struct { @@ -273,6 +290,7 @@ no_align typedef struct char normal[3]; // normal byte styles[MAXLIGHTMAPS]; // light styles } svert_v6_gl30_t; +#pragma pack() // version 7. have bump, single bone, has lightmaps // 100 bytes @@ -288,6 +306,7 @@ typedef struct byte styles[MAXLIGHTMAPS]; // light styles } svert_v7_gl21_t; +#pragma pack(1) // 68 bytes no_align typedef struct { @@ -300,6 +319,7 @@ no_align typedef struct char binormal[3]; // binormal byte styles[MAXLIGHTMAPS]; // light styles } svert_v7_gl30_t; +#pragma pack() // version 8. includes all posible combination, slowest // 164 bytes here @@ -319,6 +339,8 @@ typedef struct byte styles[MAXLIGHTMAPS]; // light styles } svert_v8_gl21_t; +#pragma pack(1) + // 108 bytes here no_align typedef struct { @@ -335,5 +357,6 @@ no_align typedef struct float deluxe[MAXLIGHTMAPS]; // packed lightdir byte styles[MAXLIGHTMAPS]; // light styles } svert_v8_gl30_t; +#pragma pack() #endif//VERTEX_FMT_H \ No newline at end of file diff --git a/cl_dll/vgui_SpectatorPanel.cpp b/cl_dll/vgui_SpectatorPanel.cpp index 0ee1bb7..7194c06 100644 --- a/cl_dll/vgui_SpectatorPanel.cpp +++ b/cl_dll/vgui_SpectatorPanel.cpp @@ -17,7 +17,7 @@ #include "pm_shared.h" #include "vgui_TeamFortressViewport.h" #include "vgui_SpectatorPanel.h" -#include "vgui_scorepanel.h" +#include "vgui_ScorePanel.h" #define PANEL_HEIGHT 32 diff --git a/cl_dll/vgui_paranoiatext.cpp b/cl_dll/vgui_paranoiatext.cpp index 96f7994..8604256 100644 --- a/cl_dll/vgui_paranoiatext.cpp +++ b/cl_dll/vgui_paranoiatext.cpp @@ -6,7 +6,7 @@ #include "VGUI_TextImage.h" #include "../engine/keydefs.h" #include "triangleapi.h" -#include "../game_shared/vgui_LoadTGA.h" +#include "../game_shared/vgui_loadtga.h" #include "r_studioint.h" #include "com_model.h" #include "stringlib.h" diff --git a/cl_dll/vgui_pickup.h b/cl_dll/vgui_pickup.h index edc8eec..266b778 100644 --- a/cl_dll/vgui_pickup.h +++ b/cl_dll/vgui_pickup.h @@ -9,7 +9,7 @@ using namespace vgui; #include "vgui_shadowtext.h" #include "VGUI_TextImage.h" -Font* FontFromMessage(const char* &ptext); +Font* FontFromMessage(char* &ptext); void CheckPanel(); @@ -38,7 +38,7 @@ public: void SetMessage( client_textmessage_t *msg ) { setSize(ScreenWidth, 16); - const char *text = msg->pMessage; + char *text = (char*)msg->pMessage; Font *pFont = FontFromMessage(text); char buf[1024]; sprintf(buf, text, g_ammoAdded); // text message should contain %d substring diff --git a/cl_dll/vgui_subtitles.cpp b/cl_dll/vgui_subtitles.cpp index 09d5c73..328439a 100644 --- a/cl_dll/vgui_subtitles.cpp +++ b/cl_dll/vgui_subtitles.cpp @@ -20,7 +20,7 @@ cvar_t *scroll_speed; cvar_t *fade_speed; -Font* FontFromMessage(const char* &ptext) +Font* FontFromMessage(char* &ptext) { char fontname[64] = "Default Text"; if (ptext != NULL && ptext[0] != 0) @@ -154,7 +154,7 @@ void CSubtitle::AddMessage( client_textmessage_t *msg ) // SchemeHandle_t hTextScheme = pSchemes->getSchemeHandle( "Default Text" ); // Font *pFont = pSchemes->getFont( hTextScheme ); - const char *pText = msg->pMessage; + char *pText = (char*)msg->pMessage; client_textmessage_t *postMsg = NULL; if (pText[0] == '$') { @@ -244,7 +244,8 @@ void CSubtitle::paintBackground() // find oldest child to start fading int float mintime = 99999; - for (int i = 0; i < m_pLayer->getChildCount(); i++) + int i; + for (i = 0; i < m_pLayer->getChildCount(); i++) { CSubtitleTextPanel *chld = (CSubtitleTextPanel*)m_pLayer->getChild(i); if (chld->isVisible() && chld->m_fBirthTime < mintime) diff --git a/cl_dll/wscript b/cl_dll/wscript index 2fbf3ca..e0c388d 100644 --- a/cl_dll/wscript +++ b/cl_dll/wscript @@ -28,6 +28,7 @@ def build(bld): includes = [ '.', 'hl/', + 'render/', '../dlls', '../common', '../engine', diff --git a/common/port.h b/common/port.h index 6b9a351..b1af492 100644 --- a/common/port.h +++ b/common/port.h @@ -156,4 +156,8 @@ GNU General Public License for more details. #include #endif +#ifndef MAX_PATH +#define MAX_PATH PATH_MAX +#endif + #endif // PORT_H diff --git a/dlls/cbase.h b/dlls/cbase.h index 20cbf55..cf9c80d 100644 --- a/dlls/cbase.h +++ b/dlls/cbase.h @@ -66,13 +66,7 @@ CBaseEntity #include "meshdesc.h" // C functions for external declarations that call the appropriate C++ methods - -#ifdef _WIN32 -#define EXPORT _declspec( dllexport ) -#else -#define EXPORT /* */ -#endif - +#include "exportdef.h" extern "C" EXPORT int GetEntityAPI( DLL_FUNCTIONS *pFunctionTable, int interfaceVersion ); extern "C" EXPORT int GetEntityAPI2( DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion ); extern "C" EXPORT int GetNewDLLFunctions( NEW_DLL_FUNCTIONS *pFunctionTable, int *interfaceVersion ); diff --git a/dlls/extdll.h b/dlls/extdll.h index 5f375be..00dcea8 100644 --- a/dlls/extdll.h +++ b/dlls/extdll.h @@ -14,7 +14,7 @@ ****/ #ifndef EXTDLL_H #define EXTDLL_H - +#include "port.h" // // Global header file for extension DLLs @@ -42,7 +42,7 @@ #else // _WIN32 #define FALSE 0 #define TRUE (!FALSE) -typedef unsigned long ULONG; +//typedef unsigned long ULONG; typedef unsigned char BYTE; typedef int BOOL; #define MAX_PATH PATH_MAX @@ -53,7 +53,7 @@ typedef int BOOL; #endif #ifndef max #define max(a,b) (((a) > (b)) ? (a) : (b)) -#define _vsnprintf(a,b,c,d) vsnprintf(a,b,c,d) +//#define _vsnprintf(a,b,c,d) vsnprintf(a,b,c,d) #endif #endif //_WIN32 diff --git a/dlls/util.h b/dlls/util.h index 42e87b4..4161a65 100644 --- a/dlls/util.h +++ b/dlls/util.h @@ -270,7 +270,7 @@ typedef enum { ignore_monsters=1, dont_ignore_monsters=0, missile=2 } IGNORE_MON typedef enum { ignore_glass=1, dont_ignore_glass=0 } IGNORE_GLASS; extern void UTIL_TraceLine (const Vector &vecStart, const Vector &vecEnd, IGNORE_MONSTERS igmon, edict_t *pentIgnore, TraceResult *ptr); extern void UTIL_TraceLine (const Vector &vecStart, const Vector &vecEnd, IGNORE_MONSTERS igmon, IGNORE_GLASS ignoreGlass, edict_t *pentIgnore, TraceResult *ptr); -typedef enum { point_hull=0, human_hull=1, large_hull=2, head_hull=3 }; +enum { point_hull=0, human_hull=1, large_hull=2, head_hull=3 }; extern void UTIL_TraceHull (const Vector &vecStart, const Vector &vecEnd, IGNORE_MONSTERS igmon, int hullNumber, edict_t *pentIgnore, TraceResult *ptr); extern TraceResult UTIL_GetGlobalTrace (void); extern void UTIL_TraceModel (const Vector &vecStart, const Vector &vecEnd, int hullNumber, edict_t *pentModel, TraceResult *ptr); diff --git a/engine/cdll_int.h b/engine/cdll_int.h index ea4803a..4ab543a 100644 --- a/engine/cdll_int.h +++ b/engine/cdll_int.h @@ -27,12 +27,23 @@ extern "C" { #endif #include "const.h" + +#define MAX_ALIAS_NAME 32 + +typedef struct cmdalias_s +{ + struct cmdalias_s *next; + char name[MAX_ALIAS_NAME]; + char *value; +} cmdalias_t; + #include #ifndef offsetof -#define offsetof(s,m) (size_t)&(((s *)0)->m) +#define offsetof(s,m) (size_t)&(((s *)0)->m) #endif + // this file is included by both the engine and the client-dll, // so make sure engine declarations aren't done twice diff --git a/engine/eiface.h b/engine/eiface.h index f2194a8..0da9e7f 100644 --- a/engine/eiface.h +++ b/engine/eiface.h @@ -88,7 +88,7 @@ typedef struct int fPlayTrack; } CDStatus; -typedef unsigned int CRC32_t; +//typedef unsigned int CRC32_t; // Engine hands this to DLLs for functionality callbacks typedef struct enginefuncs_s diff --git a/game_shared/bitvec.h b/game_shared/bitvec.h index 616f4c7..f1b780b 100644 --- a/game_shared/bitvec.h +++ b/game_shared/bitvec.h @@ -13,7 +13,7 @@ #include - +#include class CBitVecAccessor { diff --git a/game_shared/bone_setup.cpp b/game_shared/bone_setup.cpp index 950a4c0..bbaf7fa 100644 --- a/game_shared/bone_setup.cpp +++ b/game_shared/bone_setup.cpp @@ -1108,8 +1108,9 @@ float CStudioBoneSetup :: SetController( int iController, float flValue, float & mstudiobonecontroller_t *pbonecontroller = (mstudiobonecontroller_t *)((byte *)m_pStudioHeader + m_pStudioHeader->bonecontrollerindex); + int i; // find first controller that matches the index - for( int i = 0; i < m_pStudioHeader->numbonecontrollers; i++, pbonecontroller++ ) + for( i = 0; i < m_pStudioHeader->numbonecontrollers; i++, pbonecontroller++ ) { if( pbonecontroller->index == iController ) break; @@ -1170,8 +1171,9 @@ float CStudioBoneSetup :: GetController( int iController, float ctlValue ) mstudiobonecontroller_t *pbonecontroller = (mstudiobonecontroller_t *)((byte *)m_pStudioHeader + m_pStudioHeader->bonecontrollerindex); + int i; // find first controller that matches the index - for( int i = 0; i < m_pStudioHeader->numbonecontrollers; i++, pbonecontroller++ ) + for( i = 0; i < m_pStudioHeader->numbonecontrollers; i++, pbonecontroller++ ) { if( pbonecontroller->index == iController ) break; diff --git a/game_shared/common.cpp b/game_shared/common.cpp index 18cba57..1d2eb18 100644 --- a/game_shared/common.cpp +++ b/game_shared/common.cpp @@ -13,8 +13,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -#define NOMINMAX -#include +//#define NOMINMAX +//#include #include #include #include @@ -23,7 +23,7 @@ GNU General Public License for more details. #include #include #include -#include +//#include /* ============ diff --git a/game_shared/material.cpp b/game_shared/material.cpp index 8cf4c73..a1e4d01 100644 --- a/game_shared/material.cpp +++ b/game_shared/material.cpp @@ -250,8 +250,9 @@ void COM_InitMatdef( void ) { if( !Q_strlen( token )) break; // end of line + int i; // find the free sound slot - for( int i = 0; mat->impact_parts[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); + for( i = 0; mat->impact_parts[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); if( i < MAX_MAT_SOUNDS ) { @@ -265,8 +266,9 @@ void COM_InitMatdef( void ) { if( !Q_strlen( token )) break; // end of line + int i; // find the free sound slot - for( int i = 0; mat->impact_sounds[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); + for( i = 0; mat->impact_sounds[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); if( i < MAX_MAT_SOUNDS ) { @@ -280,8 +282,9 @@ void COM_InitMatdef( void ) { if( !Q_strlen( token )) break; // end of line + int i; // find the free sound slot - for( int i = 0; mat->step_sounds[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); + for( i = 0; mat->step_sounds[i] != NULL && i < MAX_MAT_SOUNDS; i++ ); if( i < MAX_MAT_SOUNDS ) { diff --git a/game_shared/mathlib.cpp b/game_shared/mathlib.cpp index 6982f9a..4062708 100644 --- a/game_shared/mathlib.cpp +++ b/game_shared/mathlib.cpp @@ -42,7 +42,9 @@ fast box on planeside test */ int SignbitsForPlane( const Vector &normal ) { - for( int bits = 0, i = 0; i < 3; i++ ) + int bits, i; + + for( bits = 0, i = 0; i < 3; i++ ) if( normal[i] < 0.0f ) bits |= 1<= 0 ? 1.0 : -1.0 ) +#define Q_abs( x ) ((x)<0?-(x):x) #define bound( min, num, max ) ((num) >= (min) ? ((num) < (max) ? (num) : (max)) : (min)) #define saturate( val ) ((val) >= 0 ? ((val) < 1 ? (val) : 1) : 0) diff --git a/game_shared/matrix.h b/game_shared/matrix.h index c44c25d..3da1b49 100644 --- a/game_shared/matrix.h +++ b/game_shared/matrix.h @@ -206,8 +206,8 @@ public: mat[0][2], mat[1][2], mat[2][2] ); } - Vector matrix3x3::VectorRotate( const Vector &v ) const; - Vector matrix3x3::VectorIRotate( const Vector &v ) const; + Vector VectorRotate( const Vector &v ) const; + Vector VectorIRotate( const Vector &v ) const; // copy as OpenGl matrix inline void CopyToArray( float *rgfl ) const diff --git a/game_shared/stringlib.cpp b/game_shared/stringlib.cpp index 31cc8b4..f906af9 100644 --- a/game_shared/stringlib.cpp +++ b/game_shared/stringlib.cpp @@ -3,12 +3,14 @@ // stringlib.cpp - safety string routines //======================================================================= -#define NOMINMAX -#include +//#define NOMINMAX +//#include #include +#include +#include #include -#include - +#include "stringlib.h" +#include #pragma warning(disable : 4244) // MIPS //============ diff --git a/game_shared/utlarray.h b/game_shared/utlarray.h index ad4b55b..944563d 100644 --- a/game_shared/utlarray.h +++ b/game_shared/utlarray.h @@ -171,7 +171,7 @@ public: CUtlBlockVector( int growSize = 0, int initSize = 0 ) : CUtlArray< T, CUtlBlockMemory< T, int > >( growSize, initSize ) {} }; - +#if 0 //----------------------------------------------------------------------------- // The CUtlArrayFixed class: // A array class with a fixed allocation scheme @@ -189,7 +189,7 @@ public: CUtlArrayMT( typename BaseClass::ElemType_t* pMemory, int numElements ) : BaseClass( pMemory, numElements ) {} }; - +#endif //----------------------------------------------------------------------------- // The CUtlArrayFixed class: // A array class with a fixed allocation scheme diff --git a/game_shared/utlmemory.h b/game_shared/utlmemory.h index 4d79a0e..f8f300a 100644 --- a/game_shared/utlmemory.h +++ b/game_shared/utlmemory.h @@ -16,10 +16,10 @@ #include #include -#include +#include #define ALIGN_VALUE( val, alignment ) (( val + alignment - 1 ) & ~( alignment - 1 )) -#define stackalloc( _size ) _alloca( ALIGN_VALUE( _size, 16 ) ) +#define stackalloc( _size ) alloca( ALIGN_VALUE( _size, 16 ) ) #define stackfree( _p ) 0 // Swap two of anything. diff --git a/game_shared/vector.h b/game_shared/vector.h index ef74658..e1e4a2e 100644 --- a/game_shared/vector.h +++ b/game_shared/vector.h @@ -4,7 +4,7 @@ //======================================================================= #ifndef VECTOR_H #define VECTOR_H - +#include #include #include #include @@ -31,15 +31,16 @@ #define vec2_t Vector2D #define vec3_t Vector #define vec4_t Vector4D - +#ifdef _MSC_VER #pragma warning( disable : 4244 ) // disable 'possible loss of data converting float to int' warning message #pragma warning( disable : 4305 ) // disable 'truncation from 'const double' to 'float' warning message - +#endif class NxVec3; class Radian; inline void SinCos( float angle, float *sine, float *cosine ) { +#if defined _MSC_VER && defined _M_I386 __asm { push ecx @@ -51,6 +52,10 @@ inline void SinCos( float angle, float *sine, float *cosine ) fstp dword ptr [ecx] pop ecx } +#else + *sine = sin(angle); + *cosine = cos(angle); +#endif } inline float Q_rsqrt( float number ) @@ -151,9 +156,9 @@ class NxVec3; //========================================================= // 3D Vector //========================================================= -class Vector // same data-layout as engine's vec3_t, +struct Vector // same data-layout as engine's vec3_t, { // which is a float[3] -public: +//public: // Construction/destruction inline Vector(void) { } inline Vector(float X, float Y, float Z) { x = X; y = Y; z = Z; } diff --git a/game_shared/vgui_grid.h b/game_shared/vgui_grid.h index 4c3a562..34d1064 100644 --- a/game_shared/vgui_grid.h +++ b/game_shared/vgui_grid.h @@ -12,7 +12,7 @@ #endif -#include "vgui_panel.h" +#include "VGUI_Panel.h" namespace vgui diff --git a/game_shared/vgui_helpers.h b/game_shared/vgui_helpers.h index 6ac46cf..2848b42 100644 --- a/game_shared/vgui_helpers.h +++ b/game_shared/vgui_helpers.h @@ -12,8 +12,8 @@ #endif -#include "vgui_panel.h" -#include "vgui_label.h" +#include "VGUI_Panel.h" +#include "VGUI_Label.h" inline int PanelTop(vgui::Panel *pPanel) {int x,y,w,h; pPanel->getBounds(x,y,w,h); return y;} diff --git a/game_shared/vgui_listbox.h b/game_shared/vgui_listbox.h index 19c86dc..fed2d48 100644 --- a/game_shared/vgui_listbox.h +++ b/game_shared/vgui_listbox.h @@ -15,8 +15,8 @@ #include "VGUI_Panel.h" #include "VGUI_IntChangeSignal.h" -#include "VGUI_Slider2.h" -#include "VGUI_ScrollBar2.h" +#include "vgui_slider2.h" +#include "vgui_scrollbar2.h" namespace vgui diff --git a/game_shared/vgui_loadtga.cpp b/game_shared/vgui_loadtga.cpp index 6c403d6..55b12ce 100644 --- a/game_shared/vgui_loadtga.cpp +++ b/game_shared/vgui_loadtga.cpp @@ -7,9 +7,9 @@ #include "wrect.h" #include "../cl_dll/cl_dll.h" -#include "vgui.h" +#include "VGUI.h" #include "vgui_loadtga.h" -#include "vgui_inputstream.h" +#include "VGUI_InputStream.h" // ---------------------------------------------------------------------- // diff --git a/game_shared/vgui_loadtga.h b/game_shared/vgui_loadtga.h index da85b5e..e62174b 100644 --- a/game_shared/vgui_loadtga.h +++ b/game_shared/vgui_loadtga.h @@ -12,7 +12,7 @@ #endif -#include "vgui_bitmaptga.h" +#include "VGUI_BitmapTGA.h" vgui::BitmapTGA* vgui_LoadTGA(char const *pFilename); diff --git a/game_shared/vgui_scrollbar2.cpp b/game_shared/vgui_scrollbar2.cpp index a18e804..2421cc0 100644 --- a/game_shared/vgui_scrollbar2.cpp +++ b/game_shared/vgui_scrollbar2.cpp @@ -6,8 +6,8 @@ //============================================================================= -#include "VGUI_ScrollBar2.h" -#include "VGUI_Slider2.h" +#include "vgui_scrollbar2.h" +#include "vgui_slider2.h" #include "vgui_loadtga.h" #include diff --git a/game_shared/vgui_slider2.cpp b/game_shared/vgui_slider2.cpp index 5e42fc7..1b3381e 100644 --- a/game_shared/vgui_slider2.cpp +++ b/game_shared/vgui_slider2.cpp @@ -5,7 +5,7 @@ // $NoKeywords: $ //============================================================================= -#include "VGUI_Slider2.h" +#include "vgui_slider2.h" #include #include diff --git a/game_shared/virtualfs.h b/game_shared/virtualfs.h index fba824f..5b6331f 100644 --- a/game_shared/virtualfs.h +++ b/game_shared/virtualfs.h @@ -6,7 +6,7 @@ #define VIRTUALFS_H #include - +#include #define FS_MEM_BLOCK 65535 #define FS_MSG_BLOCK 8192 @@ -169,7 +169,7 @@ _forceinline size_t CVirtualFS :: IPrint( const char *message ) return Insert( message, Q_strlen( message )); } -_forceinline size_t CVirtualFS :: Printf( const char *fmt, ... ) +size_t CVirtualFS :: Printf( const char *fmt, ... ) { size_t result; va_list args; @@ -181,7 +181,7 @@ _forceinline size_t CVirtualFS :: Printf( const char *fmt, ... ) return result; } -_forceinline size_t CVirtualFS :: IPrintf( const char *fmt, ... ) +size_t CVirtualFS :: IPrintf( const char *fmt, ... ) { size_t result; va_list args; diff --git a/game_shared/voice_status.cpp b/game_shared/voice_status.cpp index b065fcc..4d1d7fa 100644 --- a/game_shared/voice_status.cpp +++ b/game_shared/voice_status.cpp @@ -44,7 +44,7 @@ #include "VGUI_TextImage.h" #include "vgui_loadtga.h" #include "vgui_helpers.h" -#include "vgui_mousecode.h" +#include "VGUI_MouseCode.h" @@ -97,7 +97,9 @@ int __MsgFunc_ReqState(const char *pszName, int iSize, void *pbuf) return 1; } - +// Q_strupr +//#include "stringlib.h" +// TODO: fix stringlib in client int g_BannedPlayerPrintCount; void ForEachBannedPlayer(char id[16]) { @@ -109,7 +111,7 @@ void ForEachBannedPlayer(char id[16]) id[8], id[9], id[10], id[11], id[12], id[13], id[14], id[15] ); - strupr(str); +// Q_strupr(str, str); gEngfuncs.pfnConsolePrint(str); } diff --git a/game_shared/voice_vgui_tweakdlg.cpp b/game_shared/voice_vgui_tweakdlg.cpp index bbe6809..3a2444b 100644 --- a/game_shared/voice_vgui_tweakdlg.cpp +++ b/game_shared/voice_vgui_tweakdlg.cpp @@ -7,17 +7,17 @@ #include "../cl_dll/hud.h" #include "../cl_dll/cl_util.h" -#include "../cl_dll/vgui_teamfortressviewport.h" +#include "../cl_dll/vgui_TeamFortressViewport.h" -#include "vgui_actionsignal.h" +#include "VGUI_ActionSignal.h" #include "voice_vgui_tweakdlg.h" #include "voice_vgui_tweakdlg.h" -#include "vgui_panel.h" -#include "vgui_scrollbar.h" -#include "vgui_slider.h" +#include "VGUI_Panel.h" +#include "VGUI_ScrollBar.h" +#include "VGUI_Slider.h" #include "ivoicetweak.h" -#include "vgui_button.h" +#include "VGUI_Button.h" #include "vgui_checkbutton2.h" #include "vgui_helpers.h" diff --git a/pm_shared/meshdesc.cpp b/pm_shared/meshdesc.cpp index 280acb1..313addd 100644 --- a/pm_shared/meshdesc.cpp +++ b/pm_shared/meshdesc.cpp @@ -13,8 +13,8 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -#define WIN32_LEAN_AND_MEAN -#include "windows.h" +//#define WIN32_LEAN_AND_MEAN +//#include "windows.h" #include #include "vector.h" #include "matrix.h" @@ -36,7 +36,7 @@ GNU General Public License for more details. #endif #include "enginecallback.h" - +#include // placement CMeshDesc *UTIL_GetCollisionMesh( int modelindex ) { model_t *mod = (model_t *)MODEL_HANDLE( modelindex ); @@ -52,10 +52,10 @@ CMeshDesc *UTIL_GetCollisionMesh( int modelindex ) if( !mod->cache.data ) return NULL; - CMeshDesc *bodyMesh = (CMeshDesc *)Mem_Alloc( sizeof( CMeshDesc )); + CMeshDesc *bodyMesh = new (Mem_Alloc( sizeof( CMeshDesc )) ) CMeshDesc(); if( !bodyMesh ) return NULL; - bodyMesh->CMeshDesc::CMeshDesc(); +// bodyMesh->CMeshDesc(); bodyMesh->SetDebugName( mod->name ); bodyMesh->SetModel( mod ); @@ -932,7 +932,8 @@ bool CMeshDesc :: StudioConstructMesh( void ) static Vector4D q[MAXSTUDIOBONES]; int totalVertSize = 0; - for( int i = 0; i < phdr->numbones; i++, pbone++, panim++ ) + int i; + for( i = 0; i < phdr->numbones; i++, pbone++, panim++ ) { StudioCalcBoneTransform( 0, pbone, panim, pos[i], q[i] ); } @@ -1151,7 +1152,8 @@ bool CMeshDesc :: FinishMeshBuild( void ) return false; } - for( int i = 0; i < 3; i++ ) + int i; + for( i = 0; i < 3; i++ ) { // spread the mins / maxs by a pixel m_mesh.mins[i] -= 1.0f; diff --git a/pm_shared/pm_math.cpp b/pm_shared/pm_math.cpp.unused similarity index 99% rename from pm_shared/pm_math.cpp rename to pm_shared/pm_math.cpp.unused index 6868619..82d001c 100644 --- a/pm_shared/pm_math.cpp +++ b/pm_shared/pm_math.cpp.unused @@ -27,7 +27,7 @@ #pragma warning(disable : 4244) -vec3_t vec3_origin = {0,0,0}; +vec3_t vec3_origin = Vector(0,0,0); #ifndef VECTOR_H #define DotProduct(x,y) ((x)[0]*(y)[0]+(x)[1]*(y)[1]+(x)[2]*(y)[2]) diff --git a/pm_shared/trace.cpp b/pm_shared/trace.cpp index 0d5526e..612a617 100644 --- a/pm_shared/trace.cpp +++ b/pm_shared/trace.cpp @@ -13,8 +13,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -#define WIN32_LEAN_AND_MEAN -#include "windows.h" +//#include "windows.h" #include #include "vector.h" #include "matrix.h" diff --git a/scripts/waifulib/library_naming.pyc b/scripts/waifulib/library_naming.pyc index 78575564bc94f8dc66e10618108a00381887b30a..729cb1d5471c14e9294179db35076a6758b74aea 100644 GIT binary patch delta 93 zcmZpd`Yp-M{F#?)tAgJ~_6_Vp)(i{``bGKqCHg6;W%_C5>BW;9c#Jo3#4=--(wn@H J`y_U$b^trq9e)4- delta 106 zcmew@*)GM-{F#^QfU56C_6_V}_6!UR`WgATsrvc3iADKk`g#?K#Tk>cx%D=GXHR0r OE&m<2l-}e;Jdpqm1|p0A diff --git a/scripts/waifulib/xcompile.pyc b/scripts/waifulib/xcompile.pyc index 675e2c5cba30510cefd5221bac672e9605457bc0..7ee9fdbc846f78b3ca6dd8f3e82ae3759d5d7b7a 100644 GIT binary patch delta 925 zcmZ2dv7nrt`7?b*eOc@v$^o#QIOY~Dx%k18lpgmE zTvGhJ9Fw(qmgAOQf?Y~u@<-n3xTKEpwPTl3pWMYCg+pqyqChAk4!Oyj1*hPU+T0>^ z6PLElvqWa#l*<f1~#xA8XdAal+>{9BR7sx2# zbm9UT*2ye#FR^RY*sLv|&Wv47ee-!G4<_t#8k<8^@8hsiV{?)EFPw6#G#RnUZ9b^= z4VyS9#cuwhGm90wJJdIyHoA^W-{kuye{pD=ENONemz1peEF4mcznJ3)5B1H4RtY%W Ian3pn0PPGhjsO4v delta 1056 zcmZ2bzNCVk`7?b+JEEyOW^fU5vQ}y$66N~c8^z|wdi!&x0%4kgH;(Clv zTAh149_dNE?33krmg7~i7`LqY%c9oF*%<<5}$N}5zA&afdEE)Y9`OCV%i~pS;ZU7+z_!nK-032b!zn2{?_- Nn=Iq;I?UTT6aWPZN // size_t define #endif #define null 0L @@ -93,7 +94,7 @@ typedef unsigned long ulong; namespace vgui { -VGUIAPI void vgui_setMalloc(void* (*malloc)(size_t size)); +VGUIAPI void vgui_setMalloc(void *(*malloc)(size_t size) ); VGUIAPI void vgui_setFree(void (*free)(void* memblock)); VGUIAPI void vgui_strcpy(char* dst,int dstLen,const char* src); VGUIAPI char* vgui_strdup(const char* src); diff --git a/utils/vgui/include/VGUI_ActionSignal.h b/utils/vgui/include/VGUI_ActionSignal.h index 2438a62..372ad2b 100644 --- a/utils/vgui/include/VGUI_ActionSignal.h +++ b/utils/vgui/include/VGUI_ActionSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_App.h b/utils/vgui/include/VGUI_App.h index d2b27e1..b655f92 100644 --- a/utils/vgui/include/VGUI_App.h +++ b/utils/vgui/include/VGUI_App.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -17,8 +17,6 @@ namespace vgui { -enum MouseCode; -enum KeyCode; class Panel; class TickSignal; class Scheme; @@ -117,7 +115,7 @@ protected: bool _buildMode; bool _wantedBuildMode; Panel* _mouseArenaPanel; - Cursor* _cursor[Cursor::DefaultCursor::dc_last]; + Cursor* _cursor[Cursor::dc_last]; Cursor* _cursorOveride; private: long _nextTickMillis; diff --git a/utils/vgui/include/VGUI_Bitmap.h b/utils/vgui/include/VGUI_Bitmap.h index 1a16ce3..7d23e39 100644 --- a/utils/vgui/include/VGUI_Bitmap.h +++ b/utils/vgui/include/VGUI_Bitmap.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_BitmapTGA.h b/utils/vgui/include/VGUI_BitmapTGA.h index cfc1608..c0def71 100644 --- a/utils/vgui/include/VGUI_BitmapTGA.h +++ b/utils/vgui/include/VGUI_BitmapTGA.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Border.h b/utils/vgui/include/VGUI_Border.h index 8e038eb..6ad137e 100644 --- a/utils/vgui/include/VGUI_Border.h +++ b/utils/vgui/include/VGUI_Border.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_BorderLayout.h b/utils/vgui/include/VGUI_BorderLayout.h index b6dedf5..564d58a 100644 --- a/utils/vgui/include/VGUI_BorderLayout.h +++ b/utils/vgui/include/VGUI_BorderLayout.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_BorderPair.h b/utils/vgui/include/VGUI_BorderPair.h index e4af92b..273193c 100644 --- a/utils/vgui/include/VGUI_BorderPair.h +++ b/utils/vgui/include/VGUI_BorderPair.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_BuildGroup.h b/utils/vgui/include/VGUI_BuildGroup.h index 0373f8d..678e5c5 100644 --- a/utils/vgui/include/VGUI_BuildGroup.h +++ b/utils/vgui/include/VGUI_BuildGroup.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -10,7 +10,8 @@ #include #include - +#include +#include namespace vgui { diff --git a/utils/vgui/include/VGUI_Button.h b/utils/vgui/include/VGUI_Button.h index ec068b4..dbd4e07 100644 --- a/utils/vgui/include/VGUI_Button.h +++ b/utils/vgui/include/VGUI_Button.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ButtonController.h b/utils/vgui/include/VGUI_ButtonController.h index 30b97af..6099609 100644 --- a/utils/vgui/include/VGUI_ButtonController.h +++ b/utils/vgui/include/VGUI_ButtonController.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ButtonGroup.h b/utils/vgui/include/VGUI_ButtonGroup.h index 237331d..57c3d8f 100644 --- a/utils/vgui/include/VGUI_ButtonGroup.h +++ b/utils/vgui/include/VGUI_ButtonGroup.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ChangeSignal.h b/utils/vgui/include/VGUI_ChangeSignal.h index 46590a8..169a8db 100644 --- a/utils/vgui/include/VGUI_ChangeSignal.h +++ b/utils/vgui/include/VGUI_ChangeSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_CheckButton.h b/utils/vgui/include/VGUI_CheckButton.h index 085f0e5..22c320f 100644 --- a/utils/vgui/include/VGUI_CheckButton.h +++ b/utils/vgui/include/VGUI_CheckButton.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Color.h b/utils/vgui/include/VGUI_Color.h index 7cecf5d..e69d5e0 100644 --- a/utils/vgui/include/VGUI_Color.h +++ b/utils/vgui/include/VGUI_Color.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ComboKey.h b/utils/vgui/include/VGUI_ComboKey.h index 351294b..6ea2488 100644 --- a/utils/vgui/include/VGUI_ComboKey.h +++ b/utils/vgui/include/VGUI_ComboKey.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ConfigWizard.h b/utils/vgui/include/VGUI_ConfigWizard.h index c12b1e3..157d348 100644 --- a/utils/vgui/include/VGUI_ConfigWizard.h +++ b/utils/vgui/include/VGUI_ConfigWizard.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Cursor.h b/utils/vgui/include/VGUI_Cursor.h index 86080c0..76a7a04 100644 --- a/utils/vgui/include/VGUI_Cursor.h +++ b/utils/vgui/include/VGUI_Cursor.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -34,7 +34,7 @@ public: dc_sizeall, dc_no, dc_hand, - dc_last, + dc_last }; private: int _hotspot[2]; @@ -54,4 +54,4 @@ public: } -#endif \ No newline at end of file +#endif diff --git a/utils/vgui/include/VGUI_Dar.h b/utils/vgui/include/VGUI_Dar.h index 4fa0bca..6f8eb51 100644 --- a/utils/vgui/include/VGUI_Dar.h +++ b/utils/vgui/include/VGUI_Dar.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -166,6 +166,7 @@ protected: ELEMTYPE* _data; }; +#ifdef _WIN32 //forward referencing all the template types used so they get exported template class VGUIAPI Dar; template class VGUIAPI Dar; @@ -185,7 +186,7 @@ template class VGUIAPI Dar; template class VGUIAPI Dar; template class VGUIAPI Dar; template class VGUIAPI Dar; - +#endif } diff --git a/utils/vgui/include/VGUI_DataInputStream.h b/utils/vgui/include/VGUI_DataInputStream.h index 53b2589..eeb14bf 100644 --- a/utils/vgui/include/VGUI_DataInputStream.h +++ b/utils/vgui/include/VGUI_DataInputStream.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Desktop.h b/utils/vgui/include/VGUI_Desktop.h index ffd82af..2a4ddd1 100644 --- a/utils/vgui/include/VGUI_Desktop.h +++ b/utils/vgui/include/VGUI_Desktop.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_DesktopIcon.h b/utils/vgui/include/VGUI_DesktopIcon.h index 6c63838..18aaa83 100644 --- a/utils/vgui/include/VGUI_DesktopIcon.h +++ b/utils/vgui/include/VGUI_DesktopIcon.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_EditPanel.h b/utils/vgui/include/VGUI_EditPanel.h index ea26634..dd43ccd 100644 --- a/utils/vgui/include/VGUI_EditPanel.h +++ b/utils/vgui/include/VGUI_EditPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_EtchedBorder.h b/utils/vgui/include/VGUI_EtchedBorder.h index 04184d3..75d3a74 100644 --- a/utils/vgui/include/VGUI_EtchedBorder.h +++ b/utils/vgui/include/VGUI_EtchedBorder.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_FileInputStream.h b/utils/vgui/include/VGUI_FileInputStream.h index f0b6f57..0df3820 100644 --- a/utils/vgui/include/VGUI_FileInputStream.h +++ b/utils/vgui/include/VGUI_FileInputStream.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_FlowLayout.h b/utils/vgui/include/VGUI_FlowLayout.h index be47a93..850becb 100644 --- a/utils/vgui/include/VGUI_FlowLayout.h +++ b/utils/vgui/include/VGUI_FlowLayout.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_FocusChangeSignal.h b/utils/vgui/include/VGUI_FocusChangeSignal.h index 9b9476f..d19babd 100644 --- a/utils/vgui/include/VGUI_FocusChangeSignal.h +++ b/utils/vgui/include/VGUI_FocusChangeSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_FocusNavGroup.h b/utils/vgui/include/VGUI_FocusNavGroup.h index 76ec2e4..706b375 100644 --- a/utils/vgui/include/VGUI_FocusNavGroup.h +++ b/utils/vgui/include/VGUI_FocusNavGroup.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Font.h b/utils/vgui/include/VGUI_Font.h index 8db24f8..73eb4e2 100644 --- a/utils/vgui/include/VGUI_Font.h +++ b/utils/vgui/include/VGUI_Font.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -32,6 +32,9 @@ class VGUIAPI Font virtual void getCharABCwide(int ch,int& a,int& b,int& c); virtual void getTextSize(const char* text,int& wide,int& tall); virtual int getTall(); +#ifndef _WIN32 + virtual int getWide(); +#endif virtual int getId(); protected: char* _name; diff --git a/utils/vgui/include/VGUI_Frame.h b/utils/vgui/include/VGUI_Frame.h index c77516c..d839f7c 100644 --- a/utils/vgui/include/VGUI_Frame.h +++ b/utils/vgui/include/VGUI_Frame.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_FrameSignal.h b/utils/vgui/include/VGUI_FrameSignal.h index 576d29a..2098702 100644 --- a/utils/vgui/include/VGUI_FrameSignal.h +++ b/utils/vgui/include/VGUI_FrameSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_GridLayout.h b/utils/vgui/include/VGUI_GridLayout.h index cd321ce..902fff4 100644 --- a/utils/vgui/include/VGUI_GridLayout.h +++ b/utils/vgui/include/VGUI_GridLayout.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_HeaderPanel.h b/utils/vgui/include/VGUI_HeaderPanel.h index 0474209..0f584fc 100644 --- a/utils/vgui/include/VGUI_HeaderPanel.h +++ b/utils/vgui/include/VGUI_HeaderPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Image.h b/utils/vgui/include/VGUI_Image.h index 9602d89..01cb007 100644 --- a/utils/vgui/include/VGUI_Image.h +++ b/utils/vgui/include/VGUI_Image.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ImagePanel.h b/utils/vgui/include/VGUI_ImagePanel.h index 50e043f..cdbe315 100644 --- a/utils/vgui/include/VGUI_ImagePanel.h +++ b/utils/vgui/include/VGUI_ImagePanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_InputSignal.h b/utils/vgui/include/VGUI_InputSignal.h index 3aa7bda..0ceb256 100644 --- a/utils/vgui/include/VGUI_InputSignal.h +++ b/utils/vgui/include/VGUI_InputSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_InputStream.h b/utils/vgui/include/VGUI_InputStream.h index e2f3fdf..9c3395f 100644 --- a/utils/vgui/include/VGUI_InputStream.h +++ b/utils/vgui/include/VGUI_InputStream.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_IntChangeSignal.h b/utils/vgui/include/VGUI_IntChangeSignal.h index 48aa01b..f44cff1 100644 --- a/utils/vgui/include/VGUI_IntChangeSignal.h +++ b/utils/vgui/include/VGUI_IntChangeSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_IntLabel.h b/utils/vgui/include/VGUI_IntLabel.h index 8248f94..b778f11 100644 --- a/utils/vgui/include/VGUI_IntLabel.h +++ b/utils/vgui/include/VGUI_IntLabel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_KeyCode.h b/utils/vgui/include/VGUI_KeyCode.h index 19660f5..b6aea36 100644 --- a/utils/vgui/include/VGUI_KeyCode.h +++ b/utils/vgui/include/VGUI_KeyCode.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -117,7 +117,7 @@ enum VGUIAPI KeyCode KEY_F10, KEY_F11, KEY_F12, - KEY_LAST, + KEY_LAST }; } diff --git a/utils/vgui/include/VGUI_Label.h b/utils/vgui/include/VGUI_Label.h index bc55163..f1ae9cf 100644 --- a/utils/vgui/include/VGUI_Label.h +++ b/utils/vgui/include/VGUI_Label.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -11,6 +11,7 @@ #include #include #include +#include //TODO: this should use a TextImage for the text diff --git a/utils/vgui/include/VGUI_Layout.h b/utils/vgui/include/VGUI_Layout.h index 2fb41ae..5a75073 100644 --- a/utils/vgui/include/VGUI_Layout.h +++ b/utils/vgui/include/VGUI_Layout.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_LayoutInfo.h b/utils/vgui/include/VGUI_LayoutInfo.h index 6a3bd41..bc3f17b 100644 --- a/utils/vgui/include/VGUI_LayoutInfo.h +++ b/utils/vgui/include/VGUI_LayoutInfo.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_LineBorder.h b/utils/vgui/include/VGUI_LineBorder.h index 952c27b..4e102ea 100644 --- a/utils/vgui/include/VGUI_LineBorder.h +++ b/utils/vgui/include/VGUI_LineBorder.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ListPanel.h b/utils/vgui/include/VGUI_ListPanel.h index abf76c5..732c91d 100644 --- a/utils/vgui/include/VGUI_ListPanel.h +++ b/utils/vgui/include/VGUI_ListPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_LoweredBorder.h b/utils/vgui/include/VGUI_LoweredBorder.h index 7b7249d..25a9d9d 100644 --- a/utils/vgui/include/VGUI_LoweredBorder.h +++ b/utils/vgui/include/VGUI_LoweredBorder.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Menu.h b/utils/vgui/include/VGUI_Menu.h index 9207394..3c822a7 100644 --- a/utils/vgui/include/VGUI_Menu.h +++ b/utils/vgui/include/VGUI_Menu.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_MenuItem.h b/utils/vgui/include/VGUI_MenuItem.h index 157a2f0..aab4ebf 100644 --- a/utils/vgui/include/VGUI_MenuItem.h +++ b/utils/vgui/include/VGUI_MenuItem.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_MenuSeparator.h b/utils/vgui/include/VGUI_MenuSeparator.h index e7bd36c..42b3d1b 100644 --- a/utils/vgui/include/VGUI_MenuSeparator.h +++ b/utils/vgui/include/VGUI_MenuSeparator.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_MessageBox.h b/utils/vgui/include/VGUI_MessageBox.h index fa2d486..6596b47 100644 --- a/utils/vgui/include/VGUI_MessageBox.h +++ b/utils/vgui/include/VGUI_MessageBox.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_MiniApp.h b/utils/vgui/include/VGUI_MiniApp.h index c4a1142..39ce4fd 100644 --- a/utils/vgui/include/VGUI_MiniApp.h +++ b/utils/vgui/include/VGUI_MiniApp.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_MouseCode.h b/utils/vgui/include/VGUI_MouseCode.h index 1b7e92e..2de259d 100644 --- a/utils/vgui/include/VGUI_MouseCode.h +++ b/utils/vgui/include/VGUI_MouseCode.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -17,8 +17,8 @@ enum VGUIAPI MouseCode MOUSE_LEFT=0, MOUSE_RIGHT, MOUSE_MIDDLE, - MOUSE_LAST, + MOUSE_LAST }; } -#endif \ No newline at end of file +#endif diff --git a/utils/vgui/include/VGUI_Panel.h b/utils/vgui/include/VGUI_Panel.h index 20f8de4..912585e 100644 --- a/utils/vgui/include/VGUI_Panel.h +++ b/utils/vgui/include/VGUI_Panel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -28,6 +28,10 @@ TODO: #include #include #include +#include +#include +#include +#include namespace vgui { @@ -214,7 +218,7 @@ private: bool _paintBorderEnabled; bool _paintBackgroundEnabled; bool _paintEnabled; -friend class Panel; +//friend class Panel; friend class App; friend class SurfaceBase; friend class Image; diff --git a/utils/vgui/include/VGUI_Point.h b/utils/vgui/include/VGUI_Point.h new file mode 100644 index 0000000..deb585e --- /dev/null +++ b/utils/vgui/include/VGUI_Point.h @@ -0,0 +1,117 @@ +//========= Copyright © 1996-2001, Valve LLC, All rights reserved. ============ +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef VGUI_Point_H +#define VGUI_Point_H +#ifdef _WIN32 +#pragma once +#endif + +#include + +namespace vgui +{ + +//----------------------------------------------------------------------------- +// Purpose: Basic handler for a Points in 2 dimensions +// This class is fully inline +//----------------------------------------------------------------------------- +class Point +{ +public: + // constructors + Point() + { + SetPoint(0, 0); + } + Point(int x,int y) + { + SetPoint(x,y); + } + + void SetPoint(int x1, int y1) + { + x=x1; + y=y1; + } + + void GetPoint(int& x1,int& y1) const + { + x1 = x; + y1 = y; + + } + + bool operator == (Point &rhs) const + { + return ( x == rhs.x && y==rhs.y); + } + +private: + int x,y; +}; + +} + +#endif // VGUI_Point_H + + + +//## class Point +//## Point is a class to handle Points in VGUI. + +//## // The default Point is (0,0,0,0) +//## Point() +//## +//## // A Point may be created with x,yvalues. +//## Point(int x,int y) +//## +//## // Set the x,y components of the Point. +//## void SetPoint(int x1, int y1) +//## +//## // Get the position of the Point +//## void GetPoint(int& x1,int& y1) const +//## +//## // Point classes can be set equal to each other. +//## bool operator == (Point &rhs) const +//## +//## +//##
+//## +//## +//## Point() +//## Description: Default constructor. The default Point is (0,0,0,0) +//## +//## +//## Point(int x,int y) +//## Description: +//## A Point may be created with a x,y position. +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## +//## void SetPoint(int x1, int x1) +//## Description: +//## Set the position of the Point. +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## +//## void GetPoint(int& x1,int& y1) const +//## Description: +//## Get the x,y components of a Point +//## Arguments: +//## x - x position (horizontal axis) (0-65535) +//## y - y position (vertical axis) (0-65535) +//## +//## bool operator == (Point &rhs) const +//## Description: +//## Point classes can be set equal to each other. +//## +//## diff --git a/utils/vgui/include/VGUI_PopupMenu.h b/utils/vgui/include/VGUI_PopupMenu.h index 8d60092..93c1384 100644 --- a/utils/vgui/include/VGUI_PopupMenu.h +++ b/utils/vgui/include/VGUI_PopupMenu.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ProgressBar.h b/utils/vgui/include/VGUI_ProgressBar.h index e3d37b3..98e8ab4 100644 --- a/utils/vgui/include/VGUI_ProgressBar.h +++ b/utils/vgui/include/VGUI_ProgressBar.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_RadioButton.h b/utils/vgui/include/VGUI_RadioButton.h index 09a70d6..a2bffca 100644 --- a/utils/vgui/include/VGUI_RadioButton.h +++ b/utils/vgui/include/VGUI_RadioButton.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_RaisedBorder.h b/utils/vgui/include/VGUI_RaisedBorder.h index aaed5f6..57faef6 100644 --- a/utils/vgui/include/VGUI_RaisedBorder.h +++ b/utils/vgui/include/VGUI_RaisedBorder.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_RepaintSignal.h b/utils/vgui/include/VGUI_RepaintSignal.h index 87b96ab..ccef9cf 100644 --- a/utils/vgui/include/VGUI_RepaintSignal.h +++ b/utils/vgui/include/VGUI_RepaintSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -12,7 +12,8 @@ namespace vgui { - +class Panel; + class RepaintSignal { public: diff --git a/utils/vgui/include/VGUI_Scheme.h b/utils/vgui/include/VGUI_Scheme.h index cf19ef4..3ebd366 100644 --- a/utils/vgui/include/VGUI_Scheme.h +++ b/utils/vgui/include/VGUI_Scheme.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -31,7 +31,7 @@ public: sc_secondary1, sc_secondary2, sc_secondary3, - sc_last, + sc_last }; enum SchemeFont { @@ -40,7 +40,7 @@ public: sf_primary2, sf_primary3, sf_secondary1, - sf_last, + sf_last }; enum SchemeCursor { @@ -58,7 +58,7 @@ public: scu_sizeall, scu_no, scu_hand, - scu_last, + scu_last }; public: Scheme(); @@ -79,4 +79,4 @@ protected: } -#endif \ No newline at end of file +#endif diff --git a/utils/vgui/include/VGUI_ScrollBar.h b/utils/vgui/include/VGUI_ScrollBar.h index 6b753b3..45789e1 100644 --- a/utils/vgui/include/VGUI_ScrollBar.h +++ b/utils/vgui/include/VGUI_ScrollBar.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ScrollPanel.h b/utils/vgui/include/VGUI_ScrollPanel.h index 6012b7c..f12fc2b 100644 --- a/utils/vgui/include/VGUI_ScrollPanel.h +++ b/utils/vgui/include/VGUI_ScrollPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_Slider.h b/utils/vgui/include/VGUI_Slider.h index 0c1b8f4..176e90f 100644 --- a/utils/vgui/include/VGUI_Slider.h +++ b/utils/vgui/include/VGUI_Slider.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_StackLayout.h b/utils/vgui/include/VGUI_StackLayout.h index 1aacb64..f5c2ab2 100644 --- a/utils/vgui/include/VGUI_StackLayout.h +++ b/utils/vgui/include/VGUI_StackLayout.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_String.h b/utils/vgui/include/VGUI_String.h index 3d42758..5ea3bf6 100644 --- a/utils/vgui/include/VGUI_String.h +++ b/utils/vgui/include/VGUI_String.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -17,7 +17,7 @@ namespace vgui class VGUIAPI String { -friend class String; +//friend class String; private: diff --git a/utils/vgui/include/VGUI_Surface.h b/utils/vgui/include/VGUI_Surface.h index 19cd852..b10ba6a 100644 --- a/utils/vgui/include/VGUI_Surface.h +++ b/utils/vgui/include/VGUI_Surface.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -31,6 +31,7 @@ public: virtual void createPopup(Panel* embeddedPanel); virtual bool hasFocus(); virtual bool isWithin(int x,int y); + virtual void GetMousePos( int &x, int &y ); protected: virtual int createNewTextureID(void); virtual void drawSetColor(int r,int g,int b,int a); diff --git a/utils/vgui/include/VGUI_SurfaceBase.h b/utils/vgui/include/VGUI_SurfaceBase.h index 0765e8e..ee51a95 100644 --- a/utils/vgui/include/VGUI_SurfaceBase.h +++ b/utils/vgui/include/VGUI_SurfaceBase.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -44,6 +44,7 @@ public: virtual bool hasFocus()=0; virtual bool isWithin(int x,int y)=0; virtual int createNewTextureID(void)=0; + virtual void GetMousePos( int &x, int &y ) = 0; protected: virtual void addModeInfo(int wide,int tall,int bpp); protected: diff --git a/utils/vgui/include/VGUI_SurfaceGL.h b/utils/vgui/include/VGUI_SurfaceGL.h index 3678443..c6bacae 100644 --- a/utils/vgui/include/VGUI_SurfaceGL.h +++ b/utils/vgui/include/VGUI_SurfaceGL.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TabPanel.h b/utils/vgui/include/VGUI_TabPanel.h index 64083e3..5cc3516 100644 --- a/utils/vgui/include/VGUI_TabPanel.h +++ b/utils/vgui/include/VGUI_TabPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TablePanel.h b/utils/vgui/include/VGUI_TablePanel.h index 0e8b0e7..0c5eac2 100644 --- a/utils/vgui/include/VGUI_TablePanel.h +++ b/utils/vgui/include/VGUI_TablePanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TaskBar.h b/utils/vgui/include/VGUI_TaskBar.h index 3fe62c5..0300236 100644 --- a/utils/vgui/include/VGUI_TaskBar.h +++ b/utils/vgui/include/VGUI_TaskBar.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TextEntry.h b/utils/vgui/include/VGUI_TextEntry.h index 69ca712..09b13aa 100644 --- a/utils/vgui/include/VGUI_TextEntry.h +++ b/utils/vgui/include/VGUI_TextEntry.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TextGrid.h b/utils/vgui/include/VGUI_TextGrid.h index 972c01b..c2bde17 100644 --- a/utils/vgui/include/VGUI_TextGrid.h +++ b/utils/vgui/include/VGUI_TextGrid.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TextImage.h b/utils/vgui/include/VGUI_TextImage.h index a6e2e76..c17c699 100644 --- a/utils/vgui/include/VGUI_TextImage.h +++ b/utils/vgui/include/VGUI_TextImage.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TextPanel.h b/utils/vgui/include/VGUI_TextPanel.h index afe9710..858fb25 100644 --- a/utils/vgui/include/VGUI_TextPanel.h +++ b/utils/vgui/include/VGUI_TextPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TickSignal.h b/utils/vgui/include/VGUI_TickSignal.h index c4bdb51..54ae2e1 100644 --- a/utils/vgui/include/VGUI_TickSignal.h +++ b/utils/vgui/include/VGUI_TickSignal.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_ToggleButton.h b/utils/vgui/include/VGUI_ToggleButton.h index b2d7d89..1d854d5 100644 --- a/utils/vgui/include/VGUI_ToggleButton.h +++ b/utils/vgui/include/VGUI_ToggleButton.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_TreeFolder.h b/utils/vgui/include/VGUI_TreeFolder.h index d23e1b9..53bc849 100644 --- a/utils/vgui/include/VGUI_TreeFolder.h +++ b/utils/vgui/include/VGUI_TreeFolder.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // diff --git a/utils/vgui/include/VGUI_WizardPanel.h b/utils/vgui/include/VGUI_WizardPanel.h index 1c453cd..8a86f68 100644 --- a/utils/vgui/include/VGUI_WizardPanel.h +++ b/utils/vgui/include/VGUI_WizardPanel.h @@ -1,4 +1,4 @@ -//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ +//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============ // // Purpose: // @@ -10,6 +10,7 @@ #include #include +#include namespace vgui { diff --git a/utils/vgui/lib/win32_vc6/vgui.lib b/utils/vgui/lib/win32_vc6/vgui.lib index aff77160c68e81162d591b53579221dd23619ab5..671afa6c80ccbb18ef61f691416b5a94ddbca5f8 100644 GIT binary patch delta 64455 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 XjLeh9pU@AxV;CG)I!{ElFZX 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 diff --git a/wscript b/wscript index 13167ce..c515ac7 100644 --- a/wscript +++ b/wscript @@ -179,6 +179,12 @@ def configure(conf): '-Werror=bool-compare', '-Werror=bool-operation', '-Wstrict-aliasing', + '-Wno-attributes', + '-Wno-missing-pragmas', + '-Wno-overloaded-virtual', + '-Wno-unknown-pragmas', + '-Wno-write-strings', + '-std=gnu++98' ] c_compiler_optional_flags = [