2004-08-23 01:38:21 +00:00
# define PROGSUSED
struct edict_s ;
# include "progsint.h"
2005-05-22 13:47:54 +00:00
//#include "crc.h"
2020-07-19 01:38:42 +00:00
# include "qcc.h"
2004-08-23 01:38:21 +00:00
# ifdef _WIN32
//this is windows all files are written with this endian standard. we do this to try to get a little more speed.
# define NOENDIAN
# endif
2018-08-23 06:03:31 +00:00
# define qcc_iswhite(c) ((c) == ' ' || (c) == '\r' || (c) == '\n' || (c) == '\t' || (c) == '\v')
2017-04-29 02:45:21 +00:00
pbool ED_ParseEpair ( progfuncs_t * progfuncs , size_t qcptr , unsigned int fldofs , int fldtype , char * s ) ;
2004-08-23 01:38:21 +00:00
/*
= = = = = = = = = = = = = = = = =
2009-11-04 21:16:50 +00:00
QC_ClearEdict
2004-08-23 01:38:21 +00:00
Sets everything to NULL
= = = = = = = = = = = = = = = = =
*/
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
void PDECL QC_ClearEdict ( pubprogfuncs_t * ppf , struct edict_s * ed )
2004-08-23 01:38:21 +00:00
{
2016-02-15 06:01:17 +00:00
// progfuncs_t *progfuncs = (progfuncs_t*)ppf;
2009-11-04 21:16:50 +00:00
edictrun_t * e = ( edictrun_t * ) ed ;
2004-08-23 01:38:21 +00:00
int num = e - > entnum ;
2015-09-14 10:36:42 +00:00
memset ( e - > fields , 0 , e - > fieldsize ) ;
e - > ereftype = ER_ENTITY ;
2004-08-23 01:38:21 +00:00
e - > entnum = num ;
}
2021-05-27 11:34:15 +00:00
struct edict_s * PDECL ED_AllocIndex ( pubprogfuncs_t * ppf , unsigned int num , pbool object , size_t extrasize )
2008-05-11 12:55:53 +00:00
{
2021-05-27 11:34:15 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2008-05-11 12:55:53 +00:00
edictrun_t * e ;
2021-05-27 11:34:15 +00:00
unsigned int fields_size ;
if ( num > = prinst . maxedicts )
{
externs - > Sys_Error ( " ED_AllocIndex: index %u exceeds limit of %u " , num , prinst . maxedicts ) ;
return NULL ;
}
if ( ! object )
{
while ( sv_num_edicts < num )
{ //fill in any holes
e = ( edictrun_t * ) EDICT_NUM ( progfuncs , sv_num_edicts ) ;
if ( ! e )
{
e = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , sv_num_edicts , object , extrasize ) ;
e - > ereftype = ER_FREE ;
}
sv_num_edicts + + ;
}
if ( num > = sv_num_edicts )
sv_num_edicts = num + 1 ;
}
2015-09-14 10:36:42 +00:00
e = prinst . edicttable [ num ] ;
if ( ! e )
{
e = ( void * ) externs - > memalloc ( externs - > edictsize ) ;
prinst . edicttable [ num ] = e ;
memset ( e , 0 , externs - > edictsize ) ;
}
2021-05-27 11:34:15 +00:00
fields_size = object ? 0 : prinst . fields_size ;
fields_size + = extrasize ;
2015-09-14 10:36:42 +00:00
if ( e - > fieldsize ! = fields_size )
{
if ( e - > fields )
progfuncs - > funcs . AddressableFree ( & progfuncs - > funcs , e - > fields ) ;
e - > fields = progfuncs - > funcs . AddressableAlloc ( & progfuncs - > funcs , fields_size ) ;
2016-10-22 07:06:51 +00:00
if ( ! e - > fields )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " ED_Alloc: Unable to allocate more field space " ) ;
2015-09-14 10:36:42 +00:00
e - > fieldsize = fields_size ;
// e->fields = PRAddressableExtend(progfuncs, NULL, fields_size, 0);
}
2008-05-11 12:55:53 +00:00
e - > entnum = num ;
2015-09-14 10:36:42 +00:00
memset ( e - > fields , 0 , e - > fieldsize ) ;
2008-05-11 12:55:53 +00:00
2015-09-14 10:36:42 +00:00
e - > ereftype = object ? ER_OBJECT : ER_ENTITY ;
2021-05-27 11:34:15 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) e , false ) ;
return ( struct edict_s * ) e ;
2008-05-11 12:55:53 +00:00
}
2004-08-23 01:38:21 +00:00
/*
= = = = = = = = = = = = = = = = =
ED_Alloc
Either finds a free edict , or allocates a new one .
Try to avoid reusing an entity that was recently freed , because it
can cause the client to think the entity morphed into something else
instead of being removed and recreated , which can cause interpolated
angles and bad trails .
= = = = = = = = = = = = = = = = =
*/
2015-09-14 10:36:42 +00:00
struct edict_s * PDECL ED_Alloc ( pubprogfuncs_t * ppf , pbool object , size_t extrasize )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2005-10-07 16:27:20 +00:00
unsigned int i ;
2004-08-23 01:38:21 +00:00
edictrun_t * e ;
2015-09-14 10:36:42 +00:00
if ( object )
{
2021-05-27 11:34:15 +00:00
//objects are allocated at the end (won't be networked, so this reduces issues with users on old protocols).
//also they're potentially higher than num_edicts, which is handy.
2015-09-14 10:36:42 +00:00
for ( i = prinst . maxedicts - 1 ; i > 0 ; i - - )
{
e = ( edictrun_t * ) EDICT_NUM ( progfuncs , i ) ;
// the first couple seconds of server time can involve a lot of
// freeing and allocating, so relax the replacement policy
if ( ! e | | ( e - > ereftype = = ER_FREE & & ( e - > freetime < 2 | | * externs - > gametime - e - > freetime > 0.5 ) ) )
2021-05-27 11:34:15 +00:00
return ED_AllocIndex ( & progfuncs - > funcs , i , object , extrasize ) ;
2015-09-14 10:36:42 +00:00
}
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " ED_Alloc: no free edicts (max is %i) " , prinst . maxedicts ) ;
2015-09-14 10:36:42 +00:00
}
2004-08-23 01:38:21 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
//define this to wastefully allocate extra ents, to test network capabilities.
# define STEP 1 //((i <= 32)?1:8)
for ( i = 0 ; i < sv_num_edicts ; i + = STEP )
2004-08-23 01:38:21 +00:00
{
e = ( edictrun_t * ) EDICT_NUM ( progfuncs , i ) ;
// the first couple seconds of server time can involve a lot of
// freeing and allocating, so relax the replacement policy
2015-09-14 10:36:42 +00:00
if ( ! e | | ( e - > ereftype = = ER_FREE & & ( e - > freetime < 2 | | * externs - > gametime - e - > freetime > 0.5 ) ) )
2021-05-27 11:34:15 +00:00
return ED_AllocIndex ( & progfuncs - > funcs , i , object , extrasize ) ;
2004-08-23 01:38:21 +00:00
}
2005-10-09 21:59:54 +00:00
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( i > = prinst . maxedicts - 1 ) //try again, but use timed out ents.
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 0 ; i < sv_num_edicts ; i + = STEP )
2004-08-23 01:38:21 +00:00
{
e = ( edictrun_t * ) EDICT_NUM ( progfuncs , i ) ;
// the first couple seconds of server time can involve a lot of
// freeing and allocating, so relax the replacement policy
2015-09-14 10:36:42 +00:00
if ( ! e | | ( e - > ereftype = = ER_FREE ) )
2021-05-27 11:34:15 +00:00
return ED_AllocIndex ( & progfuncs - > funcs , i , object , extrasize ) ;
2004-08-23 01:38:21 +00:00
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( i > = prinst . maxedicts - 2 )
2006-09-18 22:56:14 +00:00
{
2015-02-02 08:01:53 +00:00
PR_RunWarning ( & progfuncs - > funcs , " Running out of edicts \n " ) ;
2006-09-18 22:56:14 +00:00
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( i > = prinst . maxedicts - 1 )
2004-12-08 04:14:52 +00:00
{
2015-11-18 07:37:39 +00:00
size_t size ;
2004-12-08 04:14:52 +00:00
char * buf ;
2013-08-21 06:55:54 +00:00
buf = PR_SaveEnts ( & progfuncs - > funcs , NULL , & size , 0 , 0 ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs - > funcs . parms - > WriteFile ( " edalloc.dump " , buf , size ) ;
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " ED_Alloc: no free edicts (max is %i) " , prinst . maxedicts ) ;
2004-12-08 04:14:52 +00:00
}
2004-08-23 01:38:21 +00:00
}
2005-10-09 21:59:54 +00:00
2021-05-27 11:34:15 +00:00
return ED_AllocIndex ( & progfuncs - > funcs , i , object , extrasize ) ;
2004-08-23 01:38:21 +00:00
}
/*
= = = = = = = = = = = = = = = = =
ED_Free
Marks the edict as free
FIXME : walk all entities and NULL out references to this entity
= = = = = = = = = = = = = = = = =
*/
2020-02-11 18:06:10 +00:00
void PDECL ED_Free ( pubprogfuncs_t * ppf , struct edict_s * ed , pbool instant )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2004-08-23 01:38:21 +00:00
edictrun_t * e = ( edictrun_t * ) ed ;
// SV_UnlinkEdict (ed); // unlink from world bsp
2015-09-14 10:36:42 +00:00
if ( e - > ereftype = = ER_FREE ) //this happens on start.bsp where an onlyregistered trigger killtargets itself (when all of this sort die after 1 trigger anyway).
2004-08-23 01:38:21 +00:00
{
2019-12-10 14:50:47 +00:00
if ( prinst . pr_depth )
2020-01-09 15:35:40 +00:00
externs - > Printf ( " Tried to free free entity within %s \n " , prinst . pr_xfunction - > s_name + progfuncs - > funcs . stringtable ) ;
2004-11-08 11:45:14 +00:00
else
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Engine tried to free free entity \n " ) ;
2004-08-23 01:38:21 +00:00
// if (developer.value == 1)
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
// progfuncs->funcs.pr_trace = true;
2004-08-23 01:38:21 +00:00
return ;
}
if ( externs - > entcanfree )
if ( ! externs - > entcanfree ( ed ) ) //can stop an ent from being freed.
return ;
2015-09-14 10:36:42 +00:00
e - > ereftype = ER_FREE ;
2020-02-11 18:06:10 +00:00
e - > freetime = instant ? 0 : ( float ) * externs - > gametime ;
2004-08-23 01:38:21 +00:00
/*
ed - > v . model = 0 ;
ed - > v . takedamage = 0 ;
ed - > v . modelindex = 0 ;
ed - > v . colormap = 0 ;
ed - > v . skin = 0 ;
ed - > v . frame = 0 ;
VectorCopy ( vec3_origin , ed - > v . origin ) ;
VectorCopy ( vec3_origin , ed - > v . angles ) ;
ed - > v . nextthink = - 1 ;
ed - > v . solid = 0 ;
2005-10-09 21:59:54 +00:00
*/
2004-08-23 01:38:21 +00:00
}
//===========================================================================
/*
= = = = = = = = = = = =
ED_GlobalAtOfs
= = = = = = = = = = = =
*/
ddef16_t * ED_GlobalAtOfs16 ( progfuncs_t * progfuncs , int ofs )
{
ddef16_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
def = & pr_globaldefs16 [ i ] ;
if ( def - > ofs = = ofs )
return def ;
}
return NULL ;
}
ddef32_t * ED_GlobalAtOfs32 ( progfuncs_t * progfuncs , unsigned int ofs )
{
ddef32_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
def = & pr_globaldefs32 [ i ] ;
if ( def - > ofs = = ofs )
return def ;
}
return NULL ;
}
/*
= = = = = = = = = = = =
ED_FieldAtOfs
= = = = = = = = = = = =
*/
fdef_t * ED_FieldAtOfs ( progfuncs_t * progfuncs , unsigned int ofs )
{
// ddef_t *def;
unsigned int i ;
2005-10-09 21:59:54 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 0 ; i < prinst . numfields ; i + + )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( prinst . field [ i ] . ofs = = ofs )
return & prinst . field [ i ] ;
2004-08-23 01:38:21 +00:00
}
return NULL ;
}
2014-05-30 03:57:30 +00:00
fdef_t * ED_ClassFieldAtOfs ( progfuncs_t * progfuncs , unsigned int ofs , const char * classname )
{
int classnamelen = strlen ( classname ) ;
unsigned int j ;
2018-10-11 10:31:23 +00:00
const char * mname ;
2014-05-30 03:57:30 +00:00
for ( j = 0 ; j < prinst . numfields ; j + + )
{
if ( prinst . field [ j ] . ofs = = ofs )
{
mname = prinst . field [ j ] . name ;
if ( ! strncmp ( mname , classname , classnamelen ) & & mname [ classnamelen ] = = ' : ' )
{
//okay, we have a match...
return & prinst . field [ j ] ;
}
}
}
return ED_FieldAtOfs ( progfuncs , ofs ) ;
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
fdef_t * PDECL ED_FieldInfo ( pubprogfuncs_t * ppf , unsigned int * count )
2012-11-27 03:23:19 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
* count = prinst . numfields ;
return prinst . field ;
2012-11-27 03:23:19 +00:00
}
2004-08-23 01:38:21 +00:00
/*
= = = = = = = = = = = =
ED_FindField
= = = = = = = = = = = =
*/
2013-11-21 23:02:28 +00:00
fdef_t * ED_FindField ( progfuncs_t * progfuncs , const char * name )
2004-08-23 01:38:21 +00:00
{
unsigned int i ;
2005-10-09 21:59:54 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 0 ; i < prinst . numfields ; i + + )
2005-10-09 21:59:54 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( prinst . field [ i ] . name , name ) )
return & prinst . field [ i ] ;
2004-08-23 01:38:21 +00:00
}
return NULL ;
}
/*
= = = = = = = = = = = =
ED_FindGlobal
= = = = = = = = = = = =
*/
2018-10-11 10:31:23 +00:00
ddef16_t * ED_FindGlobal16 ( progfuncs_t * progfuncs , const char * name )
2004-08-23 01:38:21 +00:00
{
ddef16_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( i = 1 ; i < pr_progs - > numglobaldefs ; i + + )
{
def = & pr_globaldefs16 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
return def ;
}
return NULL ;
}
2018-10-11 10:31:23 +00:00
ddef32_t * ED_FindGlobal32 ( progfuncs_t * progfuncs , const char * name )
2004-08-23 01:38:21 +00:00
{
ddef32_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( i = 1 ; i < pr_progs - > numglobaldefs ; i + + )
{
def = & pr_globaldefs32 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
return def ;
}
return NULL ;
}
unsigned int ED_FindGlobalOfs ( progfuncs_t * progfuncs , char * name )
{
ddef16_t * d16 ;
ddef32_t * d32 ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_KKQWSV :
case PST_DEFAULT :
2004-08-23 01:38:21 +00:00
d16 = ED_FindGlobal16 ( progfuncs , name ) ;
return d16 ? d16 - > ofs : 0 ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
d32 = ED_FindGlobal32 ( progfuncs , name ) ;
return d32 ? d32 - > ofs : 0 ;
2020-07-01 05:32:21 +00:00
default :
externs - > Sys_Error ( " ED_FindGlobalOfs - bad struct type " ) ;
2004-08-23 01:38:21 +00:00
}
return 0 ;
}
2018-10-11 10:31:23 +00:00
ddef16_t * ED_FindGlobalFromProgs16 ( progfuncs_t * progfuncs , progstate_t * ps , const char * name )
2004-08-23 01:38:21 +00:00
{
ddef16_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
for ( i = 1 ; i < ps - > progs - > numglobaldefs ; i + + )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
def = & ps - > globaldefs16 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
return def ;
}
return NULL ;
}
2018-10-11 10:31:23 +00:00
ddef32_t * ED_FindGlobalFromProgs32 ( progfuncs_t * progfuncs , progstate_t * ps , const char * name )
2004-08-23 01:38:21 +00:00
{
ddef32_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
for ( i = 1 ; i < ps - > progs - > numglobaldefs ; i + + )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
def = & ps - > globaldefs32 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
return def ;
}
return NULL ;
}
2018-10-11 10:31:23 +00:00
ddef16_t * ED_FindTypeGlobalFromProgs16 ( progfuncs_t * progfuncs , progstate_t * ps , const char * name , int type )
2004-08-23 01:38:21 +00:00
{
ddef16_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
for ( i = 1 ; i < ps - > progs - > numglobaldefs ; i + + )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
def = & ps - > globaldefs16 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
if ( ps - > types )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
if ( ps - > types [ def - > type & ~ DEF_SAVEGLOBAL ] . type ! = type )
2004-08-23 01:38:21 +00:00
continue ;
}
else if ( ( def - > type & ( ~ DEF_SAVEGLOBAL ) ) ! = type )
continue ;
return def ;
}
}
return NULL ;
}
2018-10-11 10:31:23 +00:00
ddef32_t * ED_FindTypeGlobalFromProgs32 ( progfuncs_t * progfuncs , progstate_t * ps , const char * name , int type )
2004-08-23 01:38:21 +00:00
{
ddef32_t * def ;
unsigned int i ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
for ( i = 1 ; i < ps - > progs - > numglobaldefs ; i + + )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
def = & ps - > globaldefs32 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( def - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
if ( ps - > types )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
if ( ps - > types [ def - > type & ~ DEF_SAVEGLOBAL ] . type ! = type )
2004-08-23 01:38:21 +00:00
continue ;
}
else if ( ( def - > type & ( ~ DEF_SAVEGLOBAL ) ) ! = ( unsigned ) type )
continue ;
return def ;
}
}
return NULL ;
}
2018-10-11 10:31:23 +00:00
unsigned int * ED_FindGlobalOfsFromProgs ( progfuncs_t * progfuncs , progstate_t * ps , char * name , int type )
2004-08-23 01:38:21 +00:00
{
ddef16_t * def16 ;
ddef32_t * def32 ;
static unsigned int pos ;
2018-10-11 10:31:23 +00:00
switch ( ps - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2018-10-11 10:31:23 +00:00
def16 = ED_FindTypeGlobalFromProgs16 ( progfuncs , ps , name , type ) ;
2004-08-23 01:38:21 +00:00
if ( ! def16 )
return NULL ;
pos = def16 - > ofs ;
return & pos ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2018-10-11 10:31:23 +00:00
def32 = ED_FindTypeGlobalFromProgs32 ( progfuncs , ps , name , type ) ;
2004-08-23 01:38:21 +00:00
if ( ! def32 )
return NULL ;
2005-10-09 21:59:54 +00:00
return & def32 - > ofs ;
2020-07-01 05:32:21 +00:00
default :
externs - > Sys_Error ( " ED_FindGlobalOfsFromProgs - bad struct type " ) ;
2004-08-23 01:38:21 +00:00
}
return 0 ;
}
/*
= = = = = = = = = = = =
ED_FindFunction
= = = = = = = = = = = =
*/
2014-08-03 14:47:47 +00:00
mfunction_t * ED_FindFunction ( progfuncs_t * progfuncs , const char * name , progsnum_t * prnum , progsnum_t fromprogs )
2004-08-23 01:38:21 +00:00
{
2014-08-03 14:47:47 +00:00
mfunction_t * func ;
2004-08-23 01:38:21 +00:00
unsigned int i ;
char * sep ;
2005-10-09 21:59:54 +00:00
progsnum_t pnum ;
2004-08-23 01:38:21 +00:00
if ( prnum )
{
sep = strchr ( name , ' : ' ) ;
if ( sep )
{
pnum = atoi ( name ) ;
name = sep + 1 ;
}
else
{
if ( fromprogs > = 0 )
pnum = fromprogs ;
else
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
pnum = prinst . pr_typecurrent ;
2004-08-23 01:38:21 +00:00
}
* prnum = pnum ;
}
else
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
pnum = prinst . pr_typecurrent ;
2004-08-23 01:38:21 +00:00
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ( unsigned ) pnum > ( unsigned ) prinst . maxprogs )
2005-10-09 21:59:54 +00:00
{
2020-06-27 19:32:49 +00:00
externs - > Printf ( " Progsnum % " pPRIi " out of bounds \n " , pnum ) ;
2005-10-09 21:59:54 +00:00
return NULL ;
}
2004-08-23 01:38:21 +00:00
if ( ! pr_progstate [ pnum ] . progs )
return NULL ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( i = 1 ; i < pr_progstate [ pnum ] . progs - > numfunctions ; i + + )
{
func = & pr_progstate [ pnum ] . functions [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( func - > s_name + progfuncs - > funcs . stringtable , name ) )
2004-08-23 01:38:21 +00:00
return func ;
}
return NULL ;
}
/*
= = = = = = = = = = = =
PR_ValueString
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
Returns a string describing * data in a human - readable type specific manner
2013-08-21 06:55:54 +00:00
if verbose , contains entity field listing etc too
2004-08-23 01:38:21 +00:00
= = = = = = = = = = = = =
*/
2013-08-21 06:55:54 +00:00
char * PR_ValueString ( progfuncs_t * progfuncs , etype_t type , eval_t * val , pbool verbose )
2004-08-23 01:38:21 +00:00
{
2013-03-12 22:40:16 +00:00
static char line [ 4096 ] ;
2004-08-23 01:38:21 +00:00
fdef_t * fielddef ;
2014-08-03 14:47:47 +00:00
mfunction_t * f ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
# ifdef DEF_SAVEGLOBAL
type & = ~ DEF_SAVEGLOBAL ;
# endif
2011-12-05 15:23:40 +00:00
if ( current_progstate & & pr_types )
2004-08-23 01:38:21 +00:00
type = pr_types [ type ] . type ;
2015-04-14 12:24:05 +00:00
if ( ! val )
type = ev_void ;
2004-08-23 01:38:21 +00:00
switch ( type )
{
case ev_struct :
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " struct " ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_union :
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " union " ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_string :
2015-01-21 18:18:37 +00:00
# ifndef QCGC
2015-01-08 13:09:20 +00:00
if ( ( ( unsigned int ) val - > string & STRING_SPECMASK ) = = STRING_TEMP )
return " <Stale Temporary String> " ;
else
2015-01-21 18:18:37 +00:00
# endif
2015-01-08 13:09:20 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %s " , PR_StringToNative ( & progfuncs - > funcs , val - > string ) ) ;
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
case ev_entity :
2011-05-20 04:10:46 +00:00
fielddef = ED_FindField ( progfuncs , " classname " ) ;
2013-06-05 23:58:20 +00:00
if ( fielddef & & ( unsigned ) val - > edict < ( unsigned ) sv_num_edicts )
2011-05-20 04:10:46 +00:00
{
edictrun_t * ed ;
string_t * v ;
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , val - > edict ) ;
v = ( string_t * ) ( ( char * ) edvars ( ed ) + fielddef - > ofs * 4 ) ;
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " entity %i(%s) " , val - > edict , PR_StringToNative ( & progfuncs - > funcs , * v ) ) ;
2011-05-20 04:10:46 +00:00
}
else
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " entity %i " , val - > edict ) ;
2013-09-26 14:36:52 +00:00
if ( verbose & & ( unsigned ) val - > edict < ( unsigned ) sv_num_edicts )
2013-08-21 06:55:54 +00:00
{
struct edict_s * ed = EDICT_NUM ( progfuncs , val - > edict ) ;
2015-11-18 07:37:39 +00:00
size_t size = strlen ( line ) ;
2013-08-21 06:55:54 +00:00
if ( ed )
PR_SaveEnt ( & progfuncs - > funcs , line , & size , sizeof ( line ) , ed ) ;
}
2004-08-23 01:38:21 +00:00
break ;
case ev_function :
if ( ! val - > function )
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " NULL function " ) ;
2004-08-23 01:38:21 +00:00
else
{
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ( val - > function & 0xff000000 ) > > 24 > = prinst . maxprogs | | ! pr_progstate [ ( val - > function & 0xff000000 ) > > 24 ] . functions )
2020-06-27 19:32:49 +00:00
QC_snprintfz ( line , sizeof ( line ) , " Bad function % " pPRIi " :% " pPRIi " " , ( val - > function & 0xff000000 ) > > 24 , val - > function & ~ 0xff000000 ) ;
2004-08-23 01:38:21 +00:00
else
{
2010-07-11 02:22:39 +00:00
if ( ( val - > function & ~ 0xff000000 ) > = pr_progs - > numfunctions )
2020-06-27 19:32:49 +00:00
QC_snprintfz ( line , sizeof ( line ) , " bad function % " pPRIi " :% " pPRIi " \n " , ( val - > function & 0xff000000 ) > > 24 , val - > function & ~ 0xff000000 ) ;
2010-07-11 02:22:39 +00:00
else
{
f = pr_progstate [ ( val - > function & 0xff000000 ) > > 24 ] . functions + ( val - > function & ~ 0xff000000 ) ;
2020-06-27 19:32:49 +00:00
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIi " :%s() " , ( val - > function & 0xff000000 ) > > 24 , f - > s_name + progfuncs - > funcs . stringtable ) ;
2010-07-11 02:22:39 +00:00
}
2004-08-23 01:38:21 +00:00
}
}
break ;
case ev_field :
2013-04-08 03:51:21 +00:00
fielddef = ED_FieldAtOfs ( progfuncs , val - > _int + progfuncs - > funcs . fieldadjust ) ;
2006-01-11 22:22:14 +00:00
if ( ! fielddef )
2015-01-02 05:20:56 +00:00
QC_snprintfz ( line , sizeof ( line ) , " .??? (#%i) " , val - > _int ) ;
2006-01-11 22:22:14 +00:00
else
2015-01-02 05:20:56 +00:00
QC_snprintfz ( line , sizeof ( line ) , " .%s (#%i) " , fielddef - > name , val - > _int ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_void :
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " void type " ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_float :
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %g " , val - > _float ) ;
2004-08-23 01:38:21 +00:00
break ;
2020-09-29 07:09:01 +00:00
case ev_double :
QC_snprintfz ( line , sizeof ( line ) , " %g " , val - > _double ) ;
break ;
2004-08-23 01:38:21 +00:00
case ev_integer :
2020-09-29 07:09:01 +00:00
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIi , val - > _int ) ;
break ;
case ev_uint :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIu , val - > _uint ) ;
break ;
case ev_int64 :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIi64 , val - > _int64 ) ;
break ;
case ev_uint64 :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIu64 , val - > _uint64 ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_vector :
2013-08-21 06:55:54 +00:00
QC_snprintfz ( line , sizeof ( line ) , " '%g %g %g' " , val - > _vector [ 0 ] , val - > _vector [ 1 ] , val - > _vector [ 2 ] ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_pointer :
2013-12-17 22:45:37 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %#x " , val - > _int ) ;
2004-08-23 01:38:21 +00:00
{
2005-03-28 00:11:59 +00:00
// int entnum;
// int valofs;
//FIXME: :/
// entnum = ((qbyte *)val->edict - (qbyte *)sv_edicts) / pr_edict_size;
// valofs = (int *)val->edict - (int *)edvars(EDICT_NUM(progfuncs, entnum));
// fielddef = ED_FieldAtOfs (progfuncs, valofs );
2013-12-17 22:45:37 +00:00
// if (fielddef)
2005-03-28 00:11:59 +00:00
// sprintf(line, "ent%i.%s", entnum, fielddef->s_name);
2004-08-23 01:38:21 +00:00
}
break ;
2015-01-21 18:18:37 +00:00
case ev_accessor :
2015-08-07 17:49:49 +00:00
QC_snprintfz ( line , sizeof ( line ) , " (accessor) " ) ;
2015-01-21 18:18:37 +00:00
break ;
2004-08-23 01:38:21 +00:00
default :
2015-01-21 18:18:37 +00:00
QC_snprintfz ( line , sizeof ( line ) , " (bad type %i) " , type ) ;
2004-08-23 01:38:21 +00:00
break ;
}
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
return line ;
}
/*
= = = = = = = = = = = =
PR_UglyValueString
Returns a string describing * data in a type specific manner
Easier to parse than PR_ValueString
= = = = = = = = = = = = =
*/
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
char * PDECL PR_UglyValueString ( pubprogfuncs_t * ppf , etype_t type , eval_t * val )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2013-03-12 22:40:16 +00:00
static char line [ 4096 ] ;
2005-10-09 21:59:54 +00:00
fdef_t * fielddef ;
2014-08-03 14:47:47 +00:00
mfunction_t * f ;
2005-07-01 19:23:00 +00:00
int i , j ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
# ifdef DEF_SAVEGLOBAL
type & = ~ DEF_SAVEGLOBAL ;
# endif
2011-12-05 15:23:40 +00:00
// if (pr_types)
// type = pr_types[type].type;
2004-08-23 01:38:21 +00:00
switch ( type )
{
case ev_struct :
sprintf ( line , " structures cannot yet be saved " ) ;
2005-10-09 21:59:54 +00:00
break ;
2004-08-23 01:38:21 +00:00
case ev_union :
sprintf ( line , " unions cannot yet be saved " ) ;
break ;
case ev_string :
2008-11-09 22:29:28 +00:00
{
char * outs = line ;
int outb = sizeof ( line ) - 2 ;
2015-01-08 13:09:20 +00:00
const char * ins ;
2015-01-21 18:18:37 +00:00
# ifndef QCGC
2015-01-08 13:09:20 +00:00
if ( ( ( unsigned int ) val - > string & STRING_SPECMASK ) = = STRING_TEMP )
return " <Stale Temporary String> " ;
else
2015-01-21 18:18:37 +00:00
# endif
2015-01-08 13:09:20 +00:00
ins = PR_StringToNative ( & progfuncs - > funcs , val - > string ) ;
2008-11-09 22:29:28 +00:00
//markup the output string.
while ( * ins & & outb > 0 )
{
switch ( * ins )
{
case ' \n ' :
* outs + + = ' \\ ' ;
* outs + + = ' n ' ;
ins + + ;
outb - = 2 ;
break ;
case ' \" ' :
* outs + + = ' \\ ' ;
* outs + + = ' " ' ;
ins + + ;
outb - = 2 ;
break ;
case ' \\ ' :
* outs + + = ' \\ ' ;
* outs + + = ' \\ ' ;
ins + + ;
outb - = 2 ;
break ;
default :
* outs + + = * ins + + ;
outb - - ;
break ;
}
}
* outs = 0 ;
}
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
case ev_entity :
2005-05-13 10:42:48 +00:00
sprintf ( line , " %i " , val - > _int ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_function :
2005-07-01 19:23:00 +00:00
i = ( val - > function & 0xff000000 ) > > 24 ; //progs number
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ( unsigned ) i > = prinst . maxprogs | | ! pr_progstate [ ( unsigned ) i ] . progs )
2020-06-27 19:32:49 +00:00
sprintf ( line , " BAD FUNCTION INDEX: %# " pPRIx " " , val - > function ) ;
2004-08-23 01:38:21 +00:00
else
{
2005-07-01 19:23:00 +00:00
j = ( val - > function & ~ 0xff000000 ) ; //function number
2008-11-09 22:29:28 +00:00
if ( ( unsigned ) j > = pr_progstate [ ( unsigned ) i ] . progs - > numfunctions )
2005-07-01 19:23:00 +00:00
sprintf ( line , " %i:%s " , i , " CORRUPT FUNCTION POINTER " ) ;
else
{
2005-10-07 16:27:20 +00:00
f = pr_progstate [ ( unsigned ) i ] . functions + j ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
sprintf ( line , " %i:%s " , i , f - > s_name + progfuncs - > funcs . stringtable ) ;
2005-07-01 19:23:00 +00:00
}
2004-08-23 01:38:21 +00:00
}
break ;
case ev_field :
2017-08-14 16:38:44 +00:00
fielddef = ED_FieldAtOfs ( progfuncs , val - > _int + progfuncs - > funcs . fieldadjust ) ;
if ( fielddef )
sprintf ( line , " %s " , fielddef - > name ) ;
else
sprintf ( line , " bad field %i " , type ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_void :
sprintf ( line , " void " ) ;
break ;
case ev_float :
if ( val - > _float = = ( int ) val - > _float )
sprintf ( line , " %i " , ( int ) val - > _float ) ; //an attempt to cut down on the number of .000000 vars..
else
sprintf ( line , " %f " , val - > _float ) ;
break ;
2020-09-29 07:09:01 +00:00
case ev_double :
if ( val - > _double = = ( pint64_t ) val - > _double )
sprintf ( line , " % " pPRIi64 , ( pint64_t ) val - > _double ) ; //an attempt to cut down on the number of .000000 vars..
else
sprintf ( line , " %f " , val - > _double ) ;
break ;
2004-08-23 01:38:21 +00:00
case ev_integer :
2020-09-29 07:09:01 +00:00
sprintf ( line , " % " pPRIi , val - > _int ) ;
break ;
case ev_uint :
sprintf ( line , " % " pPRIu , val - > _uint ) ;
break ;
case ev_int64 :
sprintf ( line , " % " pPRIi64 , val - > _int64 ) ;
break ;
case ev_uint64 :
sprintf ( line , " % " pPRIu64 , val - > _int64 ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_vector :
2005-11-29 13:30:20 +00:00
if ( val - > _vector [ 0 ] = = ( int ) val - > _vector [ 0 ] & & val - > _vector [ 1 ] = = ( int ) val - > _vector [ 1 ] & & val - > _vector [ 2 ] = = ( int ) val - > _vector [ 2 ] )
sprintf ( line , " %i %i %i " , ( int ) val - > _vector [ 0 ] , ( int ) val - > _vector [ 1 ] , ( int ) val - > _vector [ 2 ] ) ;
2004-08-23 01:38:21 +00:00
else
2015-01-21 18:18:37 +00:00
sprintf ( line , " %g %g %g " , val - > _vector [ 0 ] , val - > _vector [ 1 ] , val - > _vector [ 2 ] ) ;
2004-08-23 01:38:21 +00:00
break ;
2013-12-17 22:45:37 +00:00
case ev_pointer :
QC_snprintfz ( line , sizeof ( line ) , " %#x " , val - > _int ) ;
break ;
2004-08-23 01:38:21 +00:00
default :
sprintf ( line , " bad type %i " , type ) ;
break ;
}
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
return line ;
}
2007-10-05 18:08:47 +00:00
//compatible with Q1 (for savegames)
2004-08-23 01:38:21 +00:00
char * PR_UglyOldValueString ( progfuncs_t * progfuncs , etype_t type , eval_t * val )
{
2013-03-12 22:40:16 +00:00
static char line [ 4096 ] ;
2005-10-09 21:59:54 +00:00
fdef_t * fielddef ;
2014-08-03 14:47:47 +00:00
mfunction_t * f ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
# ifdef DEF_SAVEGLOBAL
type & = ~ DEF_SAVEGLOBAL ;
# endif
if ( pr_types )
type = pr_types [ type ] . type ;
switch ( type )
{
case ev_struct :
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " structures cannot yet be saved " ) ;
2005-10-09 21:59:54 +00:00
break ;
2004-08-23 01:38:21 +00:00
case ev_union :
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " unions cannot yet be saved " ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_string :
2014-03-31 17:06:41 +00:00
//FIXME: we should probably add markup. vanilla does _not_, so we can expect problems reloading anyway.
QC_snprintfz ( line , sizeof ( line ) , " %s " , PR_StringToNative ( & progfuncs - > funcs , val - > string ) ) ;
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
case ev_entity :
2018-04-06 17:21:15 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %i " , val - > edict ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_function :
f = pr_progstate [ ( val - > function & 0xff000000 ) > > 24 ] . functions + ( val - > function & ~ 0xff000000 ) ;
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %s " , f - > s_name + progfuncs - > funcs . stringtable ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_field :
2017-08-14 16:38:44 +00:00
fielddef = ED_FieldAtOfs ( progfuncs , val - > _int + progfuncs - > funcs . fieldadjust ) ;
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %s " , fielddef - > name ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_void :
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " void " ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_float :
if ( val - > _float = = ( int ) val - > _float )
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %i " , ( int ) val - > _float ) ; //an attempt to cut down on the number of .000000 vars..
2004-08-23 01:38:21 +00:00
else
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %f " , val - > _float ) ;
2004-08-23 01:38:21 +00:00
break ;
2020-09-29 07:09:01 +00:00
case ev_double :
if ( val - > _double = = ( int ) val - > _double )
QC_snprintfz ( line , sizeof ( line ) , " %i " , ( int ) val - > _double ) ; //an attempt to cut down on the number of .000000 vars..
else
QC_snprintfz ( line , sizeof ( line ) , " %f " , val - > _double ) ;
break ;
2004-08-23 01:38:21 +00:00
case ev_integer :
2020-09-29 07:09:01 +00:00
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIi , val - > _int ) ;
break ;
case ev_uint :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIu , val - > _uint ) ;
break ;
case ev_int64 :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIi64 , val - > _int64 ) ;
break ;
case ev_uint64 :
QC_snprintfz ( line , sizeof ( line ) , " % " pPRIu64 , val - > _uint64 ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_vector :
2005-11-29 13:30:20 +00:00
if ( val - > _vector [ 0 ] = = ( int ) val - > _vector [ 0 ] & & val - > _vector [ 1 ] = = ( int ) val - > _vector [ 1 ] & & val - > _vector [ 2 ] = = ( int ) val - > _vector [ 2 ] )
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %i %i %i " , ( int ) val - > _vector [ 0 ] , ( int ) val - > _vector [ 1 ] , ( int ) val - > _vector [ 2 ] ) ;
2004-08-23 01:38:21 +00:00
else
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " %f %f %f " , val - > _vector [ 0 ] , val - > _vector [ 1 ] , val - > _vector [ 2 ] ) ;
2005-10-09 21:59:54 +00:00
break ;
2013-12-17 22:45:37 +00:00
case ev_pointer :
QC_snprintfz ( line , sizeof ( line ) , " %#x " , val - > _int ) ;
2004-08-23 01:38:21 +00:00
break ;
default :
2014-03-31 17:06:41 +00:00
QC_snprintfz ( line , sizeof ( line ) , " bad type %i " , type ) ;
2004-08-23 01:38:21 +00:00
break ;
}
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
return line ;
}
char * PR_TypeString ( progfuncs_t * progfuncs , etype_t type )
{
# ifdef DEF_SAVEGLOBAL
type & = ~ DEF_SAVEGLOBAL ;
# endif
if ( pr_types )
type = pr_types [ type ] . type ;
switch ( type )
{
case ev_struct :
2005-10-09 21:59:54 +00:00
return " struct " ;
2004-08-23 01:38:21 +00:00
case ev_union :
2005-10-09 21:59:54 +00:00
return " union " ;
2004-08-23 01:38:21 +00:00
case ev_string :
return " string " ;
2005-10-09 21:59:54 +00:00
case ev_entity :
2004-08-23 01:38:21 +00:00
return " entity " ;
case ev_function :
return " function " ;
case ev_field :
return " field " ;
case ev_void :
return " void " ;
case ev_float :
return " float " ;
2020-09-29 07:09:01 +00:00
case ev_double :
return " double " ;
2004-08-23 01:38:21 +00:00
case ev_vector :
return " vector " ;
case ev_integer :
return " integer " ;
2020-09-29 07:09:01 +00:00
case ev_uint :
return " uint " ;
case ev_int64 :
return " int64 " ;
case ev_uint64 :
return " uint64 " ;
2004-08-23 01:38:21 +00:00
default :
return " BAD TYPE " ;
2005-10-09 21:59:54 +00:00
}
2004-08-23 01:38:21 +00:00
}
/*
= = = = = = = = = = = =
PR_GlobalString
Returns a string with a description and the contents of a global ,
padded to 20 field width
= = = = = = = = = = = =
*/
2020-04-29 10:43:22 +00:00
char * PR_GlobalString ( progfuncs_t * progfuncs , int ofs , struct QCC_type_s * * typehint )
2004-08-23 01:38:21 +00:00
{
char * s ;
int i ;
ddef16_t * def16 ;
2020-04-29 10:43:22 +00:00
ddef32_t * def32 , def32tmp ;
2004-08-23 01:38:21 +00:00
void * val ;
static char line [ 128 ] ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
def16 = ED_GlobalAtOfs16 ( progfuncs , ofs ) ;
2020-04-29 10:43:22 +00:00
if ( def16 )
2004-08-23 01:38:21 +00:00
{
2020-04-29 10:43:22 +00:00
def32 = & def32tmp ;
def32 - > ofs = def16 - > ofs ;
def32 - > type = def16 - > type ;
def32 - > s_name = def16 - > s_name ;
2004-08-23 01:38:21 +00:00
}
2020-04-29 10:43:22 +00:00
else
def32 = NULL ;
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
def32 = ED_GlobalAtOfs32 ( progfuncs , ofs ) ;
2020-04-29 10:43:22 +00:00
break ;
default :
externs - > Sys_Error ( " Bad struct type in PR_GlobalString " ) ;
return " " ;
}
val = ( void * ) & pr_globals [ ofs ] ;
if ( ! def32 )
{
etype_t type ;
//urgh, this is so hideous
2020-04-29 11:43:33 +00:00
# if !defined(MINIMAL) && !defined(OMIT_QCC)
2020-04-29 10:43:22 +00:00
if ( typehint = = & type_float )
type = ev_float ;
else if ( typehint = = & type_string )
type = ev_string ;
else if ( typehint = = & type_vector )
type = ev_vector ;
else if ( typehint = = & type_function )
type = ev_function ;
else if ( typehint = = & type_field )
type = ev_field ;
2004-08-23 01:38:21 +00:00
else
2020-04-29 11:43:33 +00:00
# endif
2020-04-29 10:43:22 +00:00
type = ev_integer ;
s = PR_ValueString ( progfuncs , type , val , false ) ;
sprintf ( line , " %i(?)%s " , ofs , s ) ;
}
else
{
s = PR_ValueString ( progfuncs , def32 - > type , val , false ) ;
sprintf ( line , " %i(%s)%s " , ofs , def32 - > s_name + progfuncs - > funcs . stringtable , s ) ;
}
2005-10-09 21:59:54 +00:00
2020-04-29 10:43:22 +00:00
i = strlen ( line ) ;
for ( ; i < 20 ; i + + )
2004-08-23 01:38:21 +00:00
strcat ( line , " " ) ;
2020-04-29 10:43:22 +00:00
strcat ( line , " " ) ;
return line ;
2004-08-23 01:38:21 +00:00
}
char * PR_GlobalStringNoContents ( progfuncs_t * progfuncs , int ofs )
{
int i ;
ddef16_t * def16 ;
ddef32_t * def32 ;
2013-09-26 14:36:52 +00:00
int nameofs = 0 ;
2004-08-23 01:38:21 +00:00
static char line [ 128 ] ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
def16 = ED_GlobalAtOfs16 ( progfuncs , ofs ) ;
2013-09-26 14:36:52 +00:00
if ( def16 )
nameofs = def16 - > s_name ;
2004-08-23 01:38:21 +00:00
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
def32 = ED_GlobalAtOfs32 ( progfuncs , ofs ) ;
2013-09-26 14:36:52 +00:00
if ( def32 )
nameofs = def32 - > s_name ;
2004-08-23 01:38:21 +00:00
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type in PR_GlobalStringNoContents " ) ;
2004-08-23 01:38:21 +00:00
}
2005-10-09 21:59:54 +00:00
2013-09-26 14:36:52 +00:00
if ( nameofs )
sprintf ( line , " %i(%s) " , ofs , nameofs + progfuncs - > funcs . stringtable ) ;
else
{
if ( ofs > = OFS_RETURN & & ofs < OFS_PARM0 )
sprintf ( line , " %i(return_%c) " , ofs , ' x ' + ( ofs - OFS_RETURN ) % 3 ) ;
else if ( ofs > = OFS_PARM0 & & ofs < RESERVED_OFS )
sprintf ( line , " %i(parm%i_%c) " , ofs , ( ofs - OFS_PARM0 ) / 3 , ' x ' + ( ofs - OFS_PARM0 ) % 3 ) ;
else
sprintf ( line , " %i(? " " ? " " ?) " , ofs ) ;
}
2004-08-23 01:38:21 +00:00
i = strlen ( line ) ;
for ( ; i < 20 ; i + + )
strcat ( line , " " ) ;
strcat ( line , " " ) ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
return line ;
}
/*
= = = = = = = = = = = = =
ED_Print
For debugging
= = = = = = = = = = = = =
*/
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
void PDECL ED_Print ( pubprogfuncs_t * ppf , struct edict_s * ed )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2004-08-23 01:38:21 +00:00
int l ;
fdef_t * d ;
int * v ;
2007-08-08 02:37:59 +00:00
unsigned int i ; unsigned int j ;
2018-10-11 10:31:23 +00:00
const char * name ;
2004-08-23 01:38:21 +00:00
int type ;
2015-09-14 10:36:42 +00:00
if ( ( ( edictrun_t * ) ed ) - > ereftype = = ER_FREE )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " FREE \n " ) ;
2004-08-23 01:38:21 +00:00
return ;
}
2018-10-11 10:31:23 +00:00
externs - > Printf ( " \n EDICT %i: \n " , NUM_FOR_EDICT ( progfuncs , ( struct edict_s * ) ed ) ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 1 ; i < prinst . numfields ; i + + )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
d = & prinst . field [ i ] ;
2005-05-15 18:49:04 +00:00
name = d - > name ;
2005-06-04 17:38:32 +00:00
l = strlen ( name ) ;
if ( l > = 2 & & name [ l - 2 ] = = ' _ ' )
2004-08-23 01:38:21 +00:00
continue ; // skip _x, _y, _z vars
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
v = ( int * ) ( ( char * ) edvars ( ed ) + d - > ofs * 4 ) ;
// if the value is still all 0, skip the field
# ifdef DEF_SAVEGLOBAL
type = d - > type & ~ DEF_SAVEGLOBAL ;
# else
type = d - > type ;
# endif
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( j = 0 ; j < type_size [ type ] ; j + + )
if ( v [ j ] )
break ;
if ( j = = type_size [ type ] )
continue ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
externs - > Printf ( " %s " , name ) ;
2004-08-23 01:38:21 +00:00
l = strlen ( name ) ;
while ( l + + < 15 )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " " ) ;
2004-08-23 01:38:21 +00:00
2018-10-11 10:31:23 +00:00
externs - > Printf ( " %s \n " , PR_ValueString ( progfuncs , d - > type , ( eval_t * ) v , false ) ) ;
2004-08-23 01:38:21 +00:00
}
}
2015-01-08 13:09:20 +00:00
#if 0
2004-08-23 01:38:21 +00:00
void ED_PrintNum ( progfuncs_t * progfuncs , int ent )
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
ED_Print ( & progfuncs - > funcs , EDICT_NUM ( progfuncs , ent ) ) ;
2004-08-23 01:38:21 +00:00
}
/*
= = = = = = = = = = = = =
ED_PrintEdicts
For debugging , prints all the entities in the current server
= = = = = = = = = = = = =
*/
void ED_PrintEdicts ( progfuncs_t * progfuncs )
{
2005-10-07 16:27:20 +00:00
unsigned int i ;
2005-10-09 21:59:54 +00:00
2018-10-11 10:31:23 +00:00
externs - > Printf ( " %i entities \n " , sv_num_edicts ) ;
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < sv_num_edicts ; i + + )
ED_PrintNum ( progfuncs , i ) ;
}
/*
= = = = = = = = = = = = =
ED_Count
For debugging
= = = = = = = = = = = = =
*/
void ED_Count ( progfuncs_t * progfuncs )
{
2005-10-07 16:27:20 +00:00
unsigned int i ;
2004-08-23 01:38:21 +00:00
edictrun_t * ent ;
2005-10-07 16:27:20 +00:00
unsigned int active , models , solid , step ;
2004-08-23 01:38:21 +00:00
active = models = solid = step = 0 ;
for ( i = 0 ; i < sv_num_edicts ; i + + )
{
ent = ( edictrun_t * ) EDICT_NUM ( progfuncs , i ) ;
if ( ent - > isfree )
continue ;
active + + ;
// if (ent->v.solid)
// solid++;
// if (ent->v.model)
// models++;
// if (ent->v.movetype == MOVETYPE_STEP)
// step++;
}
2018-10-11 10:31:23 +00:00
externs - > Printf ( " num_edicts:%3i \n " , sv_num_edicts ) ;
externs - > Printf ( " active :%3i \n " , active ) ;
2004-08-23 01:38:21 +00:00
// Con_Printf ("view :%3i\n", models);
// Con_Printf ("touch :%3i\n", solid);
// Con_Printf ("step :%3i\n", step);
}
2015-01-08 13:09:20 +00:00
# endif
2004-08-23 01:38:21 +00:00
//============================================================================
/*
= = = = = = = = = = = = =
ED_NewString
= = = = = = = = = = = = =
*/
2013-11-21 23:02:28 +00:00
char * PDECL ED_NewString ( pubprogfuncs_t * ppf , const char * string , int minlength , pbool demarkup )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2006-06-02 17:42:36 +00:00
char * newc , * new_p ;
2004-08-23 01:38:21 +00:00
int i , l ;
2005-05-17 02:36:54 +00:00
minlength + + ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
l = strlen ( string ) + 1 ;
2005-08-01 16:40:23 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
newc = progfuncs - > funcs . AddressableAlloc ( & progfuncs - > funcs , l < minlength ? minlength : l ) ;
2012-03-19 06:30:41 +00:00
if ( ! newc )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
return progfuncs - > funcs . stringtable ;
2012-03-19 06:30:41 +00:00
2006-06-02 17:42:36 +00:00
new_p = newc ;
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < l ; i + + )
{
2013-11-21 23:02:28 +00:00
if ( demarkup & & string [ i ] = = ' \\ ' & & i < l - 1 & & string [ i + 1 ] ! = 0 )
2004-08-23 01:38:21 +00:00
{
i + + ;
2014-12-02 02:00:41 +00:00
switch ( string [ i ] )
{
case ' n ' : * new_p + + = ' \n ' ; break ;
case ' \' ' : * new_p + + = ' \' ' ; break ;
case ' \" ' : * new_p + + = ' \" ' ; break ;
case ' r ' : * new_p + + = ' \r ' ; break ;
default :
2004-08-23 01:38:21 +00:00
* new_p + + = ' \\ ' ;
2014-12-02 02:00:41 +00:00
i - - ;
break ;
}
2004-08-23 01:38:21 +00:00
}
else
* new_p + + = string [ i ] ;
}
2005-10-09 21:59:54 +00:00
2006-06-02 17:42:36 +00:00
return newc ;
2004-08-23 01:38:21 +00:00
}
/*
= = = = = = = = = = = = =
ED_ParseEval
Can parse either fields or globals
returns false if error
= = = = = = = = = = = = =
*/
2014-03-30 08:55:06 +00:00
pbool PDECL ED_ParseEval ( pubprogfuncs_t * ppf , eval_t * eval , int type , const char * s )
2012-11-27 03:23:19 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2012-11-27 03:23:19 +00:00
int i ;
2020-06-27 19:32:49 +00:00
progsnum_t module ;
2012-11-27 03:23:19 +00:00
char string [ 128 ] ;
fdef_t * def ;
char * v , * w ;
string_t st ;
2014-08-03 14:47:47 +00:00
mfunction_t * func ;
2012-11-27 03:23:19 +00:00
switch ( type & ~ DEF_SAVEGLOBAL )
{
case ev_string :
2015-01-21 18:18:37 +00:00
# ifdef QCGC
st = PR_AllocTempString ( & progfuncs - > funcs , s ) ;
# else
2013-11-21 23:02:28 +00:00
st = PR_StringToProgs ( & progfuncs - > funcs , ED_NewString ( & progfuncs - > funcs , s , 0 , true ) ) ;
2015-01-21 18:18:37 +00:00
# endif
2012-11-27 03:23:19 +00:00
eval - > string = st ;
break ;
case ev_float :
eval - > _float = ( float ) atof ( s ) ;
break ;
2020-09-29 07:09:01 +00:00
case ev_double :
eval - > _double = atof ( s ) ;
break ;
2012-11-27 03:23:19 +00:00
case ev_integer :
2020-09-29 07:09:01 +00:00
eval - > _int = strtol ( s , NULL , 0 ) ;
break ;
case ev_uint :
eval - > _uint = strtoul ( s , NULL , 0 ) ;
break ;
case ev_int64 :
eval - > _int64 = strtoll ( s , NULL , 0 ) ;
break ;
case ev_uint64 :
eval - > _uint64 = strtoull ( s , NULL , 0 ) ;
2012-11-27 03:23:19 +00:00
break ;
case ev_vector :
strncpy ( string , s , sizeof ( string ) ) ;
string [ sizeof ( string ) - 1 ] = 0 ;
v = string ;
w = string ;
for ( i = 0 ; i < 3 ; i + + )
{
while ( * v & & * v ! = ' ' )
v + + ;
if ( ! * v )
{
eval - > _vector [ i ] = ( float ) atof ( w ) ;
w = v ;
}
else
{
* v = 0 ;
eval - > _vector [ i ] = ( float ) atof ( w ) ;
w = v = v + 1 ;
}
}
break ;
case ev_entity :
2018-05-06 16:09:07 +00:00
if ( ! strncmp ( s , " entity " , 7 ) ) //cope with etos weirdness.
s + = 7 ;
2012-11-27 03:23:19 +00:00
eval - > edict = atoi ( s ) ;
break ;
case ev_field :
def = ED_FindField ( progfuncs , s ) ;
if ( ! def )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Can't find field %s \n " , s ) ;
2012-11-27 03:23:19 +00:00
return false ;
}
eval - > _int = def - > ofs ;
break ;
case ev_function :
if ( s [ 1 ] = = ' : ' & & s [ 2 ] = = ' \0 ' )
{
eval - > function = 0 ;
return true ;
}
2020-06-27 19:32:49 +00:00
func = ED_FindFunction ( progfuncs , s , & module , - 1 ) ;
2012-11-27 03:23:19 +00:00
if ( ! func )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Can't find function %s \n " , s ) ;
2012-11-27 03:23:19 +00:00
return false ;
}
2020-06-27 19:32:49 +00:00
eval - > function = ( func - pr_progstate [ module ] . functions ) | ( module < < 24 ) ;
2012-11-27 03:23:19 +00:00
break ;
default :
return false ;
}
return true ;
}
2017-04-29 02:45:21 +00:00
pbool ED_ParseEpair ( progfuncs_t * progfuncs , size_t qcptr , unsigned int fldofs , int fldtype , char * s )
2004-08-23 01:38:21 +00:00
{
2020-09-29 07:09:01 +00:00
pint64_t i ;
puint64_t u ;
2020-06-27 19:32:49 +00:00
progsnum_t module ;
2004-08-23 01:38:21 +00:00
fdef_t * def ;
2005-05-15 18:49:04 +00:00
string_t st ;
2014-08-03 14:47:47 +00:00
mfunction_t * func ;
2011-12-05 15:23:40 +00:00
int type = fldtype & ~ DEF_SAVEGLOBAL ;
2018-09-01 04:18:08 +00:00
double d ;
2020-09-29 07:09:01 +00:00
eval_t * eval = ( eval_t * ) ( progfuncs - > funcs . stringtable + qcptr + ( fldofs * sizeof ( int ) ) ) ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
switch ( type )
{
case ev_string :
2015-01-21 18:18:37 +00:00
# ifdef QCGC
st = PR_AllocTempString ( & progfuncs - > funcs , s ) ;
# else
2013-11-21 23:02:28 +00:00
st = PR_StringToProgs ( & progfuncs - > funcs , ED_NewString ( & progfuncs - > funcs , s , 0 , true ) ) ;
2015-01-21 18:18:37 +00:00
# endif
2020-09-29 07:09:01 +00:00
eval - > string = st ;
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
case ev_float :
2018-09-01 04:18:08 +00:00
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
d = strtod ( s , & s ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
2020-09-29 07:09:01 +00:00
eval - > _float = d ;
if ( * s )
return false ; //some kind of junk in there.
break ;
case ev_double :
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
d = strtod ( s , & s ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
eval - > _double = d ;
2018-09-01 04:18:08 +00:00
if ( * s )
return false ; //some kind of junk in there.
2004-08-23 01:38:21 +00:00
break ;
case ev_integer :
2018-09-01 04:18:08 +00:00
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
i = strtol ( s , & s , 0 ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
2020-09-29 07:09:01 +00:00
eval - > _int = i ;
if ( * s )
return false ; //some kind of junk in there.
break ;
case ev_entity : //ent references are simple ints for us.
case ev_uint :
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
u = strtoul ( s , & s , 0 ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
eval - > _uint = u ;
if ( * s )
return false ; //some kind of junk in there.
break ;
case ev_int64 :
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
i = strtoll ( s , & s , 0 ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
eval - > _int64 = i ;
if ( * s )
return false ; //some kind of junk in there.
break ;
case ev_uint64 :
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
u = strtoull ( s , & s , 0 ) ;
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
eval - > _uint64 = u ;
2018-09-01 04:18:08 +00:00
if ( * s )
return false ; //some kind of junk in there.
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
case ev_vector :
for ( i = 0 ; i < 3 ; i + + )
{
2018-09-01 04:18:08 +00:00
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
d = strtod ( s , & s ) ;
2020-09-29 07:09:01 +00:00
eval - > _vector [ i ] = d ;
2004-08-23 01:38:21 +00:00
}
2018-09-01 04:18:08 +00:00
while ( * s = = ' ' | | * s = = ' \t ' )
s + + ;
if ( * s )
return false ; //some kind of junk in there.
2004-08-23 01:38:21 +00:00
break ;
case ev_field :
def = ED_FindField ( progfuncs , s ) ;
if ( ! def )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Can't find field %s \n " , s ) ;
2004-08-23 01:38:21 +00:00
return false ;
}
2020-09-29 07:09:01 +00:00
eval - > _int = def - > ofs ;
2004-08-23 01:38:21 +00:00
break ;
case ev_function :
2018-09-01 04:18:08 +00:00
if ( s [ 0 ] & & s [ 1 ] = = ' : ' & & s [ 2 ] = = ' \0 ' ) //this isn't right...
2004-08-23 01:38:21 +00:00
{
2020-09-29 07:09:01 +00:00
eval - > function = 0 ;
2004-08-23 01:38:21 +00:00
return true ;
}
2020-06-27 19:32:49 +00:00
func = ED_FindFunction ( progfuncs , s , & module , - 1 ) ;
2004-08-23 01:38:21 +00:00
if ( ! func )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Can't find function %s \n " , s ) ;
2004-08-23 01:38:21 +00:00
return false ;
}
2020-09-29 07:09:01 +00:00
eval - > function = ( func - pr_progstate [ module ] . functions ) | ( module < < 24 ) ;
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
default :
2018-09-01 04:18:08 +00:00
return false ;
2004-08-23 01:38:21 +00:00
}
return true ;
}
/*
= = = = = = = = = = = = = = = = = = = =
ED_ParseEdict
Parses an edict out of the given string , returning the new position
ed should be a properly initialized empty edict .
Used for initial level load and for savegames .
= = = = = = = = = = = = = = = = = = = =
*/
# if 1
2018-09-01 04:18:08 +00:00
static const char * ED_ParseEdict ( progfuncs_t * progfuncs , const char * data , edictrun_t * ent , pbool * out_maphack )
2004-08-23 01:38:21 +00:00
{
fdef_t * key ;
pbool init ;
char keyname [ 256 ] ;
int n ;
2011-02-25 04:22:14 +00:00
int nest = 1 ;
2004-08-23 01:38:21 +00:00
// eval_t *val;
init = false ;
// clear it
// if (ent != (edictrun_t *)sv_edicts) // hack
// memset (ent+1, 0, pr_edict_size - sizeof(edictrun_t));
// go through all the dictionary pairs
while ( 1 )
2005-10-09 21:59:54 +00:00
{
2004-08-23 01:38:21 +00:00
// parse key
data = QCC_COM_Parse ( data ) ;
if ( qcc_token [ 0 ] = = ' } ' )
2011-02-25 04:22:14 +00:00
{
if ( - - nest )
continue ;
2004-08-23 01:38:21 +00:00
break ;
2011-02-25 04:22:14 +00:00
}
if ( qcc_token [ 0 ] = = ' { ' & & ! qcc_token [ 1 ] )
nest + + ;
2004-08-23 01:38:21 +00:00
if ( ! data )
2008-11-09 22:29:28 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " ED_ParseEntity: EOF without closing brace \n " ) ;
2008-11-09 22:29:28 +00:00
return NULL ;
}
2011-02-25 04:22:14 +00:00
if ( nest > 1 )
continue ;
2005-10-09 21:59:54 +00:00
2008-11-09 22:29:28 +00:00
strncpy ( keyname , qcc_token , sizeof ( keyname ) - 1 ) ;
keyname [ sizeof ( keyname ) - 1 ] = 0 ;
2004-08-23 01:38:21 +00:00
// another hack to fix heynames with trailing spaces
n = strlen ( keyname ) ;
while ( n & & keyname [ n - 1 ] = = ' ' )
{
keyname [ n - 1 ] = 0 ;
n - - ;
}
2005-10-09 21:59:54 +00:00
// parse value
2004-08-23 01:38:21 +00:00
data = QCC_COM_Parse ( data ) ;
if ( ! data )
2008-11-09 22:29:28 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " ED_ParseEntity: EOF without closing brace \n " ) ;
2011-05-15 13:23:13 +00:00
return NULL ;
2008-11-09 22:29:28 +00:00
}
2004-08-23 01:38:21 +00:00
if ( qcc_token [ 0 ] = = ' } ' )
2008-11-09 22:29:28 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " ED_ParseEntity: closing brace without data \n " ) ;
2008-11-09 22:29:28 +00:00
return NULL ;
}
2004-08-23 01:38:21 +00:00
2005-10-09 21:59:54 +00:00
init = true ;
2004-08-23 01:38:21 +00:00
// keynames with a leading underscore are used for utility comments,
// and are immediately discarded by quake
if ( keyname [ 0 ] = = ' _ ' )
2019-07-29 05:28:20 +00:00
{
if ( externs - > badfield )
externs - > badfield ( & progfuncs - > funcs , ( struct edict_s * ) ent , keyname , qcc_token ) ;
2004-08-23 01:38:21 +00:00
continue ;
2019-07-29 05:28:20 +00:00
}
2005-10-09 21:59:54 +00:00
2017-08-14 16:38:44 +00:00
if ( ! strcmp ( keyname , " angle " ) ) //Quake anglehack - we've got to leave it in cos it doesn't work for quake otherwise, and this is a QuakeC lib!
2004-08-23 01:38:21 +00:00
{
2017-08-14 16:38:44 +00:00
if ( ( key = ED_FindField ( progfuncs , " angles " ) ) )
2004-08-23 01:38:21 +00:00
{
2017-08-14 16:38:44 +00:00
QC_snprintfz ( qcc_token , sizeof ( qcc_token ) , " 0 %f 0 " , atof ( qcc_token ) ) ; //change it from yaw to 3d angle
goto cont ;
2004-08-23 01:38:21 +00:00
}
2017-08-14 16:38:44 +00:00
}
key = ED_FindField ( progfuncs , keyname ) ;
if ( ! key )
{
2004-08-23 01:38:21 +00:00
if ( ! strcmp ( keyname , " light " ) ) //Quake lighthack - allows a field name and a classname to go by the same thing in the level editor
if ( ( key = ED_FindField ( progfuncs , " light_lev " ) ) )
goto cont ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( externs - > badfield & & externs - > badfield ( & progfuncs - > funcs , ( struct edict_s * ) ent , keyname , qcc_token ) )
2010-09-05 10:42:23 +00:00
continue ;
2016-12-09 09:09:12 +00:00
PR_DPrintf ( " '%s' is not a field \n " , keyname ) ;
2004-08-23 01:38:21 +00:00
continue ;
}
cont :
2018-09-01 04:18:08 +00:00
switch ( key - > type )
{
case ev_function :
case ev_field :
case ev_entity :
case ev_pointer :
* out_maphack = true ; //one of these types of fields means evil maphacks are at play.
break ;
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! ED_ParseEpair ( progfuncs , ( char * ) ent - > fields - progfuncs - > funcs . stringtable , key - > ofs , key - > type , qcc_token ) )
2006-01-12 22:26:32 +00:00
{
2018-09-01 04:18:08 +00:00
if ( externs - > badfield & & externs - > badfield ( & progfuncs - > funcs , ( struct edict_s * ) ent , keyname , qcc_token ) )
continue ;
2006-01-12 22:26:32 +00:00
continue ;
// Sys_Error ("ED_ParseEdict: parse error on entities");
}
2004-08-23 01:38:21 +00:00
}
if ( ! init )
2015-09-14 10:36:42 +00:00
ent - > ereftype = ER_FREE ;
2004-08-23 01:38:21 +00:00
return data ;
}
# endif
2015-11-18 07:37:39 +00:00
static void PR_Cat ( char * out , const char * in , size_t * len , size_t max )
2013-08-21 06:55:54 +00:00
{
2015-11-18 07:37:39 +00:00
size_t newl = strlen ( in ) ;
2013-08-21 06:55:54 +00:00
max - = 1 ;
if ( * len + newl > max )
newl = max - * len ; //truncate
memcpy ( out + * len , in , newl + 1 ) ;
* len + = newl ;
}
2004-08-23 01:38:21 +00:00
/*
= = = = = = = = = = = = = = = =
ED_LoadFromFile
The entities are directly placed in the array , rather than allocated with
ED_Alloc , because otherwise an error loading the map would have entity
number references out of order .
Creates a server ' s entity / program execution context by
parsing textual entity definitions out of an ent file .
Used for both fresh maps and savegame loads . A fresh map would also need
to call ED_CallSpawnFunctions ( ) to let the objects initialize themselves .
= = = = = = = = = = = = = = = =
*/
2015-11-18 07:37:39 +00:00
char * ED_WriteGlobals ( progfuncs_t * progfuncs , char * buf , size_t * bufofs , size_t bufmax ) //switch first.
2004-08-23 01:38:21 +00:00
{
2013-08-21 06:55:54 +00:00
# define AddS(str) PR_Cat(buf, str, bufofs, bufmax)
2004-08-23 01:38:21 +00:00
int * v ;
ddef32_t * def32 ;
ddef16_t * def16 ;
unsigned int i ;
2018-05-21 13:47:53 +00:00
// unsigned int j;
2015-04-14 12:24:05 +00:00
const char * name ;
2004-08-23 01:38:21 +00:00
int type ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
int curprogs = prinst . pr_typecurrent ;
2004-08-23 01:38:21 +00:00
int len ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
2005-10-09 21:59:54 +00:00
def16 = & pr_globaldefs16 [ i ] ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
name = def16 - > s_name + progfuncs - > funcs . stringtable ;
2004-08-23 01:38:21 +00:00
len = strlen ( name ) ;
if ( ! * name )
continue ;
2017-08-14 16:38:44 +00:00
if ( len > = 2 & & name [ len - 2 ] = = ' _ ' & & ( name [ len - 1 ] = = ' x ' | | name [ len - 1 ] = = ' y ' | | name [ len - 1 ] = = ' z ' ) )
2007-10-29 06:06:20 +00:00
continue ; // skip _x, _y, _z vars (vector components, which are saved as one vector not 3 floats)
2004-08-23 01:38:21 +00:00
type = def16 - > type ;
# ifdef DEF_SAVEGLOBAL
if ( ! ( def16 - > type & DEF_SAVEGLOBAL ) )
continue ;
type & = ~ DEF_SAVEGLOBAL ;
# endif
if ( current_progstate - > types )
type = current_progstate - > types [ type ] . type ;
if ( type = = ev_function )
{
v = ( int * ) & current_progstate - > globals [ def16 - > ofs ] ;
if ( ( v [ 0 ] & 0xff000000 ) > > 24 = = ( unsigned ) curprogs ) //same progs
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! progfuncs - > funcs . stringtable [ current_progstate - > functions [ v [ 0 ] & 0x00ffffff ] . s_name ] )
2004-08-23 01:38:21 +00:00
continue ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
else if ( ! strcmp ( current_progstate - > functions [ v [ 0 ] & 0x00ffffff ] . s_name + progfuncs - > funcs . stringtable , name ) ) //names match. Assume function is at initial value.
2004-08-23 01:38:21 +00:00
continue ;
}
if ( curprogs ! = 0 )
if ( ( v [ 0 ] & 0xff000000 ) > > 24 = = 0 )
if ( ! ED_FindFunction ( progfuncs , name , NULL , curprogs ) ) //defined as extern
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! progfuncs - > funcs . stringtable [ pr_progstate [ 0 ] . functions [ v [ 0 ] & 0x00ffffff ] . s_name ] )
2004-08-23 01:38:21 +00:00
continue ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
else if ( ! strcmp ( pr_progstate [ 0 ] . functions [ v [ 0 ] & 0x00ffffff ] . s_name + progfuncs - > funcs . stringtable , name ) ) //same name.
2004-08-23 01:38:21 +00:00
continue ;
}
//else function has been redirected externally.
goto add16 ;
}
else if ( type ! = ev_string //anything other than these is not saved
& & type ! = ev_float
2020-09-29 07:09:01 +00:00
& & type ! = ev_double
2004-08-23 01:38:21 +00:00
& & type ! = ev_integer
2020-09-29 07:09:01 +00:00
& & type ! = ev_uint
& & type ! = ev_int64
& & type ! = ev_uint64
2004-08-23 01:38:21 +00:00
& & type ! = ev_entity
& & type ! = ev_vector )
continue ;
v = ( int * ) & current_progstate - > globals [ def16 - > ofs ] ;
2018-05-21 13:47:53 +00:00
/* // make sure the value is not null, where there's no point in saving
2004-08-23 01:38:21 +00:00
for ( j = 0 ; j < type_size [ type ] ; j + + )
if ( v [ j ] )
break ;
if ( j = = type_size [ type ] )
continue ;
2018-05-21 13:47:53 +00:00
*/
2004-08-23 01:38:21 +00:00
add16 :
2013-03-12 22:40:16 +00:00
AddS ( " \" " ) ; AddS ( name ) ; AddS ( " \" \" " ) ; AddS ( PR_UglyValueString ( & progfuncs - > funcs , def16 - > type & ~ DEF_SAVEGLOBAL , ( eval_t * ) v ) ) ; AddS ( " \" \n " ) ;
2004-08-23 01:38:21 +00:00
}
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
2015-04-14 12:24:05 +00:00
size_t nlen ;
2005-10-09 21:59:54 +00:00
def32 = & pr_globaldefs32 [ i ] ;
2015-04-14 12:24:05 +00:00
name = PR_StringToNative ( & progfuncs - > funcs , def32 - > s_name ) ;
nlen = strlen ( name ) ;
if ( nlen > = 3 & & name [ nlen - 2 ] = = ' _ ' )
2007-10-29 06:06:20 +00:00
continue ; // skip _x, _y, _z vars (vector components, which are saved as one vector not 3 floats)
2004-08-23 01:38:21 +00:00
type = def32 - > type ;
# ifdef DEF_SAVEGLOBAL
if ( ! ( def32 - > type & DEF_SAVEGLOBAL ) )
continue ;
type & = ~ DEF_SAVEGLOBAL ;
# endif
if ( current_progstate - > types )
type = current_progstate - > types [ type ] . type ;
if ( type = = ev_function )
{
v = ( int * ) & current_progstate - > globals [ def32 - > ofs ] ;
if ( ( v [ 0 ] & 0xff000000 ) > > 24 = = ( unsigned ) curprogs ) //same progs
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( current_progstate - > functions [ v [ 0 ] & 0x00ffffff ] . s_name + progfuncs - > funcs . stringtable , name ) ) //names match. Assume function is at initial value.
2005-10-09 21:59:54 +00:00
continue ;
2004-08-23 01:38:21 +00:00
if ( curprogs ! = 0 )
if ( ( v [ 0 ] & 0xff000000 ) > > 24 = = 0 )
if ( ! ED_FindFunction ( progfuncs , name , NULL , curprogs ) ) //defined as extern
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! strcmp ( pr_progstate [ 0 ] . functions [ v [ 0 ] & 0x00ffffff ] . s_name + progfuncs - > funcs . stringtable , name ) ) //same name.
2004-08-23 01:38:21 +00:00
continue ;
//else function has been redirected externally.
goto add32 ;
}
else if ( type ! = ev_string //anything other than these is not saved
& & type ! = ev_float
2020-09-29 07:09:01 +00:00
& & type ! = ev_double
2004-08-23 01:38:21 +00:00
& & type ! = ev_integer
2020-09-29 07:09:01 +00:00
& & type ! = ev_uint
& & type ! = ev_int64
& & type ! = ev_uint64
2004-08-23 01:38:21 +00:00
& & type ! = ev_entity
& & type ! = ev_vector )
continue ;
v = ( int * ) & current_progstate - > globals [ def32 - > ofs ] ;
2018-05-21 13:47:53 +00:00
/* // make sure the value is not null, where there's no point in saving
2004-08-23 01:38:21 +00:00
for ( j = 0 ; j < type_size [ type ] ; j + + )
if ( v [ j ] )
break ;
if ( j = = type_size [ type ] )
2018-05-21 13:47:53 +00:00
continue ; */
2004-08-23 01:38:21 +00:00
add32 :
2013-03-12 22:40:16 +00:00
AddS ( " \" " ) ; AddS ( name ) ; AddS ( " \" \" " ) ; AddS ( PR_UglyValueString ( & progfuncs - > funcs , def32 - > type & ~ DEF_SAVEGLOBAL , ( eval_t * ) v ) ) ; AddS ( " \" \n " ) ;
2004-08-23 01:38:21 +00:00
}
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type in SaveEnts " ) ;
2004-08-23 01:38:21 +00:00
}
2013-08-21 06:55:54 +00:00
return buf ;
# undef AddS
2004-08-23 01:38:21 +00:00
}
2015-11-18 07:37:39 +00:00
char * ED_WriteEdict ( progfuncs_t * progfuncs , edictrun_t * ed , char * buf , size_t * bufofs , size_t bufmax , pbool q1compatible )
2004-08-23 01:38:21 +00:00
{
2013-08-21 06:55:54 +00:00
# define AddS(str) PR_Cat(buf, str, bufofs, bufmax)
2004-08-23 01:38:21 +00:00
fdef_t * d ;
int * v ;
2007-08-08 02:37:59 +00:00
unsigned int i ; unsigned int j ;
2018-10-11 10:31:23 +00:00
const char * name ;
2004-08-23 01:38:21 +00:00
int type ;
int len ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
char * tmp ;
2004-08-23 01:38:21 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 0 ; i < prinst . numfields ; i + + )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
d = & prinst . field [ i ] ;
2005-05-15 18:49:04 +00:00
name = d - > name ;
2004-08-23 01:38:21 +00:00
len = strlen ( name ) ;
2005-05-15 18:49:04 +00:00
if ( len > 4 & & ( name [ len - 2 ] = = ' _ ' & & ( name [ len - 1 ] = = ' x ' | | name [ len - 1 ] = = ' y ' | | name [ len - 1 ] = = ' z ' ) ) )
2004-08-23 01:38:21 +00:00
continue ; // skip _x, _y, _z vars
2005-10-09 21:59:54 +00:00
2005-03-28 00:11:59 +00:00
v = ( int * ) ( ( char * ) ed - > fields + d - > ofs * 4 ) ;
2004-08-23 01:38:21 +00:00
// if the value is still all 0, skip the field
# ifdef DEF_SAVEGLOBAL
type = d - > type & ~ DEF_SAVEGLOBAL ;
# else
type = d - > type ;
# endif
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
for ( j = 0 ; j < type_size [ type ] ; j + + )
if ( v [ j ] )
break ;
if ( j = = type_size [ type ] )
continue ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
//add it to the file
2013-03-12 22:40:16 +00:00
AddS ( " \" " ) ; AddS ( name ) ; AddS ( " \" " ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( q1compatible )
tmp = PR_UglyOldValueString ( progfuncs , d - > type , ( eval_t * ) v ) ;
else
tmp = PR_UglyValueString ( & progfuncs - > funcs , d - > type , ( eval_t * ) v ) ;
2013-03-12 22:40:16 +00:00
AddS ( " \" " ) ; AddS ( tmp ) ; AddS ( " \" \n " ) ;
2004-08-23 01:38:21 +00:00
}
2013-08-21 06:55:54 +00:00
return buf ;
2004-08-23 01:38:21 +00:00
# undef AddS
}
2015-10-11 11:34:58 +00:00
//just a simple helper that makes sure the s_name+s_file values are actually valid. some qccs generate really dodgy values intended to crash decompilers, but also crash debuggers too.
static char * PR_StaticString ( progfuncs_t * progfuncs , string_t thestring )
{
if ( thestring < = 0 | | thestring > = progfuncs - > funcs . stringtablesize )
return " ??? " ;
return thestring + progfuncs - > funcs . stringtable ;
}
2015-11-18 07:37:39 +00:00
char * PR_SaveCallStack ( progfuncs_t * progfuncs , char * buf , size_t * bufofs , size_t bufmax )
2004-12-08 04:14:52 +00:00
{
2013-08-21 06:55:54 +00:00
# define AddS(str) PR_Cat(buf, str, bufofs, bufmax)
2004-12-08 04:14:52 +00:00
char buffer [ 8192 ] ;
2014-08-03 14:47:47 +00:00
const mfunction_t * f ;
2004-12-08 04:14:52 +00:00
int i ;
int progs ;
int arg ;
int * globalbase ;
progs = - 1 ;
2019-12-10 14:50:47 +00:00
if ( prinst . pr_depth = = 0 )
2004-12-08 04:14:52 +00:00
{
AddS ( " <NO STACK> \n " ) ;
2013-08-21 06:55:54 +00:00
return buf ;
2004-12-08 04:14:52 +00:00
}
2020-01-09 15:35:40 +00:00
globalbase = ( int * ) pr_globals + prinst . pr_xfunction - > parm_start + prinst . pr_xfunction - > locals ;
2004-12-08 04:14:52 +00:00
2020-01-09 15:35:40 +00:00
prinst . pr_stack [ prinst . pr_depth ] . f = prinst . pr_xfunction ;
2019-12-10 14:50:47 +00:00
for ( i = prinst . pr_depth ; i > 0 ; i - - )
2004-12-08 04:14:52 +00:00
{
2019-12-10 14:50:47 +00:00
f = prinst . pr_stack [ i ] . f ;
2005-10-09 21:59:54 +00:00
2004-12-08 04:14:52 +00:00
if ( ! f )
{
AddS ( " <NO FUNCTION> \n " ) ;
}
else
{
2019-12-10 14:50:47 +00:00
if ( prinst . pr_stack [ i ] . progsnum ! = progs )
2004-12-08 04:14:52 +00:00
{
2019-12-10 14:50:47 +00:00
progs = prinst . pr_stack [ i ] . progsnum ;
2004-12-08 04:14:52 +00:00
sprintf ( buffer , " //%i %s \n " , progs , pr_progstate [ progs ] . filename ) ;
AddS ( buffer ) ;
}
2005-05-15 18:49:04 +00:00
if ( ! f - > s_file )
2015-10-11 11:34:58 +00:00
sprintf ( buffer , " \t \" %i:%s \" \n " , progs , PR_StaticString ( progfuncs , f - > s_name ) ) ;
2004-12-08 04:14:52 +00:00
else
2015-10-11 11:34:58 +00:00
sprintf ( buffer , " \t \" %i:%s \" //%s \n " , progs , PR_StaticString ( progfuncs , f - > s_name ) , PR_StaticString ( progfuncs , f - > s_file ) ) ;
2004-12-08 04:14:52 +00:00
AddS ( buffer ) ;
AddS ( " \t { \n " ) ;
for ( arg = 0 ; arg < f - > locals ; arg + + )
{
ddef16_t * local ;
local = ED_GlobalAtOfs16 ( progfuncs , f - > parm_start + arg ) ;
if ( ! local )
sprintf ( buffer , " \t \t ofs%i %i // %f \n " , f - > parm_start + arg , * ( int * ) ( globalbase - f - > locals + arg ) , * ( float * ) ( globalbase - f - > locals + arg ) ) ;
else
{
if ( local - > type = = ev_entity )
2005-09-14 04:36:07 +00:00
{
2015-10-11 11:34:58 +00:00
sprintf ( buffer , " \t \t \" %s \" \" entity %i \" \n " , PR_StaticString ( progfuncs , local - > s_name ) , ( ( eval_t * ) ( globalbase - f - > locals + arg ) ) - > edict ) ;
2004-12-08 04:14:52 +00:00
}
else
2015-10-11 11:34:58 +00:00
sprintf ( buffer , " \t \t \" %s \" \t \" %s \" \n " , PR_StaticString ( progfuncs , local - > s_name ) , PR_ValueString ( progfuncs , local - > type , ( eval_t * ) ( globalbase - f - > locals + arg ) , false ) ) ;
2005-09-14 04:36:07 +00:00
2004-12-08 04:14:52 +00:00
if ( local - > type = = ev_vector )
arg + = 2 ;
}
AddS ( buffer ) ;
}
AddS ( " \t } \n " ) ;
2019-12-10 14:50:47 +00:00
if ( i = = prinst . pr_depth )
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
globalbase = prinst . localstack + prinst . localstack_used - f - > locals ;
2004-12-08 04:14:52 +00:00
else
globalbase - = f - > locals ;
}
}
2013-08-21 06:55:54 +00:00
return buf ;
2004-12-08 04:14:52 +00:00
# undef AddS
}
2004-08-23 01:38:21 +00:00
//there are two ways of saving everything.
//0 is to save just the entities.
//1 is to save the entites, and all the progs info so that all the variables are saved off, and it can be reloaded to exactly how it was (provided no files or data has been changed outside, like the progs.dat for example)
2018-05-21 13:47:53 +00:00
//2 is for vanilla-compatible saved games
//3 is a (human-readable) coredump
//4 is binary saved games.
2015-11-18 07:37:39 +00:00
char * PDECL PR_SaveEnts ( pubprogfuncs_t * ppf , char * buf , size_t * bufofs , size_t bufmax , int alldata )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2013-08-21 06:55:54 +00:00
# define AddS(str) PR_Cat(buf, str, bufofs, bufmax)
2005-10-07 16:27:20 +00:00
unsigned int a ;
2013-08-21 06:55:54 +00:00
char * buffree = NULL ;
2004-08-23 01:38:21 +00:00
int oldprogs ;
2005-10-09 21:59:54 +00:00
2013-08-21 06:55:54 +00:00
if ( ! buf )
2004-08-23 01:38:21 +00:00
{
2013-08-21 06:55:54 +00:00
if ( bufmax < = 0 )
bufmax = 5 * 1024 * 1024 ;
buffree = buf = externs - > memalloc ( bufmax ) ;
2004-08-23 01:38:21 +00:00
}
2013-08-21 06:55:54 +00:00
* bufofs = 0 ;
2004-08-23 01:38:21 +00:00
2018-05-21 13:47:53 +00:00
switch ( alldata )
{
default :
return NULL ;
case 2 :
//special Q1 savegame compatability mode.
2004-08-23 01:38:21 +00:00
//engine will need to store references to progs type and will need to preload the progs and inti the ents itself before loading.
//Make sure there is only 1 progs loaded.
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
for ( a = 1 ; a < prinst . maxprogs ; a + + )
2004-08-23 01:38:21 +00:00
{
if ( pr_progstate [ a ] . progs )
break ;
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ! pr_progstate [ 0 ] . progs | | a ! = prinst . maxprogs ) //the state of the progs wasn't Q1 compatible.
2004-08-23 01:38:21 +00:00
{
2013-08-21 06:55:54 +00:00
externs - > memfree ( buffree ) ;
2004-08-23 01:38:21 +00:00
return NULL ;
}
//write the globals
AddS ( " { \n " ) ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
oldprogs = prinst . pr_typecurrent ;
2004-08-23 01:38:21 +00:00
PR_SwitchProgs ( progfuncs , 0 ) ;
2013-08-21 06:55:54 +00:00
ED_WriteGlobals ( progfuncs , buf , bufofs , bufmax ) ;
2004-08-23 01:38:21 +00:00
PR_SwitchProgs ( progfuncs , oldprogs ) ;
AddS ( " } \n " ) ;
//write the ents
for ( a = 0 ; a < sv_num_edicts ; a + + )
{
2018-08-09 15:50:07 +00:00
char head [ 64 ] ;
2004-08-23 01:38:21 +00:00
edictrun_t * ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , a ) ;
2018-08-09 15:50:07 +00:00
QC_snprintfz ( head , sizeof ( head ) , " {//%i \n " , a ) ;
AddS ( head ) ;
2004-08-23 01:38:21 +00:00
2015-09-14 10:36:42 +00:00
if ( ed - > ereftype = = ER_ENTITY ) //free entities write a {} with no data. the loader detects this specifically.
2013-08-21 06:55:54 +00:00
ED_WriteEdict ( progfuncs , ed , buf , bufofs , bufmax , true ) ;
2004-08-23 01:38:21 +00:00
AddS ( " } \n " ) ;
}
2013-08-21 06:55:54 +00:00
return buf ;
2004-08-23 01:38:21 +00:00
2018-05-21 13:47:53 +00:00
case 0 : //Writes entities only
break ;
case 1 :
case 3 :
2004-08-23 01:38:21 +00:00
AddS ( " general { \n " ) ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
AddS ( qcva ( " \" maxprogs \" \" %i \" \n " , prinst . maxprogs ) ) ;
2004-08-23 01:38:21 +00:00
// AddS(qcva("\"maxentities\" \"%i\"\n", maxedicts));
// AddS(qcva("\"mem\" \"%i\"\n", hunksize));
// AddS(qcva("\"crc\" \"%i\"\n", header_crc));
AddS ( qcva ( " \" numentities \" \" %i \" \n " , sv_num_edicts ) ) ;
AddS ( " } \n " ) ;
2005-10-09 21:59:54 +00:00
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
oldprogs = prinst . pr_typecurrent ;
2004-08-23 01:38:21 +00:00
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
for ( a = 0 ; a < prinst . maxprogs ; a + + )
2004-08-23 01:38:21 +00:00
{
if ( ! pr_progstate [ a ] . progs )
continue ;
{
AddS ( qcva ( " progs %i { \n " , a ) ) ;
AddS ( qcva ( " \" filename \" \" %s \" \n " , pr_progstate [ a ] . filename ) ) ;
2014-10-05 20:04:11 +00:00
AddS ( qcva ( " \" crc \" \" %i \" \n " , pr_progstate [ a ] . progs - > crc ) ) ;
2004-08-23 01:38:21 +00:00
AddS ( " } \n " ) ;
}
}
2004-12-08 04:14:52 +00:00
if ( alldata = = 3 )
{
//include callstack
AddS ( " stacktrace { \n " ) ;
2015-08-02 19:08:36 +00:00
PR_SaveCallStack ( progfuncs , buf , bufofs , bufmax ) ;
2004-12-08 04:14:52 +00:00
AddS ( " } \n " ) ;
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
for ( a = 0 ; a < prinst . maxprogs ; a + + ) //I would mix, but external functions rely on other progs being loaded
2004-08-23 01:38:21 +00:00
{
if ( ! pr_progstate [ a ] . progs )
continue ;
AddS ( qcva ( " globals %i { \n " , a ) ) ;
PR_SwitchProgs ( progfuncs , a ) ;
2013-08-21 06:55:54 +00:00
ED_WriteGlobals ( progfuncs , buf , bufofs , bufmax ) ;
2004-08-23 01:38:21 +00:00
AddS ( " } \n " ) ;
}
PR_SwitchProgs ( progfuncs , oldprogs ) ;
}
2018-05-21 13:47:53 +00:00
2004-08-23 01:38:21 +00:00
for ( a = 0 ; a < sv_num_edicts ; a + + )
{
edictrun_t * ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , a ) ;
2015-09-14 10:36:42 +00:00
if ( ! ed | | ed - > ereftype ! = ER_ENTITY )
2004-08-23 01:38:21 +00:00
continue ;
AddS ( qcva ( " entity %i{ \n " , a ) ) ;
2013-08-21 06:55:54 +00:00
ED_WriteEdict ( progfuncs , ed , buf , bufofs , bufmax , false ) ;
2004-08-23 01:38:21 +00:00
AddS ( " } \n " ) ;
}
2013-08-21 06:55:54 +00:00
return buf ;
2004-08-23 01:38:21 +00:00
# undef AddS
}
int header_crc ;
//if 'general' block is found, this is a compleate state, otherwise, we should spawn entities like
2018-08-23 06:03:31 +00:00
int PDECL PR_LoadEnts ( pubprogfuncs_t * ppf , const char * file , void * ctx , void ( PDECL * entspawned ) ( pubprogfuncs_t * progfuncs , struct edict_s * ed , void * ctx , const char * entstart , const char * entend ) , pbool ( PDECL * extendedterm ) ( pubprogfuncs_t * progfuncs , void * ctx , const char * * extline ) )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2014-03-30 08:55:06 +00:00
const char * datastart ;
2005-10-09 21:59:54 +00:00
2016-10-22 07:06:51 +00:00
// eval_t *selfvar = NULL;
// eval_t *var;
// const char *spawnwarned[20] = {NULL};
2004-08-23 01:38:21 +00:00
char filename [ 128 ] ;
2005-10-09 21:59:54 +00:00
int num ;
2004-08-23 01:38:21 +00:00
edictrun_t * ed = NULL ;
ddef16_t * d16 ;
ddef32_t * d32 ;
2012-01-24 04:24:14 +00:00
void * oldglobals = NULL ;
int oldglobalssize = 0 ;
2004-08-23 01:38:21 +00:00
2005-06-14 04:52:10 +00:00
extern edictrun_t tempedict ;
2004-08-23 01:38:21 +00:00
int crc = 1 ;
int entsize = 0 ;
int numents = 0 ;
2018-09-01 04:18:08 +00:00
pbool maphacks = false ;
2004-08-23 01:38:21 +00:00
pbool resethunk = 0 ;
pbool isloadgame ;
2013-05-11 14:02:55 +00:00
if ( file & & ! strncmp ( file , " loadgame " , 8 ) )
2018-08-03 11:08:04 +00:00
{ //this is internally inserted for legacy saved games.
2004-08-23 01:38:21 +00:00
isloadgame = true ;
numents = - 1 ;
file + = 8 ;
}
else
isloadgame = false ;
while ( 1 )
{
datastart = file ;
2018-08-23 06:03:31 +00:00
if ( extendedterm )
{
//skip simple leading whitespace
while ( qcc_iswhite ( * file ) )
file + + ;
if ( file [ 0 ] = = ' / ' & & file [ 1 ] = = ' * ' )
{ //looks like we have a hidden extension.
file + = 2 ;
for ( ; ; )
{
//skip to end of line
if ( ! * file )
break ; //unexpected EOF
else if ( file [ 0 ] = = ' * ' & & file [ 1 ] = = ' / ' )
{ //end of comment
file + = 2 ;
break ;
}
else if ( * file ! = ' \n ' )
{
file + + ;
continue ;
}
file + + ; //skip past the \n
while ( * file = = ' ' | | * file = = ' \t ' )
file + + ; //skip leading indentation
if ( file [ 0 ] = = ' * ' & & file [ 1 ] = = ' / ' )
{ //end of comment
file + = 2 ;
break ;
}
else if ( * file = = ' / ' )
continue ; //embedded comment. ignore the line. not going to do nested comments, because those are not normally valid anyway, just C++-style inside C-style.
else if ( extendedterm ( ppf , ctx , & file ) )
; //found a term we recognised
else
; //unknown line, but this is a comment so whatever
}
continue ;
}
}
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
if ( file = = NULL )
break ; //finished reading file
2011-02-25 04:22:14 +00:00
else if ( ! strcmp ( qcc_token , " Version " ) )
{
file = QCC_COM_Parse ( file ) ;
//qcc_token is a version number
}
2004-08-23 01:38:21 +00:00
else if ( ! strcmp ( qcc_token , " entity " ) )
{
if ( entsize = = 0 & & resethunk ) //edicts have not yet been initialized, and this is a compleate load (memsize has been set)
{
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
entsize = PR_InitEnts ( & progfuncs - > funcs , prinst . maxedicts ) ;
2004-08-23 01:38:21 +00:00
// sv_num_edicts = numents;
for ( num = 0 ; num < numents ; num + + )
{
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , num ) ;
2004-09-20 23:25:38 +00:00
2004-08-23 01:38:21 +00:00
if ( ! ed )
{
2021-05-27 11:34:15 +00:00
ed = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , num , false , 0 ) ;
2015-09-14 10:36:42 +00:00
ed - > ereftype = ER_FREE ;
2008-06-01 22:06:22 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) ed , true ) ;
2004-08-23 01:38:21 +00:00
}
}
}
file = QCC_COM_Parse ( file ) ;
num = atoi ( qcc_token ) ;
2016-10-22 07:06:51 +00:00
datastart = file ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
if ( qcc_token [ 0 ] ! = ' { ' )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Progs loading found %s, not '{' " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
if ( ! resethunk )
2015-09-14 10:36:42 +00:00
ed = ( edictrun_t * ) ED_Alloc ( & progfuncs - > funcs , false , 0 ) ;
2004-08-23 01:38:21 +00:00
else
{
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , num ) ;
2004-09-20 23:25:38 +00:00
2004-08-23 01:38:21 +00:00
if ( ! ed )
{
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Edict was not allocated \n " ) ;
2021-05-27 11:34:15 +00:00
ed = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , num , false , 0 ) ;
2004-08-23 01:38:21 +00:00
}
}
2015-09-14 10:36:42 +00:00
ed - > ereftype = ER_ENTITY ;
2008-06-01 22:06:22 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) ed , true ) ;
2018-09-01 04:18:08 +00:00
file = ED_ParseEdict ( progfuncs , file , ed , & maphacks ) ;
2004-08-23 01:38:21 +00:00
2018-08-23 06:03:31 +00:00
if ( entspawned )
entspawned ( ppf , ( struct edict_s * ) ed , ctx , datastart , file ) ;
2004-08-23 01:38:21 +00:00
}
else if ( ! strcmp ( qcc_token , " progs " ) )
{
file = QCC_COM_Parse ( file ) ;
num = atoi ( qcc_token ) ;
2005-10-09 21:59:54 +00:00
file = QCC_COM_Parse ( file ) ;
2004-08-23 01:38:21 +00:00
if ( qcc_token [ 0 ] ! = ' { ' )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Progs loading found %s, not '{' " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
2005-10-09 21:59:54 +00:00
filename [ 0 ] = ' \0 ' ;
header_crc = 0 ;
2004-08-23 01:38:21 +00:00
while ( 1 )
{
file = QCC_COM_Parse ( file ) ; //read the key
if ( ! file )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " EOF in progs block " ) ;
2004-08-23 01:38:21 +00:00
if ( ! strcmp ( " filename " , qcc_token ) ) //check key get and save values
{ file = QCC_COM_Parse ( file ) ; strcpy ( filename , qcc_token ) ; }
else if ( ! strcmp ( " crc " , qcc_token ) )
{ file = QCC_COM_Parse ( file ) ; header_crc = atoi ( qcc_token ) ; }
2015-02-02 08:01:53 +00:00
else if ( ! strcmp ( " numbuiltins " , qcc_token ) ) //no longer supported.
{ file = QCC_COM_Parse ( file ) ; /*qcc_token unused*/ }
2004-08-23 01:38:21 +00:00
else if ( qcc_token [ 0 ] = = ' } ' ) //end of block
break ;
else
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad key \" %s \" in progs block " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
2014-10-05 20:04:11 +00:00
PR_ReallyLoadProgs ( progfuncs , filename , & pr_progstate [ num ] , true ) ;
2012-01-24 04:24:14 +00:00
if ( num = = 0 & & oldglobals )
{
2020-05-30 12:12:46 +00:00
if ( pr_progstate [ 0 ] . globals_bytes = = oldglobalssize )
memcpy ( pr_progstate [ 0 ] . globals , oldglobals , pr_progstate [ 0 ] . globals_bytes ) ;
2012-01-24 04:24:14 +00:00
free ( oldglobals ) ;
oldglobals = NULL ;
}
2012-11-27 03:23:19 +00:00
PR_SwitchProgs ( progfuncs , 0 ) ;
2004-08-23 01:38:21 +00:00
}
else if ( ! strcmp ( qcc_token , " globals " ) )
{
if ( entsize = = 0 & & resethunk ) //by the time we parse some globals, we MUST have loaded all progs
{
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
entsize = PR_InitEnts ( & progfuncs - > funcs , prinst . maxedicts ) ;
2004-08-23 01:38:21 +00:00
// sv_num_edicts = numents;
for ( num = 0 ; num < numents ; num + + )
{
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , num ) ;
2004-09-20 23:25:38 +00:00
2004-08-23 01:38:21 +00:00
if ( ! ed )
{
2021-05-27 11:34:15 +00:00
ed = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , num , false , 0 ) ;
2015-09-14 10:36:42 +00:00
ed - > ereftype = ER_FREE ;
2004-08-23 01:38:21 +00:00
}
2008-06-01 22:06:22 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) ed , true ) ;
2004-08-23 01:38:21 +00:00
}
}
file = QCC_COM_Parse ( file ) ;
num = atoi ( qcc_token ) ;
file = QCC_COM_Parse ( file ) ;
if ( qcc_token [ 0 ] ! = ' { ' )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Globals loading found \' %s \' , not '{' " , qcc_token ) ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
PR_SwitchProgs ( progfuncs , num ) ;
while ( 1 )
2005-10-09 21:59:54 +00:00
{
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
if ( qcc_token [ 0 ] = = ' } ' )
break ;
else if ( ! qcc_token [ 0 ] | | ! file )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " EOF when parsing global values " ) ;
2004-08-23 01:38:21 +00:00
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
if ( ! ( d16 = ED_FindGlobal16 ( progfuncs , qcc_token ) ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " global value %s not found \n " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
}
else
{
file = QCC_COM_Parse ( file ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
ED_ParseEpair ( progfuncs , ( char * ) pr_globals - progfuncs - > funcs . stringtable , d16 - > ofs , d16 - > type , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
if ( ! ( d32 = ED_FindGlobal32 ( progfuncs , qcc_token ) ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " global value %s not found \n " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
}
else
{
file = QCC_COM_Parse ( file ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
ED_ParseEpair ( progfuncs , ( char * ) pr_globals - progfuncs - > funcs . stringtable , d32 - > ofs , d32 - > type , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type in LoadEnts " ) ;
2004-08-23 01:38:21 +00:00
}
}
2012-11-27 03:23:19 +00:00
PR_SwitchProgs ( progfuncs , 0 ) ;
2004-08-23 01:38:21 +00:00
// file = QCC_COM_Parse(file);
// if (com_token[0] != '}')
2005-10-09 21:59:54 +00:00
// Sys_Error("Progs loading found %s, not '}'", qcc_token);
}
2004-08-23 01:38:21 +00:00
else if ( ! strcmp ( qcc_token , " general " ) )
{
QC_StartShares ( progfuncs ) ;
// QC_InitShares(); //forget stuff
// pr_edict_size = 0;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
prinst . max_fields_size = 0 ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
if ( qcc_token [ 0 ] ! = ' { ' )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Progs loading found %s, not '{' " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
while ( 1 )
{
file = QCC_COM_Parse ( file ) ; //read the key
if ( ! file )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " EOF in general block " ) ;
2004-08-23 01:38:21 +00:00
if ( ! strcmp ( " maxprogs " , qcc_token ) ) //check key get and save values
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
{ file = QCC_COM_Parse ( file ) ; prinst . maxprogs = atoi ( qcc_token ) ; }
2004-08-23 01:38:21 +00:00
// else if (!strcmp("maxentities", com_token))
// {file = QCC_COM_Parse(file); maxedicts = atoi(qcc_token);}
// else if (!strcmp("mem", com_token))
// {file = QCC_COM_Parse(file); memsize = atoi(qcc_token);}
// else if (!strcmp("crc", com_token))
// {file = QCC_COM_Parse(file); crc = atoi(qcc_token);}
else if ( ! strcmp ( " numentities " , qcc_token ) )
{ file = QCC_COM_Parse ( file ) ; numents = atoi ( qcc_token ) ; }
else if ( qcc_token [ 0 ] = = ' } ' ) //end of block
break ;
else
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad key \" %s \" in general block " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
2005-10-09 21:59:54 +00:00
2012-01-24 04:24:14 +00:00
if ( oldglobals )
free ( oldglobals ) ;
oldglobals = NULL ;
2020-05-30 12:12:46 +00:00
if ( pr_progstate [ 0 ] . globals_bytes )
2012-01-24 04:24:14 +00:00
{
2020-05-30 12:12:46 +00:00
oldglobals = malloc ( pr_progstate [ 0 ] . globals_bytes ) ;
2012-01-24 04:24:14 +00:00
if ( oldglobals )
{
2020-05-30 12:12:46 +00:00
oldglobalssize = pr_progstate [ 0 ] . globals_bytes ;
2012-01-24 04:24:14 +00:00
memcpy ( oldglobals , pr_progstate [ 0 ] . globals , oldglobalssize ) ;
}
else
2020-05-30 12:12:46 +00:00
externs - > Printf ( " Unable to alloc %i bytes \n " , pr_progstate [ 0 ] . globals_bytes ) ;
2012-01-24 04:24:14 +00:00
}
2013-03-12 22:56:56 +00:00
PRAddressableFlush ( progfuncs , 0 ) ;
2004-08-23 01:38:21 +00:00
resethunk = true ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
pr_progstate = PRHunkAlloc ( progfuncs , sizeof ( progstate_t ) * prinst . maxprogs , " progstatetable " ) ;
prinst . pr_typecurrent = 0 ;
2004-08-23 01:38:21 +00:00
sv_num_edicts = 1 ; //set up a safty buffer so things won't go horribly wrong too often
2005-06-14 04:52:10 +00:00
sv_edicts = ( struct edict_s * ) & tempedict ;
2015-09-14 10:36:42 +00:00
prinst . edicttable = ( struct edictrun_s * * ) ( progfuncs - > funcs . edicttable = & sv_edicts ) ;
2018-04-06 17:21:15 +00:00
progfuncs - > funcs . edicttable_length = numents ;
2004-08-23 01:38:21 +00:00
sv_num_edicts = numents ; //should be fine
// PR_Configure(crc, NULL, memsize, maxedicts, maxprogs);
2005-10-09 21:59:54 +00:00
}
2004-08-23 01:38:21 +00:00
else if ( ! strcmp ( qcc_token , " { " ) )
{
if ( isloadgame )
{
if ( numents = = - 1 ) //globals
{
while ( 1 )
2005-10-09 21:59:54 +00:00
{
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
if ( qcc_token [ 0 ] = = ' } ' )
break ;
else if ( ! qcc_token [ 0 ] | | ! file )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " EOF when parsing global values " ) ;
2004-08-23 01:38:21 +00:00
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
if ( ! ( d16 = ED_FindGlobal16 ( progfuncs , qcc_token ) ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " global value %s not found \n " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
}
else
{
file = QCC_COM_Parse ( file ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
ED_ParseEpair ( progfuncs , ( char * ) pr_globals - progfuncs - > funcs . stringtable , d16 - > ofs , d16 - > type , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
if ( ! ( d32 = ED_FindGlobal32 ( progfuncs , qcc_token ) ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " global value %s not found \n " , qcc_token ) ;
2004-08-23 01:38:21 +00:00
file = QCC_COM_Parse ( file ) ;
}
else
{
file = QCC_COM_Parse ( file ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
ED_ParseEpair ( progfuncs , ( char * ) pr_globals - progfuncs - > funcs . stringtable , d32 - > ofs , d32 - > type , qcc_token ) ;
2004-08-23 01:38:21 +00:00
}
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type in LoadEnts " ) ;
2004-08-23 01:38:21 +00:00
}
}
}
else
{
2021-05-27 11:34:15 +00:00
ed = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , numents , false , 0 ) ;
2004-09-20 23:25:38 +00:00
2008-06-01 22:06:22 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) ed , true ) ;
2015-09-14 10:36:42 +00:00
ed - > ereftype = ER_ENTITY ;
2018-09-01 04:18:08 +00:00
file = ED_ParseEdict ( progfuncs , file , ed , & maphacks ) ;
2004-08-23 01:38:21 +00:00
}
2014-03-30 08:55:06 +00:00
sv_num_edicts = + + numents ;
2004-08-23 01:38:21 +00:00
continue ;
}
if ( entsize = = 0 & & resethunk ) //edicts have not yet been initialized, and this is a compleate load (memsize has been set)
{
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
entsize = PR_InitEnts ( & progfuncs - > funcs , prinst . maxedicts ) ;
2004-08-23 01:38:21 +00:00
// sv_num_edicts = numents;
for ( num = 0 ; num < numents ; num + + )
{
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , num ) ;
2004-09-20 23:25:38 +00:00
2004-08-23 01:38:21 +00:00
if ( ! ed )
{
2021-05-27 11:34:15 +00:00
ed = ( edictrun_t * ) ED_AllocIndex ( & progfuncs - > funcs , num , false , 0 ) ;
2015-09-14 10:36:42 +00:00
ed - > ereftype = ER_FREE ;
2004-08-23 01:38:21 +00:00
}
}
}
if ( ! ed ) //first entity
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , 0 ) ;
else
2015-09-14 10:36:42 +00:00
ed = ( edictrun_t * ) ED_Alloc ( & progfuncs - > funcs , false , 0 ) ;
ed - > ereftype = ER_ENTITY ;
2008-06-01 22:06:22 +00:00
if ( externs - > entspawn )
externs - > entspawn ( ( struct edict_s * ) ed , true ) ;
2018-09-01 04:18:08 +00:00
file = ED_ParseEdict ( progfuncs , file , ed , & maphacks ) ;
2004-08-23 01:38:21 +00:00
2018-08-23 06:03:31 +00:00
if ( entspawned )
entspawned ( ppf , ( struct edict_s * ) ed , ctx , datastart , file ) ;
2004-08-23 01:38:21 +00:00
}
2018-08-23 06:03:31 +00:00
else if ( extendedterm & & extendedterm ( ppf , ctx , & datastart ) )
file = datastart ;
2004-08-23 01:38:21 +00:00
else
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad entity lump: '%s' not recognised (last ent was %i) " , qcc_token , ed ? ed - > entnum : 0 ) ;
2004-08-23 01:38:21 +00:00
}
if ( resethunk )
{
2005-10-09 21:59:54 +00:00
header_crc = crc ;
2004-08-23 01:38:21 +00:00
if ( externs - > loadcompleate )
externs - > loadcompleate ( entsize ) ;
sv_num_edicts = numents ;
}
2012-01-24 04:24:14 +00:00
if ( oldglobals )
free ( oldglobals ) ;
oldglobals = NULL ;
2004-08-23 01:38:21 +00:00
if ( resethunk )
{
return entsize ;
}
else
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
return prinst . max_fields_size ;
2004-08-23 01:38:21 +00:00
}
2013-08-21 06:55:54 +00:00
//FIXME: maxsize is ignored.
2015-11-18 07:37:39 +00:00
char * PDECL PR_SaveEnt ( pubprogfuncs_t * ppf , char * buf , size_t * size , size_t maxsize , struct edict_s * ed )
2004-08-23 01:38:21 +00:00
{
2013-08-21 06:55:54 +00:00
# define AddS(str) PR_Cat(buf, str, size, maxsize)
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2004-08-23 01:38:21 +00:00
fdef_t * d ;
int * v ;
2007-08-08 02:37:59 +00:00
unsigned int i ; unsigned int j ;
2018-10-11 10:31:23 +00:00
const char * name , * mname ;
2014-08-15 02:20:41 +00:00
const char * classname = NULL ;
2014-02-07 08:38:40 +00:00
int classnamelen = 0 ;
2005-10-09 21:59:54 +00:00
int type ;
2004-08-23 01:38:21 +00:00
// if (ed->free)
// continue;
AddS ( " { \n " ) ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
for ( i = 0 ; i < prinst . numfields ; i + + )
2004-08-23 01:38:21 +00:00
{
2005-12-22 20:35:04 +00:00
int len ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
d = & prinst . field [ i ] ;
2005-05-15 18:49:04 +00:00
name = d - > name ;
2005-12-22 20:35:04 +00:00
len = strlen ( name ) ; // should we skip vars with no name?
2013-08-21 06:55:54 +00:00
if ( len > 2 & & name [ len - 2 ] = = ' _ ' & & ( name [ len - 1 ] = = ' x ' | | name [ len - 1 ] = = ' y ' | | name [ len - 1 ] = = ' z ' ) )
2004-08-23 01:38:21 +00:00
continue ; // skip _x, _y, _z vars
2005-10-09 21:59:54 +00:00
2005-05-13 10:42:48 +00:00
v = ( int * ) ( ( edictrun_t * ) ed ) - > fields + d - > ofs ;
2004-08-23 01:38:21 +00:00
// if the value is still all 0, skip the field
type = d - > type & ~ DEF_SAVEGLOBAL ;
for ( j = 0 ; j < type_size [ type ] ; j + + )
if ( v [ j ] )
break ;
if ( j = = type_size [ type ] )
continue ;
2005-10-09 21:59:54 +00:00
2014-02-07 08:38:40 +00:00
if ( strstr ( name , " :: " ) )
{
if ( * name ! = ' : ' )
continue ; //don't directly generate anything from class::foo
if ( ! classname )
{
fdef_t * cnfd ;
cnfd = ED_FindField ( progfuncs , " classname " ) ;
if ( cnfd )
{
string_t * v ;
v = ( string_t * ) ( ( char * ) edvars ( ed ) + cnfd - > ofs * 4 ) ;
classname = PR_StringToNative ( & progfuncs - > funcs , * v ) ;
}
else
classname = " " ;
classnamelen = strlen ( classname ) ;
}
for ( j = i + 1 ; j < prinst . numfields ; j + + )
{
if ( prinst . field [ j ] . ofs = = d - > ofs )
{
mname = prinst . field [ j ] . name ;
if ( ! strncmp ( mname , classname , classnamelen ) & & mname [ classnamelen ] = = ' : ' )
{
//okay, we have a match...
name = prinst . field [ j ] . name ;
break ;
}
}
}
}
2004-08-23 01:38:21 +00:00
//add it to the file
2013-03-12 22:40:16 +00:00
AddS ( " \" " ) ; AddS ( name ) ; AddS ( " \" \" " ) ; AddS ( PR_UglyValueString ( & progfuncs - > funcs , d - > type , ( eval_t * ) v ) ) ; AddS ( " \" \n " ) ;
2004-08-23 01:38:21 +00:00
}
AddS ( " } \n " ) ;
return buf ;
}
2015-11-18 07:37:39 +00:00
struct edict_s * PDECL PR_RestoreEnt ( pubprogfuncs_t * ppf , const char * buf , size_t * size , struct edict_s * ed )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2004-08-23 01:38:21 +00:00
edictrun_t * ent ;
2014-03-30 08:55:06 +00:00
const char * start = buf ;
2018-09-01 04:18:08 +00:00
pbool maphacks = false ; //don't really care.
2004-08-23 01:38:21 +00:00
buf = QCC_COM_Parse ( buf ) ; //read the key
2004-11-23 00:29:10 +00:00
if ( ! buf | | ! * qcc_token )
return NULL ;
2004-08-23 01:38:21 +00:00
if ( strcmp ( qcc_token , " { " ) )
2021-05-27 11:34:15 +00:00
{
externs - > Printf ( " PR_RestoreEnt: with no opening brace " ) ;
return NULL ;
}
2004-08-23 01:38:21 +00:00
if ( ! ed )
2015-09-14 10:36:42 +00:00
ent = ( edictrun_t * ) ED_Alloc ( & progfuncs - > funcs , false , 0 ) ;
2004-08-23 01:38:21 +00:00
else
ent = ( edictrun_t * ) ed ;
2015-09-14 10:36:42 +00:00
if ( ent - > ereftype = = ER_FREE & & externs - > entspawn )
2021-05-27 11:34:15 +00:00
{
memset ( ent - > fields , 0 , ent - > fieldsize ) ;
ent - > ereftype = ER_ENTITY ;
2008-06-01 22:06:22 +00:00
externs - > entspawn ( ( struct edict_s * ) ent , false ) ;
2021-05-27 11:34:15 +00:00
}
if ( ent - > ereftype ! = ER_ENTITY )
return NULL ; //not allowed to spawn it into that ent.
2008-06-01 22:06:22 +00:00
2018-09-01 04:18:08 +00:00
buf = ED_ParseEdict ( progfuncs , buf , ent , & maphacks ) ;
2004-08-23 01:38:21 +00:00
* size = buf - start ;
return ( struct edict_s * ) ent ;
}
# define Host_Error Sys_Error
//return true if pr_progs needs recompiling (source files have changed)
pbool PR_TestRecompile ( progfuncs_t * progfuncs )
{
int newsize ;
int num , found = 0 , lost = 0 , changed = 0 ;
includeddatafile_t * s ;
if ( ! pr_progs - > ofsfiles )
return false ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
num = * ( int * ) ( ( char * ) pr_progs + pr_progs - > ofsfiles ) ;
2005-10-09 21:59:54 +00:00
s = ( includeddatafile_t * ) ( ( char * ) pr_progs + pr_progs - > ofsfiles + 4 ) ;
2004-08-23 01:38:21 +00:00
while ( num > 0 )
{
newsize = externs - > FileSize ( s - > filename ) ;
if ( newsize = = - 1 ) //ignore now missing files. - the referencer must have changed...
lost + + ;
else if ( s - > size ! = newsize ) //file
changed + + ;
else
found + + ;
s + + ;
num - - ;
}
if ( lost > found + changed )
return false ;
if ( changed )
return true ;
return false ;
}
2005-07-16 00:53:08 +00:00
/*
2005-05-17 02:36:54 +00:00
# ifdef _DEBUG
//this is for debugging.
//I'm using this to detect incorrect string types while converting 32bit string pointers with bias to bound indexes.
void PR_TestForWierdness ( progfuncs_t * progfuncs )
{
unsigned int i ;
int e ;
edictrun_t * ed ;
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
if ( ( pr_globaldefs16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ) = = ev_string )
{
if ( G_INT ( pr_globaldefs16 [ i ] . ofs ) < 0 | | G_INT ( pr_globaldefs16 [ i ] . ofs ) > = addressableused )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " String type irregularity on \" %s \" \" %s \" \n " , pr_globaldefs16 [ i ] . s_name + progfuncs - > funcs . stringtable , G_INT ( pr_globaldefs16 [ i ] . ofs ) + progfuncs - > funcs . stringtable ) ;
2005-05-17 02:36:54 +00:00
}
}
for ( i = 0 ; i < numfields ; i + + )
{
if ( ( field [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ) = = ev_string )
{
for ( e = 0 ; e < sv_num_edicts ; e + + )
{
2005-05-19 02:53:03 +00:00
ed = ( edictrun_t * ) EDICT_NUM ( progfuncs , e ) ;
2005-05-17 02:36:54 +00:00
if ( ed - > isfree )
continue ;
if ( ( ( int * ) ed - > fields ) [ field [ i ] . ofs ] < 0 | | ( ( int * ) ed - > fields ) [ field [ i ] . ofs ] > = addressableused )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " String type irregularity \" %s \" \" %s \" \n " , field [ i ] . name , ( ( int * ) ed - > fields ) [ field [ i ] . ofs ] + progfuncs - > funcs . stringtable ) ;
2005-05-17 02:36:54 +00:00
}
}
}
}
# endif
2005-07-16 00:53:08 +00:00
*/
2015-04-14 12:24:05 +00:00
void PR_CleanUpStatements16 ( progfuncs_t * progfuncs , dstatement16_t * st , pbool hexencalling )
{
unsigned int numst = pr_progs - > numstatements ;
unsigned int numglob = pr_progs - > numglobals + 3 ; //+3 because I'm too lazy to deal with vectors
unsigned int i ;
for ( i = 0 ; i < numst ; i + + )
{
if ( st [ i ] . op > = OP_CALL1 & & st [ i ] . op < = OP_CALL8 & & hexencalling )
st [ i ] . op + = OP_CALL1H - OP_CALL1 ;
if ( st [ i ] . op > = OP_RAND0 & & st [ i ] . op < = OP_RANDV2 & & hexencalling )
if ( ! st [ i ] . c )
st [ i ] . c = OFS_RETURN ;
added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
//sanitise inputs
2016-07-12 00:40:13 +00:00
if ( st [ i ] . a > = numglob )
2015-04-14 12:24:05 +00:00
if ( st [ i ] . op ! = OP_GOTO )
st [ i ] . op = ~ 0 ;
2016-07-12 00:40:13 +00:00
if ( st [ i ] . b > = numglob )
2015-04-14 12:24:05 +00:00
if ( st [ i ] . op ! = OP_IFNOT_I & & st [ i ] . op ! = OP_IF_I & &
st [ i ] . op ! = OP_IFNOT_F & & st [ i ] . op ! = OP_IF_F & &
st [ i ] . op ! = OP_IFNOT_S & & st [ i ] . op ! = OP_IF_S & &
st [ i ] . op ! = OP_BOUNDCHECK & & st [ i ] . op ! = OP_CASE )
st [ i ] . op = ~ 0 ;
2016-07-12 00:40:13 +00:00
if ( st [ i ] . c > = numglob )
2015-04-14 12:24:05 +00:00
if ( st [ i ] . op ! = OP_BOUNDCHECK & & st [ i ] . op ! = OP_CASERANGE )
st [ i ] . op = ~ 0 ;
}
}
void PR_CleanUpStatements32 ( progfuncs_t * progfuncs , dstatement32_t * st , pbool hexencalling )
{
unsigned int numst = pr_progs - > numstatements ;
unsigned int numglob = pr_progs - > numglobals + 3 ; //+3 because I'm too lazy to deal with vectors
unsigned int i ;
for ( i = 0 ; i < numst ; i + + )
{
if ( st [ i ] . op > = OP_CALL1 & & st [ i ] . op < = OP_CALL8 & & hexencalling )
st [ i ] . op + = OP_CALL1H - OP_CALL1 ;
if ( st [ i ] . op > = OP_RAND0 & & st [ i ] . op < = OP_RANDV2 & & hexencalling )
if ( ! st [ i ] . c )
st [ i ] . c = OFS_RETURN ;
added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
//sanitise inputs
2016-07-12 00:40:13 +00:00
if ( st [ i ] . a > = numglob )
2015-04-14 12:24:05 +00:00
if ( st [ i ] . op ! = OP_GOTO )
st [ i ] . op = ~ 0 ;
2016-07-12 00:40:13 +00:00
if ( st [ i ] . b > = numglob )
2015-04-14 12:24:05 +00:00
if ( st [ i ] . op ! = OP_IFNOT_I & & st [ i ] . op ! = OP_IF_I & &
st [ i ] . op ! = OP_IFNOT_F & & st [ i ] . op ! = OP_IF_F & &
st [ i ] . op ! = OP_IFNOT_S & & st [ i ] . op ! = OP_IF_S & &
added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
st [ i ] . op ! = OP_BOUNDCHECK & & st [ i ] . op ! = OP_CASE )
2015-04-14 12:24:05 +00:00
st [ i ] . op = ~ 0 ;
2016-07-12 00:40:13 +00:00
if ( st [ i ] . c > = numglob )
added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
if ( st [ i ] . op ! = OP_BOUNDCHECK & & st [ i ] . op ! = OP_CASERANGE )
2015-04-14 12:24:05 +00:00
st [ i ] . op = ~ 0 ;
}
}
2004-08-23 01:38:21 +00:00
char * decode ( int complen , int len , int method , char * info , char * buffer ) ;
2018-04-19 17:30:39 +00:00
unsigned char * PDECL PR_GetHeapBuffer ( void * ctx , size_t bufsize )
2018-01-22 19:18:04 +00:00
{
return PRHunkAlloc ( ctx , bufsize + 1 , " proginfo " ) ;
}
2004-08-23 01:38:21 +00:00
/*
= = = = = = = = = = = = = = =
PR_LoadProgs
= = = = = = = = = = = = = = =
*/
2020-06-27 19:32:49 +00:00
pbool PR_ReallyLoadProgs ( progfuncs_t * progfuncs , const char * filename , progstate_t * progstate , pbool complain )
2004-08-23 01:38:21 +00:00
{
2014-08-03 14:47:47 +00:00
unsigned int i , j , type ;
2004-08-23 01:38:21 +00:00
// float fl;
2018-01-22 19:18:04 +00:00
// int len;
2004-08-23 01:38:21 +00:00
// int num;
// dfunction_t *f, *f2;
2005-10-09 21:59:54 +00:00
ddef16_t * d16 ;
2004-08-23 01:38:21 +00:00
ddef32_t * d32 ;
int * d2 ;
eval_t * eval ;
char * s ;
int progstype ;
int trysleft = 2 ;
// bool qfhack = false;
pbool isfriked = false ; //all imediate values were stripped, which causes problems with strings.
pbool hexencalling = false ; //hexen style calling convention. The opcodes themselves are used as part of passing the arguments;
ddef16_t * gd16 , * fld16 ;
float * glob ;
dfunction_t * fnc ;
2014-08-03 14:47:47 +00:00
mfunction_t * fnc2 ;
2004-08-23 01:38:21 +00:00
dstatement16_t * st16 ;
2014-10-05 20:04:11 +00:00
size_t fsz ;
2018-01-22 19:18:04 +00:00
int len ;
2004-08-23 01:38:21 +00:00
int hmark = 0xffffffff ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
int reorg = prinst . reorganisefields | | prinst . numfields ;
2004-08-23 01:38:21 +00:00
2005-05-15 18:49:04 +00:00
int stringadjust ;
2017-08-14 16:38:44 +00:00
int * basictypetable ;
2005-10-09 21:59:54 +00:00
current_progstate = progstate ;
2004-08-23 01:38:21 +00:00
strcpy ( current_progstate - > filename , filename ) ;
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
// flush the non-C variable lookup cache
// for (i=0 ; i<GEFV_CACHESIZE ; i++)
// gefvCache[i].field[0] = 0;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
memset ( & prinst . spawnflagscache , 0 , sizeof ( evalc_t ) ) ;
2004-08-23 01:38:21 +00:00
if ( externs - > autocompile = = PR_COMPILEALWAYS ) //always compile before loading
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Forcing compile of progs %s \n " , filename ) ;
2004-08-23 01:38:21 +00:00
if ( ! CompileFile ( progfuncs , filename ) )
return false ;
}
// CRC_Init (&pr_crc);
retry :
2018-01-22 19:18:04 +00:00
hmark = PRHunkMark ( progfuncs ) ;
2018-04-20 19:09:14 +00:00
pr_progs = externs - > ReadFile ( filename , PR_GetHeapBuffer , progfuncs , & fsz , false ) ;
2018-01-22 19:18:04 +00:00
if ( ! pr_progs )
2004-08-23 01:38:21 +00:00
{
if ( externs - > autocompile = = PR_COMPILENEXIST | | externs - > autocompile = = PR_COMPILECHANGED ) //compile if file is not found (if 2, we have already tried, so don't bother)
{
if ( hmark = = 0xffffffff ) //first try
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " couldn't open progs %s. Attempting to compile. \n " , filename ) ;
2004-08-23 01:38:21 +00:00
CompileFile ( progfuncs , filename ) ;
}
2018-04-20 19:09:14 +00:00
pr_progs = externs - > ReadFile ( filename , PR_GetHeapBuffer , progfuncs , & fsz , false ) ;
2018-01-22 19:18:04 +00:00
if ( ! pr_progs )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Couldn't find or compile file %s \n " , filename ) ;
2004-08-23 01:38:21 +00:00
return false ;
}
}
else if ( externs - > autocompile = = PR_COMPILEIGNORE )
return false ;
else
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Couldn't find file %s \n " , filename ) ;
2004-08-23 01:38:21 +00:00
return false ;
}
}
// for (i=0 ; i<len ; i++)
// CRC_ProcessByte (&pr_crc, ((byte *)pr_progs)[i]);
// byte swap the header
# ifndef NOENDIAN
2007-07-20 17:02:38 +00:00
for ( i = 0 ; i < standard_dprograms_t_size / sizeof ( int ) ; i + + )
2005-05-22 13:42:10 +00:00
( ( int * ) pr_progs ) [ i ] = PRLittleLong ( ( ( int * ) pr_progs ) [ i ] ) ;
2004-08-23 01:38:21 +00:00
# endif
if ( pr_progs - > version = = PROG_VERSION )
{
2018-10-11 10:31:23 +00:00
// externs->Printf("Opening standard progs file \"%s\"\n", filename);
2011-03-04 13:59:06 +00:00
current_progstate - > structtype = PST_DEFAULT ;
}
else if ( pr_progs - > version = = PROG_QTESTVERSION )
{
current_progstate - > structtype = PST_QTEST ;
2004-08-23 01:38:21 +00:00
}
2005-02-28 07:16:19 +00:00
else if ( pr_progs - > version = = PROG_EXTENDEDVERSION )
2004-08-23 01:38:21 +00:00
{
2007-07-20 17:02:38 +00:00
# ifndef NOENDIAN
for ( i = standard_dprograms_t_size / sizeof ( int ) ; i < sizeof ( dprograms_t ) / sizeof ( int ) ; i + + )
( ( int * ) pr_progs ) [ i ] = PRLittleLong ( ( ( int * ) pr_progs ) [ i ] ) ;
# endif
2004-08-23 01:38:21 +00:00
if ( pr_progs - > secondaryversion = = PROG_SECONDARYVERSION16 )
{
2018-10-11 10:31:23 +00:00
// externs->Printf("Opening 16bit fte progs file \"%s\"\n", filename);
2011-03-04 13:59:06 +00:00
current_progstate - > structtype = PST_DEFAULT ;
2004-08-23 01:38:21 +00:00
}
else if ( pr_progs - > secondaryversion = = PROG_SECONDARYVERSION32 )
{
2018-10-11 10:31:23 +00:00
// externs->Printf("Opening 32bit fte progs file \"%s\"\n", filename);
2011-03-04 13:59:06 +00:00
current_progstate - > structtype = PST_FTE32 ;
2004-08-23 01:38:21 +00:00
}
2020-07-01 05:32:21 +00:00
else if ( pr_progs - > secondaryversion = = PROG_SECONDARYUHEXEN2 )
{
// externs->Printf("Opening uhexen2 progs file \"%s\"\n", filename);
current_progstate - > structtype = PST_UHEXEN2 ;
pr_progs - > version = PROG_VERSION ; //not fte.
}
else if ( pr_progs - > secondaryversion = = PROG_SECONDARYKKQWSV )
{
// externs->Printf("Opening KK7 progs file \"%s\"\n", filename);
current_progstate - > structtype = PST_KKQWSV ; //KK progs. Yuck. Disabling saving would be a VERY good idea.
pr_progs - > version = PROG_VERSION ; //not fte.
}
2004-08-23 01:38:21 +00:00
else
{
2020-07-01 05:32:21 +00:00
externs - > Printf ( " %s has no v7 verification code, assuming kkqwsv format \n " , filename ) ;
2018-10-11 10:31:23 +00:00
// externs->Printf("Opening KK7 progs file \"%s\"\n", filename);
2011-03-04 13:59:06 +00:00
current_progstate - > structtype = PST_KKQWSV ; //KK progs. Yuck. Disabling saving would be a VERY good idea.
2004-08-23 01:38:21 +00:00
pr_progs - > version = PROG_VERSION ; //not fte.
}
/* else
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Progs extensions are not compatible \n Try recompiling with the FTE compiler \n " ) ;
2004-08-23 01:38:21 +00:00
HunkFree ( hmark ) ;
pr_progs = NULL ;
return false ;
}
*/ }
else
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " %s has wrong version number (%i should be %i) \n " , filename , pr_progs - > version , PROG_VERSION ) ;
2004-08-23 01:38:21 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
//progs contains enough info for use to recompile it.
2005-03-10 03:55:18 +00:00
if ( trysleft & & ( externs - > autocompile = = PR_COMPILECHANGED | | externs - > autocompile = = PR_COMPILEEXISTANDCHANGED ) & & pr_progs - > version = = PROG_EXTENDEDVERSION )
2004-08-23 01:38:21 +00:00
{
if ( PR_TestRecompile ( progfuncs ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Source file has changed \n Recompiling. \n " ) ;
2004-08-23 01:38:21 +00:00
if ( CompileFile ( progfuncs , filename ) )
{
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
trysleft - - ;
goto retry ;
}
}
}
if ( ! trysleft ) //the progs exists, let's just be happy about it.
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Progs is out of date and uncompilable \n " ) ;
2004-08-23 01:38:21 +00:00
2019-09-04 08:32:22 +00:00
if ( externs - > CheckHeaderCrc & & ! externs - > CheckHeaderCrc ( & progfuncs - > funcs , prinst . pr_typecurrent , pr_progs - > crc , filename ) )
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
// externs->Printf ("%s system vars have been modified, progdefs.h is out of date\n", filename);
2004-08-23 01:38:21 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
2009-05-24 10:11:17 +00:00
if ( pr_progs - > version = = PROG_EXTENDEDVERSION & & pr_progs - > blockscompressed & & ! QC_decodeMethodSupported ( 2 ) )
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " %s uses compression \n " , filename ) ;
2009-05-24 10:11:17 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
2020-06-27 19:32:49 +00:00
fnc = ( dfunction_t * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_functions ) ;
2004-08-23 01:38:21 +00:00
pr_strings = ( ( char * ) pr_progs + pr_progs - > ofs_strings ) ;
2020-06-27 19:32:49 +00:00
current_progstate - > globaldefs = * ( void * * ) & gd16 = ( void * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_globaldefs ) ;
current_progstate - > fielddefs = * ( void * * ) & fld16 = ( void * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_fielddefs ) ;
current_progstate - > statements = ( void * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_statements ) ;
2004-08-23 01:38:21 +00:00
2020-06-27 19:32:49 +00:00
glob = pr_globals = ( void * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_globals ) ;
2020-05-30 12:12:46 +00:00
current_progstate - > globals_bytes = pr_progs - > numglobals * sizeof ( * pr_globals ) ;
2004-08-23 01:38:21 +00:00
pr_linenums = NULL ;
pr_types = NULL ;
2005-02-28 07:16:19 +00:00
if ( pr_progs - > version = = PROG_EXTENDEDVERSION )
2004-08-23 01:38:21 +00:00
{
if ( pr_progs - > ofslinenums )
2020-06-27 19:32:49 +00:00
pr_linenums = ( int * ) ( ( pbyte * ) pr_progs + pr_progs - > ofslinenums ) ;
2004-08-23 01:38:21 +00:00
if ( pr_progs - > ofs_types )
2020-06-27 19:32:49 +00:00
pr_types = ( typeinfo_t * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_types ) ;
2004-08-23 01:38:21 +00:00
//start decompressing stuff...
if ( pr_progs - > blockscompressed & 1 ) //statements
{
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
2004-08-23 01:38:21 +00:00
len = sizeof ( dstatement16_t ) * pr_progs - > numstatements ;
break ;
2011-03-04 13:59:06 +00:00
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
len = sizeof ( dstatement32_t ) * pr_progs - > numstatements ;
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2018-01-22 20:50:50 +00:00
len = 0 ;
2004-08-23 01:38:21 +00:00
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dstatements " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_statements16 ) , len , 2 , ( char * ) ( ( ( int * ) pr_statements16 ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2004-09-20 23:25:38 +00:00
current_progstate - > statements = ( dstatement16_t * ) s ;
2004-08-23 01:38:21 +00:00
}
if ( pr_progs - > blockscompressed & 2 ) //global defs
{
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
2004-08-23 01:38:21 +00:00
len = sizeof ( ddef16_t ) * pr_progs - > numglobaldefs ;
break ;
2011-03-04 13:59:06 +00:00
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
len = sizeof ( ddef32_t ) * pr_progs - > numglobaldefs ;
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2018-01-22 20:50:50 +00:00
len = 0 ;
2005-10-09 21:59:54 +00:00
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dglobaldefs " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_globaldefs16 ) , len , 2 , ( char * ) ( ( ( int * ) pr_globaldefs16 ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2004-09-20 23:25:38 +00:00
gd16 = * ( ddef16_t * * ) & current_progstate - > globaldefs = ( ddef16_t * ) s ;
2004-08-23 01:38:21 +00:00
}
if ( pr_progs - > blockscompressed & 4 ) //fields
{
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
2004-08-23 01:38:21 +00:00
len = sizeof ( ddef16_t ) * pr_progs - > numglobaldefs ;
break ;
2011-03-04 13:59:06 +00:00
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
len = sizeof ( ddef32_t ) * pr_progs - > numglobaldefs ;
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2018-01-22 20:50:50 +00:00
len = 0 ;
2005-10-09 21:59:54 +00:00
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " progfieldtable " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_fielddefs16 ) , len , 2 , ( char * ) ( ( ( int * ) pr_fielddefs16 ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2004-09-20 23:25:38 +00:00
* ( ddef16_t * * ) & current_progstate - > fielddefs = ( ddef16_t * ) s ;
2004-08-23 01:38:21 +00:00
}
if ( pr_progs - > blockscompressed & 8 ) //functions
{
len = sizeof ( dfunction_t ) * pr_progs - > numfunctions ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dfunctiontable " ) ;
2014-08-03 14:47:47 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) fnc ) , len , 2 , ( char * ) ( ( ( int * ) fnc ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2014-08-03 14:47:47 +00:00
fnc = ( dfunction_t * ) s ;
2004-08-23 01:38:21 +00:00
}
if ( pr_progs - > blockscompressed & 16 ) //string table
{
len = sizeof ( char ) * pr_progs - > numstrings ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dstringtable " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_strings ) , len , 2 , ( char * ) ( ( ( int * ) pr_strings ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
pr_strings = ( char * ) s ;
}
if ( pr_progs - > blockscompressed & 32 ) //globals
{
len = sizeof ( float ) * pr_progs - > numglobals ;
2015-04-14 12:24:05 +00:00
s = PRHunkAlloc ( progfuncs , len + sizeof ( float ) * 2 , " dglobaltable " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_globals ) , len , 2 , ( char * ) ( ( ( int * ) pr_globals ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2005-05-15 18:49:04 +00:00
glob = pr_globals = ( float * ) s ;
2004-08-23 01:38:21 +00:00
}
2005-03-28 00:11:59 +00:00
if ( pr_linenums & & pr_progs - > blockscompressed & 64 ) //line numbers
2004-08-23 01:38:21 +00:00
{
len = sizeof ( int ) * pr_progs - > numstatements ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dlinenumtable " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_linenums ) , len , 2 , ( char * ) ( ( ( int * ) pr_linenums ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
2005-10-09 21:59:54 +00:00
pr_linenums = ( int * ) s ;
2004-08-23 01:38:21 +00:00
}
if ( pr_types & & pr_progs - > blockscompressed & 128 ) //types
2005-10-09 21:59:54 +00:00
{
2004-08-23 01:38:21 +00:00
len = sizeof ( typeinfo_t ) * pr_progs - > numtypes ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
s = PRHunkAlloc ( progfuncs , len , " dtypes " ) ;
2005-05-22 13:42:10 +00:00
QC_decode ( progfuncs , PRLittleLong ( * ( int * ) pr_types ) , len , 2 , ( char * ) ( ( ( int * ) pr_types ) + 1 ) , s ) ;
2004-08-23 01:38:21 +00:00
pr_types = ( typeinfo_t * ) s ;
}
}
2005-05-15 18:49:04 +00:00
len = sizeof ( char ) * pr_progs - > numstrings ;
2015-06-14 08:16:15 +00:00
s = PRAddressableExtend ( progfuncs , pr_strings , len , 0 ) ;
2005-05-15 18:49:04 +00:00
pr_strings = ( char * ) s ;
len = sizeof ( float ) * pr_progs - > numglobals ;
2015-06-14 08:16:15 +00:00
s = PRAddressableExtend ( progfuncs , pr_globals , len , sizeof ( float ) * 2 ) ;
2005-05-15 18:49:04 +00:00
glob = pr_globals = ( float * ) s ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( progfuncs - > funcs . stringtable )
stringadjust = pr_strings - progfuncs - > funcs . stringtable ;
2005-05-15 18:49:04 +00:00
else
stringadjust = 0 ;
2004-11-13 17:32:03 +00:00
if ( ! pr_linenums )
{
unsigned int lnotype = * ( unsigned int * ) " LNOF " ;
unsigned int version = 1 ;
int ohm ;
unsigned int * file ;
char lnoname [ 128 ] ;
ohm = PRHunkMark ( progfuncs ) ;
2004-11-23 00:29:10 +00:00
strcpy ( lnoname , filename ) ;
StripExtension ( lnoname ) ;
2004-11-13 17:32:03 +00:00
strcat ( lnoname , " .lno " ) ;
2018-04-20 19:09:14 +00:00
file = externs - > ReadFile ( lnoname , PR_GetHeapBuffer , progfuncs , & fsz , false ) ;
2018-01-22 19:18:04 +00:00
if ( file )
{
if ( file [ 0 ] ! = lnotype
| | file [ 1 ] ! = version
| | file [ 2 ] ! = pr_progs - > numglobaldefs
| | file [ 3 ] ! = pr_progs - > numglobals
| | file [ 4 ] ! = pr_progs - > numfielddefs
| | file [ 5 ] ! = pr_progs - > numstatements
)
2004-11-13 17:32:03 +00:00
{
2018-01-22 19:18:04 +00:00
PRHunkFree ( progfuncs , ohm ) ; //whoops: old progs or incompatible
2004-11-13 17:32:03 +00:00
}
2018-01-22 19:18:04 +00:00
else
pr_linenums = file + 6 ;
2004-11-13 17:32:03 +00:00
}
}
2014-08-03 14:47:47 +00:00
pr_cp_functions = NULL ;
2004-08-23 01:38:21 +00:00
// pr_strings = ((char *)pr_progs + pr_progs->ofs_strings);
2020-06-27 19:32:49 +00:00
gd16 = * ( ddef16_t * * ) & current_progstate - > globaldefs = ( ddef16_t * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_globaldefs ) ;
fld16 = ( ddef16_t * ) ( ( pbyte * ) pr_progs + pr_progs - > ofs_fielddefs ) ;
2004-08-23 01:38:21 +00:00
// pr_statements16 = (dstatement16_t *)((qbyte *)pr_progs + pr_progs->ofs_statements);
pr_globals = glob ;
st16 = pr_statements16 ;
# undef pr_globals
# undef pr_globaldefs16
# undef pr_functions
# undef pr_statements16
# undef pr_fielddefs16
current_progstate - > edict_size = pr_progs - > entityfields * 4 + externs - > edictsize ;
2014-08-03 14:47:47 +00:00
if ( sizeof ( mfunction_t ) > sizeof ( qtest_function_t ) )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " assumption no longer works " ) ;
2014-08-03 14:47:47 +00:00
2004-08-23 01:38:21 +00:00
// byte swap the lumps
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_QTEST :
// qtest needs a struct remap
2014-08-03 14:47:47 +00:00
pr_cp_functions = ( mfunction_t * ) fnc ;
fnc2 = pr_cp_functions ;
2011-03-04 13:59:06 +00:00
for ( i = 0 ; i < pr_progs - > numfunctions ; i + + )
{
2014-08-03 14:47:47 +00:00
//qtest functions are bigger, so we can just do this in-place
2011-03-04 13:59:06 +00:00
qtest_function_t qtfunc = ( ( qtest_function_t * ) fnc ) [ i ] ;
2011-05-15 13:23:13 +00:00
2014-08-03 14:47:47 +00:00
fnc2 [ i ] . first_statement = PRLittleLong ( qtfunc . first_statement ) ;
fnc2 [ i ] . parm_start = PRLittleLong ( qtfunc . parm_start ) ;
fnc2 [ i ] . s_name = ( string_t ) PRLittleLong ( qtfunc . s_name ) ;
fnc2 [ i ] . s_file = ( string_t ) PRLittleLong ( qtfunc . s_file ) ;
fnc2 [ i ] . numparms = PRLittleLong ( qtfunc . numparms ) ;
fnc2 [ i ] . locals = PRLittleLong ( qtfunc . locals ) ;
2011-03-04 13:59:06 +00:00
for ( j = 0 ; j < MAX_PARMS ; j + + )
2014-08-03 14:47:47 +00:00
fnc2 [ i ] . parm_size [ j ] = PRLittleLong ( qtfunc . parm_size [ j ] ) ;
2011-03-04 13:59:06 +00:00
2014-08-03 14:47:47 +00:00
fnc2 [ i ] . s_name + = stringadjust ;
fnc2 [ i ] . s_file + = stringadjust ;
2011-03-04 13:59:06 +00:00
}
break ;
case PST_KKQWSV :
case PST_DEFAULT :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2014-08-03 14:47:47 +00:00
pr_cp_functions = PRHunkAlloc ( progfuncs , sizeof ( * pr_cp_functions ) * pr_progs - > numfunctions , " mfunctions " ) ;
for ( i = 0 , fnc2 = pr_cp_functions ; i < pr_progs - > numfunctions ; i + + , fnc2 + + )
2011-03-04 13:59:06 +00:00
{
2014-08-03 14:47:47 +00:00
fnc2 - > first_statement = PRLittleLong ( fnc [ i ] . first_statement ) ;
fnc2 - > parm_start = PRLittleLong ( fnc [ i ] . parm_start ) ;
fnc2 - > s_name = ( string_t ) PRLittleLong ( ( long ) fnc [ i ] . s_name ) + stringadjust ;
fnc2 - > s_file = ( string_t ) PRLittleLong ( ( long ) fnc [ i ] . s_file ) + stringadjust ;
fnc2 - > numparms = PRLittleLong ( fnc [ i ] . numparms ) ;
fnc2 - > locals = PRLittleLong ( fnc [ i ] . locals ) ;
for ( j = 0 ; j < MAX_PARMS ; j + + )
fnc2 - > parm_size [ j ] = fnc [ i ] . parm_size [ j ] ;
2004-08-23 01:38:21 +00:00
}
2011-03-04 15:35:16 +00:00
break ;
2011-03-04 13:59:06 +00:00
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2004-08-23 01:38:21 +00:00
}
2005-10-09 21:59:54 +00:00
2004-08-23 01:38:21 +00:00
//actual global values
# ifndef NOENDIAN
for ( i = 0 ; i < pr_progs - > numglobals ; i + + )
2005-05-22 13:42:10 +00:00
( ( int * ) glob ) [ i ] = PRLittleLong ( ( ( int * ) glob ) [ i ] ) ;
2005-10-09 21:59:54 +00:00
# endif
2004-08-23 01:38:21 +00:00
2005-03-28 00:11:59 +00:00
if ( pr_types )
2005-10-09 21:59:54 +00:00
{
2005-03-28 00:11:59 +00:00
for ( i = 0 ; i < pr_progs - > numtypes ; i + + )
2005-10-09 21:59:54 +00:00
{
2004-08-23 01:38:21 +00:00
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
pr_types [ i ] . type = PRLittleLong ( current_progstate - > types [ i ] . type ) ;
pr_types [ i ] . next = PRLittleLong ( current_progstate - > types [ i ] . next ) ;
pr_types [ i ] . aux_type = PRLittleLong ( current_progstate - > types [ i ] . aux_type ) ;
pr_types [ i ] . num_parms = PRLittleLong ( current_progstate - > types [ i ] . num_parms ) ;
pr_types [ i ] . ofs = PRLittleLong ( current_progstate - > types [ i ] . ofs ) ;
pr_types [ i ] . size = PRLittleLong ( current_progstate - > types [ i ] . size ) ;
2010-07-11 10:53:13 +00:00
pr_types [ i ] . name = PRLittleLong ( current_progstate - > types [ i ] . name ) ;
2004-08-23 01:38:21 +00:00
# endif
2005-05-15 18:49:04 +00:00
pr_types [ i ] . name + = stringadjust ;
2004-08-23 01:38:21 +00:00
}
}
2005-09-14 04:36:07 +00:00
QC_FlushProgsOffsets ( progfuncs ) ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_KKQWSV :
case PST_DEFAULT :
2005-03-28 00:11:59 +00:00
//byteswap the globals and fix name offsets
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
gd16 [ i ] . type = PRLittleShort ( gd16 [ i ] . type ) ;
gd16 [ i ] . ofs = PRLittleShort ( gd16 [ i ] . ofs ) ;
gd16 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) gd16 [ i ] . s_name ) ;
2004-08-23 01:38:21 +00:00
# endif
2005-05-15 18:49:04 +00:00
gd16 [ i ] . s_name + = stringadjust ;
2004-08-23 01:38:21 +00:00
}
2005-03-28 00:11:59 +00:00
//byteswap fields and fix name offets. Also register the fields (which will result in some offset adjustments in the globals segment).
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
fld16 [ i ] . type = PRLittleShort ( fld16 [ i ] . type ) ;
fld16 [ i ] . ofs = PRLittleShort ( fld16 [ i ] . ofs ) ;
fld16 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) fld16 [ i ] . s_name ) ;
2004-08-23 01:38:21 +00:00
# endif
if ( reorg )
{
if ( pr_types )
type = pr_types [ fld16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = fld16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) //we need to make sure all fields appear in their original place.
2017-08-14 16:38:44 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , fld16 [ i ] . s_name + pr_strings , 4 * ( fld16 [ i ] . ofs + progfuncs - > funcs . fieldadjust ) , fld16 [ i ] . ofs ) ;
2007-10-05 17:43:26 +00:00
else if ( type = = ev_vector ) //emit vector vars early, so their fields cannot be alocated before the vector itself. (useful against scramblers)
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , fld16 [ i ] . s_name + pr_strings , - 1 , fld16 [ i ] . ofs ) ;
2004-08-23 01:38:21 +00:00
}
}
2006-09-18 22:56:14 +00:00
else
{
fdef_t * nf ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( prinst . numfields + 1 > prinst . maxfields )
2006-09-18 22:56:14 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
i = prinst . maxfields ;
prinst . maxfields + = 32 ;
nf = externs - > memalloc ( sizeof ( fdef_t ) * prinst . maxfields ) ;
memcpy ( nf , prinst . field , sizeof ( fdef_t ) * i ) ;
externs - > memfree ( prinst . field ) ;
prinst . field = nf ;
2006-09-18 22:56:14 +00:00
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
nf = & prinst . field [ prinst . numfields ] ;
2006-09-18 22:56:14 +00:00
nf - > name = fld16 [ i ] . s_name + pr_strings ;
nf - > type = fld16 [ i ] . type ;
nf - > progsofs = fld16 [ i ] . ofs ;
nf - > ofs = fld16 [ i ] . ofs ;
2020-09-29 07:09:01 +00:00
if ( prinst . fields_size < ( nf - > ofs + type_size [ nf - > type ] ) * sizeof ( pvec_t ) )
{
prinst . fields_size = ( nf - > ofs + type_size [ nf - > type ] ) * sizeof ( pvec_t ) ;
progfuncs - > funcs . activefieldslots = nf - > ofs + type_size [ nf - > type ] ;
}
2006-09-18 22:56:14 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
prinst . numfields + + ;
2006-09-18 22:56:14 +00:00
}
2005-05-15 18:49:04 +00:00
fld16 [ i ] . s_name + = stringadjust ;
2004-08-23 01:38:21 +00:00
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( reorg & & ! ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) )
2005-10-10 22:29:05 +00:00
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
if ( pr_types )
type = pr_types [ fld16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = fld16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( type ! = ev_vector )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , fld16 [ i ] . s_name + pr_strings - stringadjust , - 1 , fld16 [ i ] . ofs ) ;
2005-10-10 22:29:05 +00:00
}
2004-08-23 01:38:21 +00:00
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
// qtest needs a struct remap
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
qtest_def_t qtdef = ( ( qtest_def_t * ) pr_globaldefs32 ) [ i ] ;
pr_globaldefs32 [ i ] . type = qtdef . type ;
pr_globaldefs32 [ i ] . s_name = qtdef . s_name ;
pr_globaldefs32 [ i ] . ofs = qtdef . ofs ;
}
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
qtest_def_t qtdef = ( ( qtest_def_t * ) pr_fielddefs32 ) [ i ] ;
pr_fielddefs32 [ i ] . type = qtdef . type ;
pr_fielddefs32 [ i ] . s_name = qtdef . s_name ;
pr_fielddefs32 [ i ] . ofs = qtdef . ofs ;
}
// passthrough
case PST_FTE32 :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
pr_globaldefs32 [ i ] . type = PRLittleLong ( pr_globaldefs32 [ i ] . type ) ;
pr_globaldefs32 [ i ] . ofs = PRLittleLong ( pr_globaldefs32 [ i ] . ofs ) ;
pr_globaldefs32 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) pr_globaldefs32 [ i ] . s_name ) ;
2004-08-23 01:38:21 +00:00
# endif
2005-05-15 18:49:04 +00:00
pr_globaldefs32 [ i ] . s_name + = stringadjust ;
2004-08-23 01:38:21 +00:00
}
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
pr_fielddefs32 [ i ] . type = PRLittleLong ( pr_fielddefs32 [ i ] . type ) ;
pr_fielddefs32 [ i ] . ofs = PRLittleLong ( pr_fielddefs32 [ i ] . ofs ) ;
pr_fielddefs32 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) pr_fielddefs32 [ i ] . s_name ) ;
2004-08-23 01:38:21 +00:00
# endif
if ( reorg )
{
if ( pr_types )
type = pr_types [ pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) //we need to make sure all fields appear in their original place.
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings , 4 * ( pr_fielddefs32 [ i ] . ofs + progfuncs - > funcs . fieldadjust ) , - 1 ) ;
2005-09-14 04:36:07 +00:00
else if ( type = = ev_vector )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings , - 1 , pr_fielddefs32 [ i ] . ofs ) ;
2004-08-23 01:38:21 +00:00
}
2005-05-15 18:49:04 +00:00
pr_fielddefs32 [ i ] . s_name + = stringadjust ;
2005-10-09 21:59:54 +00:00
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( reorg & & ! ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) )
2005-10-10 22:29:05 +00:00
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
if ( pr_types )
type = pr_types [ pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( type ! = ev_vector )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings - stringadjust , - 1 , pr_fielddefs32 [ i ] . ofs ) ;
2005-10-10 22:29:05 +00:00
}
2004-08-23 01:38:21 +00:00
break ;
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
pr_globaldefs32 [ i ] . type = ( unsigned int ) PRLittleLong ( pr_globaldefs32 [ i ] . type ) > > 16 ;
# ifndef NOENDIAN
pr_globaldefs32 [ i ] . ofs = PRLittleLong ( pr_globaldefs32 [ i ] . ofs ) ;
pr_globaldefs32 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) pr_globaldefs32 [ i ] . s_name ) ;
# endif
pr_globaldefs32 [ i ] . s_name + = stringadjust ;
}
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
pr_fielddefs32 [ i ] . type = ( unsigned int ) PRLittleLong ( pr_fielddefs32 [ i ] . type ) > > 16 ;
# ifndef NOENDIAN
pr_fielddefs32 [ i ] . ofs = PRLittleLong ( pr_fielddefs32 [ i ] . ofs ) ;
pr_fielddefs32 [ i ] . s_name = ( string_t ) PRLittleLong ( ( long ) pr_fielddefs32 [ i ] . s_name ) ;
# endif
if ( reorg )
{
if ( pr_types )
type = pr_types [ pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) //we need to make sure all fields appear in their original place.
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings , 4 * ( pr_fielddefs32 [ i ] . ofs + progfuncs - > funcs . fieldadjust ) , - 1 ) ;
else if ( type = = ev_vector )
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings , - 1 , pr_fielddefs32 [ i ] . ofs ) ;
}
pr_fielddefs32 [ i ] . s_name + = stringadjust ;
}
if ( reorg & & ! ( progfuncs - > funcs . fieldadjust & & ! prinst . pr_typecurrent ) )
for ( i = 0 ; i < pr_progs - > numfielddefs ; i + + )
{
if ( pr_types )
type = pr_types [ pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = pr_fielddefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( type ! = ev_vector )
QC_RegisterFieldVar ( & progfuncs - > funcs , type , pr_fielddefs32 [ i ] . s_name + pr_strings - stringadjust , - 1 , pr_fielddefs32 [ i ] . ofs ) ;
}
break ;
2004-08-23 01:38:21 +00:00
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2004-11-13 17:32:03 +00:00
}
2004-08-23 01:38:21 +00:00
2005-10-09 21:59:54 +00:00
//ifstring fixes arn't performed anymore.
2005-03-28 00:11:59 +00:00
//the following switch just fixes endian and hexen2 calling conventions (by using different opcodes).
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_QTEST :
for ( i = 0 ; i < pr_progs - > numstatements ; i + + )
{
qtest_statement_t qtst = ( ( qtest_statement_t * ) st16 ) [ i ] ;
st16 [ i ] . op = PRLittleShort ( qtst . op ) ;
st16 [ i ] . a = PRLittleShort ( qtst . a ) ;
st16 [ i ] . b = PRLittleShort ( qtst . b ) ;
st16 [ i ] . c = PRLittleShort ( qtst . c ) ;
// could use the line info as lno information maybe? is it really worth it?
// also never assuming h2 calling mechanism
}
2015-04-14 12:24:05 +00:00
PR_CleanUpStatements16 ( progfuncs , st16 , false ) ;
2011-03-04 13:59:06 +00:00
break ;
case PST_DEFAULT :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numstatements ; i + + )
{
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
st16 [ i ] . op = PRLittleShort ( st16 [ i ] . op ) ;
st16 [ i ] . a = PRLittleShort ( st16 [ i ] . a ) ;
st16 [ i ] . b = PRLittleShort ( st16 [ i ] . b ) ;
st16 [ i ] . c = PRLittleShort ( st16 [ i ] . c ) ;
2004-08-23 01:38:21 +00:00
# endif
2004-11-23 00:29:10 +00:00
if ( st16 [ i ] . op > = OP_CALL1 & & st16 [ i ] . op < = OP_CALL8 )
2004-08-23 01:38:21 +00:00
{
if ( st16 [ i ] . b )
2010-07-11 02:22:39 +00:00
{
2004-08-23 01:38:21 +00:00
hexencalling = true ;
2010-07-11 02:22:39 +00:00
break ;
}
2004-08-23 01:38:21 +00:00
}
}
2015-04-14 12:24:05 +00:00
PR_CleanUpStatements16 ( progfuncs , st16 , hexencalling ) ;
2004-08-23 01:38:21 +00:00
break ;
2005-10-09 21:59:54 +00:00
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
hexencalling = true ;
for ( i = 0 ; i < pr_progs - > numstatements ; i + + )
{
pr_statements32 [ i ] . op = ( unsigned int ) PRLittleLong ( pr_statements32 [ i ] . op ) > > 16 ;
# ifndef NOENDIAN
pr_statements32 [ i ] . a = PRLittleLong ( pr_statements32 [ i ] . a ) ;
pr_statements32 [ i ] . b = PRLittleLong ( pr_statements32 [ i ] . b ) ;
pr_statements32 [ i ] . c = PRLittleLong ( pr_statements32 [ i ] . c ) ;
# endif
}
PR_CleanUpStatements32 ( progfuncs , pr_statements32 , hexencalling ) ;
break ;
2016-01-18 05:22:07 +00:00
case PST_KKQWSV :
2011-03-04 13:59:06 +00:00
case PST_FTE32 :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numstatements ; i + + )
{
2005-03-28 00:11:59 +00:00
# ifndef NOENDIAN
2005-05-22 13:42:10 +00:00
pr_statements32 [ i ] . op = PRLittleLong ( pr_statements32 [ i ] . op ) ;
pr_statements32 [ i ] . a = PRLittleLong ( pr_statements32 [ i ] . a ) ;
pr_statements32 [ i ] . b = PRLittleLong ( pr_statements32 [ i ] . b ) ;
pr_statements32 [ i ] . c = PRLittleLong ( pr_statements32 [ i ] . c ) ;
2005-03-28 00:11:59 +00:00
# endif
if ( pr_statements32 [ i ] . op > = OP_CALL1 & & pr_statements32 [ i ] . op < = OP_CALL8 )
{
if ( pr_statements32 [ i ] . b )
2011-03-04 13:59:06 +00:00
{
2005-03-28 00:11:59 +00:00
hexencalling = true ;
2011-03-04 13:59:06 +00:00
break ;
}
2005-03-28 00:11:59 +00:00
}
}
2015-04-14 12:24:05 +00:00
PR_CleanUpStatements32 ( progfuncs , pr_statements32 , hexencalling ) ;
2004-08-23 01:38:21 +00:00
break ;
}
2014-10-05 20:04:11 +00:00
/*
2004-08-23 01:38:21 +00:00
if ( headercrc = = - 1 )
{
isfriked = true ;
2011-03-04 13:59:06 +00:00
if ( current_progstate - > structtype ! = PST_DEFAULT )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Decompiling a bigprogs " ) ;
2004-08-23 01:38:21 +00:00
return true ;
}
2014-10-05 20:04:11 +00:00
*/
2004-08-23 01:38:21 +00:00
progstype = current_progstate - pr_progstate ;
// QC_StartShares(progfuncs);
isfriked = true ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ! prinst . pr_typecurrent ) //progs 0 always acts as string stripped.
isfriked = - 1 ; //partly to avoid some bad/optimised progs.
2004-08-23 01:38:21 +00:00
2017-08-14 16:38:44 +00:00
basictypetable = NULL ;
if ( prinst . reorganisefields = = 2 )
{
switch ( current_progstate - > structtype )
{ //gmqcc fucks up the globals. it writes FLOAT defs instead of field defs. stupid stupid stupid.
case PST_DEFAULT :
{
dstatement16_t * st = current_progstate - > statements ;
basictypetable = externs - > memalloc ( sizeof ( * basictypetable ) * pr_progs - > numglobals ) ;
memset ( basictypetable , 0 , sizeof ( * basictypetable ) * pr_progs - > numglobals ) ;
for ( i = 0 ; i < pr_progs - > numstatements ; i + + )
{
switch ( st [ i ] . op )
{
case OP_ADDRESS :
2017-08-29 02:29:06 +00:00
if ( st [ i + 1 ] . op = = OP_STOREP_V & & st [ i + 1 ] . b = = st [ i ] . c )
{ //following stores a vector to this field.
2018-01-22 19:18:04 +00:00
if ( st [ i ] . b + 2u < pr_progs - > numglobals )
2017-08-29 02:29:06 +00:00
{ //vectors are usually 3 fields. if they're not then we're screwed.
basictypetable [ st [ i ] . b + 0 ] = ev_field ;
basictypetable [ st [ i ] . b + 1 ] = ev_field ;
basictypetable [ st [ i ] . b + 2 ] = ev_field ;
}
break ;
}
//fallthrough
2017-08-14 16:38:44 +00:00
case OP_LOAD_F :
case OP_LOAD_S :
case OP_LOAD_ENT :
case OP_LOAD_FLD :
case OP_LOAD_FNC :
case OP_LOAD_I :
case OP_LOAD_P :
if ( st [ i ] . b < pr_progs - > numglobals )
basictypetable [ st [ i ] . b ] = ev_field ;
break ;
2017-08-29 02:29:06 +00:00
case OP_LOAD_V :
2018-01-22 19:18:04 +00:00
if ( st [ i ] . b + 2u < pr_progs - > numglobals )
2017-08-29 02:29:06 +00:00
{ //vectors are usually 3 fields. if they're not then we're screwed.
basictypetable [ st [ i ] . b + 0 ] = ev_field ;
basictypetable [ st [ i ] . b + 1 ] = ev_field ;
basictypetable [ st [ i ] . b + 2 ] = ev_field ;
}
break ;
}
}
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
ddef16_t * gd = gd16 + i ;
switch ( gd - > type & ~ ( DEF_SAVEGLOBAL | DEF_SHARED ) )
{
case ev_field : //depend on _y _z to mark those globals.
basictypetable [ gd - > ofs ] = ev_field ;
break ;
2017-08-14 16:38:44 +00:00
}
}
for ( i = 0 ; i < pr_progs - > numglobals ; i + + )
{
if ( basictypetable [ i ] = = ev_field )
QC_AddFieldGlobal ( & progfuncs - > funcs , ( int * ) glob + i ) ;
}
externs - > memfree ( basictypetable ) ;
}
break ;
2017-08-16 02:14:07 +00:00
case PST_QTEST : //not likely to need this
case PST_KKQWSV : //fixme...
case PST_FTE32 : //fingers crossed...
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2017-08-16 02:14:07 +00:00
break ;
2017-08-14 16:38:44 +00:00
}
}
2004-08-23 01:38:21 +00:00
// len = 0;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2004-08-23 01:38:21 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
case PST_KKQWSV :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
if ( pr_types )
type = pr_types [ gd16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = gd16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( gd16 [ i ] . type & DEF_SHARED )
{
gd16 [ i ] . type & = ~ DEF_SHARED ;
if ( pr_types )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedVar ( & progfuncs - > funcs , gd16 [ i ] . ofs , pr_types [ gd16 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . size ) ;
2004-08-23 01:38:21 +00:00
else
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedVar ( & progfuncs - > funcs , gd16 [ i ] . ofs , type_size [ type ] ) ;
2004-08-23 01:38:21 +00:00
}
switch ( type )
{
case ev_field :
2017-08-14 16:38:44 +00:00
if ( reorg & & ! basictypetable )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedFieldVar ( & progfuncs - > funcs , i , pr_strings - stringadjust ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_string :
if ( ( ( unsigned int * ) glob ) [ gd16 [ i ] . ofs ] > = progstate - > progs - > numstrings )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " PR_LoadProgs: invalid string value (%x >= %x) in '%s' \n " , ( ( unsigned int * ) glob ) [ gd16 [ i ] . ofs ] , progstate - > progs - > numstrings , gd16 [ i ] . s_name + pr_strings - stringadjust ) ;
2004-08-23 01:38:21 +00:00
else if ( isfriked ! = - 1 )
{
if ( pr_strings [ ( ( int * ) glob ) [ gd16 [ i ] . ofs ] ] ) //quakec uses string tables. 0 must remain null, or 'if (s)' can break.
{
2005-05-15 18:49:04 +00:00
( ( int * ) glob ) [ gd16 [ i ] . ofs ] + = stringadjust ;
2004-08-23 01:38:21 +00:00
isfriked = false ;
}
else
2005-05-15 18:49:04 +00:00
( ( int * ) glob ) [ gd16 [ i ] . ofs ] = 0 ;
2004-08-23 01:38:21 +00:00
}
break ;
case ev_function :
if ( ( ( int * ) glob ) [ gd16 [ i ] . ofs ] ) //don't change null funcs
{
// if (fnc[((int *)glob)[gd16[i].ofs]].first_statement>=0) //this is a hack. Make all builtins switch to the main progs first. Allows builtin funcs to cache vars from just the main progs.
( ( int * ) glob ) [ gd16 [ i ] . ofs ] | = progstype < < 24 ;
}
break ;
}
}
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_FTE32 :
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2004-08-23 01:38:21 +00:00
for ( i = 0 ; i < pr_progs - > numglobaldefs ; i + + )
{
if ( pr_types )
type = pr_types [ pr_globaldefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . type ;
else
type = pr_globaldefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ;
if ( pr_globaldefs32 [ i ] . type & DEF_SHARED )
{
pr_globaldefs32 [ i ] . type & = ~ DEF_SHARED ;
if ( pr_types )
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedVar ( & progfuncs - > funcs , pr_globaldefs32 [ i ] . ofs , pr_types [ pr_globaldefs32 [ i ] . type & ~ ( DEF_SHARED | DEF_SAVEGLOBAL ) ] . size ) ;
2004-08-23 01:38:21 +00:00
else
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedVar ( & progfuncs - > funcs , pr_globaldefs32 [ i ] . ofs , type_size [ type ] ) ;
2004-08-23 01:38:21 +00:00
}
switch ( type )
{
case ev_field :
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
QC_AddSharedFieldVar ( & progfuncs - > funcs , i , pr_strings - stringadjust ) ;
2004-08-23 01:38:21 +00:00
break ;
case ev_string :
if ( pr_strings [ ( ( int * ) glob ) [ pr_globaldefs32 [ i ] . ofs ] ] ) //quakec uses string tables. 0 must remain null, or 'if (s)' can break.
{
2005-05-15 18:49:04 +00:00
( ( int * ) glob ) [ pr_globaldefs32 [ i ] . ofs ] + = stringadjust ;
2004-08-23 01:38:21 +00:00
isfriked = false ;
}
break ;
case ev_function :
if ( ( ( int * ) glob ) [ pr_globaldefs32 [ i ] . ofs ] ) //don't change null funcs
( ( int * ) glob ) [ pr_globaldefs32 [ i ] . ofs ] | = progstype < < 24 ;
break ;
}
}
2005-02-28 07:16:19 +00:00
if ( pr_progs - > version = = PROG_EXTENDEDVERSION & & pr_progs - > numbodylessfuncs )
2004-08-23 01:38:21 +00:00
{
s = & ( ( char * ) pr_progs ) [ pr_progs - > ofsbodylessfuncs ] ;
for ( i = 0 ; i < pr_progs - > numbodylessfuncs ; i + + )
{
d32 = ED_FindGlobal32 ( progfuncs , s ) ;
2018-10-11 10:31:23 +00:00
d2 = ED_FindGlobalOfsFromProgs ( progfuncs , & pr_progstate [ 0 ] , s , ev_function ) ;
2004-08-23 01:38:21 +00:00
if ( ! d2 )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Runtime-linked function %s was not found in existing progs " , s ) ;
2004-08-23 01:38:21 +00:00
if ( ! d32 )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Couldn't find def for \" %s \" " , s ) ;
2004-08-23 01:38:21 +00:00
( ( int * ) glob ) [ d32 - > ofs ] = ( * ( func_t * ) & pr_progstate [ 0 ] . globals [ * d2 ] ) ;
s + = strlen ( s ) + 1 ;
}
}
break ;
default :
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " Bad struct type " ) ;
2004-08-23 01:38:21 +00:00
}
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ( isfriked & & prinst . pr_typecurrent ) ) //friked progs only allow one file.
2004-08-23 01:38:21 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " You are trying to load a string-stripped progs as an addon. \n This behaviour is not supported. Try removing some optimizations. " ) ;
2004-08-23 01:38:21 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
2005-05-15 18:49:04 +00:00
pr_strings + = stringadjust ;
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( ! progfuncs - > funcs . stringtable )
progfuncs - > funcs . stringtable = pr_strings ;
2005-05-15 18:49:04 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
if ( progfuncs - > funcs . stringtablesize + progfuncs - > funcs . stringtable < pr_strings + pr_progs - > numstrings )
progfuncs - > funcs . stringtablesize = ( pr_strings + pr_progs - > numstrings ) - progfuncs - > funcs . stringtable ;
2007-03-11 16:51:45 +00:00
2015-02-02 08:01:53 +00:00
if ( externs - > MapNamedBuiltin )
{
for ( i = 0 , fnc2 = pr_cp_functions ; i < pr_progs - > numfunctions ; i + + , fnc2 + + )
{
if ( i & & ! fnc2 - > first_statement )
fnc2 - > first_statement = - externs - > MapNamedBuiltin ( & progfuncs - > funcs , pr_progs - > crc , PR_StringToNative ( & progfuncs - > funcs , fnc2 - > s_name ) ) ;
}
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
eval = PR_FindGlobal ( & progfuncs - > funcs , " thisprogs " , progstype , NULL ) ;
2005-05-15 18:49:04 +00:00
if ( eval )
eval - > prog = progstype ;
2011-03-04 13:59:06 +00:00
switch ( current_progstate - > structtype )
2005-08-12 01:17:07 +00:00
{
2011-03-04 13:59:06 +00:00
case PST_DEFAULT :
2005-08-12 01:17:07 +00:00
if ( pr_progs - > version = = PROG_EXTENDEDVERSION & & pr_progs - > numbodylessfuncs )
{
s = & ( ( char * ) pr_progs ) [ pr_progs - > ofsbodylessfuncs ] ;
for ( i = 0 ; i < pr_progs - > numbodylessfuncs ; i + + )
{
d16 = ED_FindGlobal16 ( progfuncs , s ) ;
if ( ! d16 )
2008-12-23 02:55:20 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " \" %s \" requires the external function \" %s \" , but the definition was stripped \n " , filename , s ) ;
2008-12-23 02:55:20 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
2005-08-12 01:17:07 +00:00
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
( ( int * ) glob ) [ d16 - > ofs ] = PR_FindFunc ( & progfuncs - > funcs , s , PR_ANY ) ;
2005-08-12 01:17:07 +00:00
if ( ! ( ( int * ) glob ) [ d16 - > ofs ] )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Warning: Runtime-linked function %s could not be found (loading %s) \n " , s , filename ) ;
2005-08-12 01:17:07 +00:00
s + = strlen ( s ) + 1 ;
}
}
break ;
2011-03-04 13:59:06 +00:00
case PST_QTEST :
case PST_KKQWSV :
2005-08-12 01:17:07 +00:00
break ; //cannot happen anyway.
2020-07-01 05:32:21 +00:00
case PST_UHEXEN2 :
2011-03-04 13:59:06 +00:00
case PST_FTE32 :
2005-08-12 01:17:07 +00:00
if ( pr_progs - > version = = PROG_EXTENDEDVERSION & & pr_progs - > numbodylessfuncs )
{
s = & ( ( char * ) pr_progs ) [ pr_progs - > ofsbodylessfuncs ] ;
for ( i = 0 ; i < pr_progs - > numbodylessfuncs ; i + + )
{
d32 = ED_FindGlobal32 ( progfuncs , s ) ;
if ( ! d32 )
2008-12-23 02:55:20 +00:00
{
2018-10-11 10:31:23 +00:00
externs - > Printf ( " \" %s \" requires the external function \" %s \" , but the definition was stripped \n " , filename , s ) ;
2008-12-23 02:55:20 +00:00
PRHunkFree ( progfuncs , hmark ) ;
pr_progs = NULL ;
return false ;
}
2005-08-12 01:17:07 +00:00
added r_meshpitch cvar that allows for fixing the unfixable mesh pitch bug from vanilla... needs a better name... do note that this will break pretty much any mod, so this is really only for TCs designed to use it. Its likely that I missed places.
nqsv: added support for spectators with nq clients. the angles are a bit rough, but hey. need to do something about frags so nq clients know who's a spectator. use 'cmd observe' to get an nq client to spectate on an fte server (then attack/jump behave the same as in qw clients).
nqsv: rewrote EF_MUZZLEFLASH handling, so svc_muzzleflash is now translated properly to EF_MUZZLEFLASH, and vice versa. No more missing muzzleflashes!
added screenshot_cubemap, so you can actually pre-generate cubemaps with fte (which can be used for reflections or whatever).
misc fixes (server crash, a couple of other less important ones).
external files based on a model's name will now obey r_replacemodels properly, instead of needing to use foo.mdl_0.skin for foo.md3.
identify <playernum> should now use the correct masked ip, instead of abrubtly failing (reported by kt)
vid_toggle console command should now obey vid_width and vid_height when switching to fullscreen, but only if vid_fullscreen is actually set, which should make it seem better behaved (reported by kt).
qcc: cleaned up sym->symboldata[sym->ofs] to be more consistent at all stages.
qcc: typedef float vec4[4]; now works to define a float array with 4 elements (however, it will be passed by-value rather than by-reference).
qcc: cleaned up optional vs __out ordering issues.
qccgui: shift+f3 searches backwards
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5064 fc73d0e0-1445-4013-8a0c-d673dee63da5
2017-02-27 09:34:35 +00:00
( ( int * ) glob ) [ d32 - > ofs ] = PR_FindFunc ( & progfuncs - > funcs , s , PR_ANY ) ;
if ( ! ( ( int * ) glob ) [ d32 - > ofs ] )
2018-10-11 10:31:23 +00:00
externs - > Printf ( " Warning: Runtime-linked function %s could not be found (loading %s) \n " , s , filename ) ;
2005-08-12 01:17:07 +00:00
s + = strlen ( s ) + 1 ;
}
}
break ;
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
eval = PR_FindGlobal ( & progfuncs - > funcs , " __ext__fasttrackarrays " , PR_CURRENT , NULL ) ;
2005-12-06 02:18:41 +00:00
if ( eval ) //we support these opcodes
eval - > _float = true ;
2004-08-23 01:38:21 +00:00
return true ;
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
struct edict_s * PDECL QC_EDICT_NUM ( pubprogfuncs_t * ppf , unsigned int n )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( n > = prinst . maxedicts )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " QCLIB: EDICT_NUM: bad number %i " , n ) ;
2004-09-20 23:25:38 +00:00
2015-09-14 10:36:42 +00:00
return ( struct edict_s * ) prinst . edicttable [ n ] ;
2004-08-23 01:38:21 +00:00
}
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
unsigned int PDECL QC_NUM_FOR_EDICT ( pubprogfuncs_t * ppf , struct edict_s * e )
2004-08-23 01:38:21 +00:00
{
------------------------------------------------------------------------
r4169 | acceptthis | 2013-01-17 08:55:12 +0000 (Thu, 17 Jan 2013) | 31 lines
removed MAX_VISEDICTS limit.
PEXT2_REPLACEMENTDELTAS tweaked, now has 4 million entity limit. still not enabled by default.
TE_BEAM now maps to a separate TEQW_BEAM to avoid conflicts with QW.
added android multitouch emulation for windows/rawinput (in_simulatemultitouch).
split topcolor/bottomcolor from scoreboard, for dp's colormap|1024 feature.
now using utf-8 for windows consoles.
qcc warnings/errors now give clickable console links for quick+easy editing.
disabled menutint when the currently active item changes contrast or gamma (for OneManClan).
Added support for drawfont/drawfontscale.
tweaked the qcvm a little to reduce the number of pointers.
.doll file loading. still experimental and will likely crash. requires csqc active, even if its a dummy progs. this will be fixed in time. Still other things that need cleaning up.
windows: gl_font "?" shows the standard windows font-selection dialog, and can be used to select windows fonts. not all work. and you probably don't want to use windings.
fixed splitscreen support when playing mvds. added mini-scoreboards to splitscreen.
editor/debugger now shows asm if there's no linenumber info. also, pressing f1 for help shows the shortcuts.
Added support for .framegroups files for psk(psa) and iqm formats.
True support for ezquake's colour codes. Mutually exclusive with background colours.
path command output slightly more readable.
added support for digest_hex (MD4, SHA1, CRC16).
skingroups now colourmap correctly.
Fix terrain colour hints, and litdata from the wrong bsp.
fix ftp dual-homed issue. support epsv command, and enable ipv6 (eprt still not supported).
remove d3d11 compilation from the makefile. the required headers are not provided by mingw, and are not available to the build bot, so don't bother.
fix v *= v.x and similar opcodes.
fteqcc: fixed support for áéíóú type chars in names. utf-8 files now properly supported (even with the utf-8 bom/identifier). utf-16 also supported.
fteqcc: fixed '#if 1 == 3 && 4' parsing.
fteqcc: -Werror acts on the warning, rather than as a separate error. Line numbers are thus more readable.
fteqcc: copyright message now includes compile date instead.
fteqccgui: the treeview control is now coloured depending on whether there were warnings/errors in the last compile.
fteqccgui: the output window is now focused and scrolls down as compilation progresses.
pr_dumpplatform command dumps out some pragmas to convert more serious warnings to errors. This is to avoid the infamous 'fteqcc sucks cos my code sucks' issue.
rewrote prespawn/modelist/soundlist code. server tracks progress now.
------------------------------------------------------------------------
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4167 fc73d0e0-1445-4013-8a0c-d673dee63da5
2013-03-12 22:29:40 +00:00
progfuncs_t * progfuncs = ( progfuncs_t * ) ppf ;
2004-08-23 01:38:21 +00:00
edictrun_t * er = ( edictrun_t * ) e ;
Reworked client support for DPP5+. less code now, its much more graceful.
added waterfog command. waterfog overrides regular fog only when the view is in water.
fixed 64bit printf format specifiers. should work better on winxp64.
fixed some spec angle weirdness.
fixed viewsize 99.99 weirdness with ezhud.
fixed extra offset on the console (exhibited in 64bit builds, but not limited to).
fixed .avi playback, can now actually display frames again.
reimplemented line sparks.
fixed r_editlights_save flipping the light's pitch.
fixed issue with oggs failing to load.
fixed condump to cope with unicode properly.
made sv_bigcoords default except in quake. hexen2 kinda needs it for bsp angle precision.
fixed nq server to not stall weirdly on map changes.
fixed qwprogs svc_cdtrack not bugging out with nq clients on the server.
fixed restart command to load the last map run by the server, instead of start.bsp (when idle)
optimised d3d9 renderer a little. now uses less draw calls, especially with complex scenes. seems to get higher framerates than opengl now.
fixed d3d9 renderer to not bug out quite so much when run fullscreen (shader subsystem is now correctly initialised).
fixed a couple of bugs from font change. also now supports utf-8 in a few more places.
r_editlights_reload no longer generates rtlights inside the void. this resolves a few glitches (but should also help framerates a little).
fixed so corona-only lights won't generate shadowmaps and waste lots of time.
removed lots of #defines from qclib. I should never have made them in the first place, but I was lazy. obviously there's more left that I cba to remove yet.
fixed nested calls with variant-vectors. this fixes csaddon's light editor.
fixed qcc hc calling conventions using redundant stores.
disabled keywords can still be used by using __keyword instead.
fixed ftegccgui grep feature.
fixed motionless-dog qcc bug.
tweaked qcc warnings a little. -Wall is now a viable setting. you should be able to fix all those warnings.
fixed qw svc_intermission + dpp5+ clients bug.
fixed annoying spam about disconnecting in hexen2.
rewrote status command a little to cope with ipv6 addresses more gracefully
fixed significant stall when hibernating/debugging a server with a player sitting on it.
fixed truelightning.
fixed rocketlight overriding pflags.
fixed torches vanishing on vid_restart.
fixed issue with decal scaling.
fixed findentityfield builtin.
fixed fteqcc issue with ptr+1
fixed use of arrays inside class functions.
fixed/implemented fteqcc emulation of pointer opcodes.
added __inout keyword to fteqcc, so that it doesn't feel so horrendous.
fixed sizeof(*foo)
fixed *struct = struct;
fixed recursive structs.
fixed fteqcc warning report.
fixed sdl2 controller support, hopefully.
attempted to implement xinput, including per-player audio playback.
slightly fixed relaxed attitude to mouse focus when running fullscreen.
fixed weird warnings/errors with 'ent.arrayhead' terms. now generates sane errors.
implemented bindmaps (for csqc).
fixed crashing bug with eprint builtin.
implemented subset of music_playlist_* functionality. significant changes to music playback.
fixed some more dpcsqc compat.
fixed binds menu. now displays and accepts modifiers.
fixed issues with huge lightmaps.
fixed protocol determinism with dp clients connecting to fte servers. the initial getchallenge request now inhibits vanilla nq connection requests.
implemented support for 'dupe' userinfo key, allowing clients to request client->server packet duplication. should probably queue them tbh.
implemented sv_saveentfile command.
fixed resume after breaking inside a stepped-over function.
fixed erroneous footer after debugging.
(I wonder just how many things I broke with these fixes)
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4946 fc73d0e0-1445-4013-8a0c-d673dee63da5
2015-07-26 10:56:18 +00:00
if ( ! er | | er - > entnum > = prinst . maxedicts )
2019-09-25 20:23:24 +00:00
externs - > Sys_Error ( " QCLIB: NUM_FOR_EDICT: bad pointer (%p) " , e ) ;
2004-08-23 01:38:21 +00:00
return er - > entnum ;
}