Baker: I am fairly concerned this list contains an amount of things not reasonable to do in any decent
period of time.  Or can I blast through a lot of them somehow with proper planning.





RELEASE PREP:

001) Release prep
002) Web site
003) GCC project
004) Visual Studio 2008 Project
005) Ancient Mac build?
006) SDL Linux build 32?
007) SDL Linux build 64?
008) What is feature list?

BUGS:

3* 099) MODEL.C LUMA/GLOW TEXTURES NAME SPRINTFS WITH MISSING PARAM
3* 100) Requiem anti-jumpy Zerstorer fix?
1* 101) Figure out the null r_skyface deal
1* 102) Test lightmap 64 on Mac (jam1_otp from https://www.quaddicted.com/reviews/func_mapjam1.html)

3* 103) Fix /O3 compile option on Windows must be entity to entity collision somehow Use inspector to get edict #
I'm not seeing this issue happen.  Something changed??

1* 104) Direct3D GL_RGBA as download  (not a bug so much as an omission)
1* 105) Sbar.c offsets

MAC:

201) All of FD framework to single file?  I'm leaning no.
3* 202) Pak writer/reader ability.
3* 203) One freaking form? Hmmmm.
1* 204) Different icon for WinQuake version (main issue, what should it look like???)
2* 205) Processes for Mac NSTask ( How do we check if process is still running?   Get exit code?  Run async?) -- CreatePipe?
5* 206) Mac no stereo sound (nigh impossible)
2* 207) Any issues with case sensitivity of OS?  Do capitalized maps lists?

FUTURE FORWARDS:

3* 301) international keyboard support.  Use the keymap for buttons, but use the ascii for console and menu text?
    Do what do we show for key binds?  What does Quakespasm do?  How do we do the Mac?  Not even sure how to test it.
2* 302) Get mirror vis working (client side, for surfaces) and server side (for ents).  Average surfaces on same plane move vis 3 epison towards player and add that vis.
2* 303) Hardware gamma or fastpal software gamma.  Not anywhere near a priority.  (FUTURE)  (LARGELY DONE)
5* 304) Independent physics
3* 305) Multimap world
3* 306) Dyna ents
1* 307) Autoid
4* 308) Menu hotspots
4* 309) GLU pick --- use this on entities
5* 310) Drag look
1* 311) Mouse +cursor -cursor for mouse3?
5* 312) Security model for commands, cvars, aliases, buffer (multiple buffers), demos (+alias has a source????)  Will fix dedicated startup unknown commands
5* 313) MKAlpha
5* 314) Software fence textures
5* 315) What to do about mod detection?
3* 316) NPRQuake
4* 317) Eye Kurok a little
4* 318) Security cameras
5* 319) Portals
1* 320) Multiview window test?  (Render with R_RenderView after doing R_Refdef instead of using V_RenderView)
2* 321) Demo associate command???? (Would require administrative priviledges, can we ask to elevate) http://stackoverflow.com/questions/2532769/how-to-start-a-process-as-administrator-mode-in-c-sharp
5* 322) Mod installer command that pokes around in .zip

COMPATIBILITY:

1* 401) Dzip demos -- http://stackoverflow.com/questions/573724/how-can-i-redirect-stdout-to-some-visible-display-in-a-windows-application
1* 402) DirectInput on Windows
1* 403) JoeQuake show speed, monsters remaining, secrets remaining
1* 404) Refresh rate again
1* 405) Indicate multisample and vsync states in video menu too?

2* 420) ProQuake - teamscores read
1* 421) sv_ipmasking
1* 422) rcon that only tells right server
2* 423) pq_password that indicates server
1* 424) dequake
1* 425) console log to right place (unlike the current that opens and closes)
1* 426) pq_showedicts (writes to log with chat person #)
1* 427) pq_connectmute
1* 428) pq_wordfilter or whatever you want to call that (PQ ded 1.4)
2* 429) Report as ProQuake server and NAT fix.
1* 430) Rcon attempts disabler
1* 431) IPLOG
2* 432) Map download if connected to ProQuake server that isn't local.
2* 433) server browser:  might be hard, remember on windows we run ourselves.  Was good reason couldn't use thread

GRUNT:

2* 501) Implement the cmdline deal
2* 502) Download class
2* 503) Zip class
1* 504) gl_texturemode as cvar
1* 505) user sky as cvar
2* 507) Cvars instrastructure
2* 508) Cmd line infrastructure and then fix Nehahra to not hunky
2* 509) Finish palette gamma implementation with stagger and think (DONE but needs tidy)
1* 510) Help command ('?')
3* 511) Self-documentation (copy and paste fest)
1* 512) Pak Reader/Writer Update file method
1* 513) SSL windows
2* 514) gameflags to bits like 128 dlights and make code decent SetFlag (x) GetFlag (x), 'standard_quake must go'
2* 516) "snap" command or "screenshot snap" -- and a supersnapper that snaps all maps.
1* 517) Screenshots with no crap on the screen (clean screenshot = no sbar, no crosshair, fov 90, no centerprint, notify lines = 0)
	--- Run an R_RenderView and snap skipping blends and shit
1* 518) wonder why cl_sbar is foobared with hires?
2* 519) QPath everything
2* 520) cd and dshow files.  Dshow needs renamed to mp3_win or something?
1* 521) input move accumulation (Move accumulate to system)
4* 522) Look Through Pragmas messages I have scattered around and fix them



curl-7.34.0-rtmp-ssh2-ssl-sspi-zlib-idn-static-bin-w32.zip




/*
=======================
COMD_DeQuake

JPG 1.05 - initialize the dequake array
Baker: Self initializes
======================
*/

void COMD_DeQuake (char *text_to_modify)
{
	static char		dequake[256];	// JPG 1.05
	static qbool	dequake_initalized=false;
	unsigned char	*myChar;
	int				i;	

	if (!dequake_initalized)	// 32 to 128 is itself, Convert everything over 128 to be 0-127 range.  Exceptions noted ...
	{
		//Tab				// Newline			// Carriage return	// Line feed becomes a space
		dequake[9] = 9;		dequake[10] = 10;	dequake[13] = 13;	dequake[12] = ' ';	
		dequake[1] =		dequake[5] =		dequake[14] =		dequake[15] =		dequake[28] = '.';
		dequake[16] = '[';	dequake[17] = ']';	dequake[29] = '<';	dequake[30] = '-';	dequake[31] = '>';
		// Iterations ...
		for (i =   1 ;	i <  12 ;	i++)		dequake[i] = '#';
		for (i =  18 ;	i <  28 ;	i++)		dequake[i] = '0' + i - 18;
		for (i =  32 ;	i < 128 ;	i++)		dequake[i] = i;														
		for (i = 128 ;	i < 255 ;	i++)		dequake[i] = dequake[i & 127];										
		// Final touches
		dequake[128] = '(';	dequake[129] = '=';	dequake[130] = ')';	dequake[131] = '*';	dequake[141] = '>';	
		dequake_initalized = true;
	}

	for (myChar = text_to_modify ; *myChar ; myChar++)
		*myChar = dequake[*myChar];
}

void COMD_DeQuake_Name (char *text_to_modify) // Turns carriage returns and linefeeds into spaces
{
	unsigned char	*myChar;
	COMD_DeQuake (text_to_modify);
	
	for (myChar = text_to_modify ; *myChar ; myChar++)
		if (*myChar == 10 || *myChar == 13)	
			*myChar = ' ';	// Special case: strip wannabe linefeeds from name
}




int screenwidth /* qasm */;
int ubasestep /* qasm */, errorterm /* qasm */, erroradjustup /* qasm */, erroradjustdown /* qasm */;
int d_vrectx /* qasm */, d_vrecty /* qasm */, d_vrectright_particle /* qasm */, d_vrectbottom_particle /* qasm */;
int d_y_aspect_shift /* qasm */, d_pix_min /* qasm */, d_pix_max /* qasm */, d_pix_shift /* qasm */;
int d_scantable[MAXHEIGHT] /* qasm */;
short *zspantable[MAXHEIGHT] /* qasm */;
int r_p0[6] /* qasm */, r_p1[6] /* qasm */, r_p2[6] /* qasm */;
byte *d_pcolormap /* qasm */;
int d_xdenom /* qasm */;
int a_sstepxfrac /* qasm */, a_tstepxfrac /* qasm */, r_lstepx /* qasm */, a_ststepxwhole /* qasm */;
int r_sstepx /* qasm */, r_tstepx /* qasm */, r_lstepy /* qasm */, r_sstepy /* qasm */, r_tstepy /* qasm */;
int r_zistepx /* qasm */, r_zistepy /* qasm */;
int d_aspancount /* qasm */, d_countextrastep /* qasm */;
spanpackage_t *a_spans /* qasm */;
spanpackage_t *d_pedgespanpackage /* qasm */;
byte *d_pdest /* qasm */, *d_ptex /* qasm */;
short *d_pz /* qasm */;
int d_sfrac /* qasm */, d_tfrac /* qasm */, d_light /* qasm */, d_zi /* qasm */;
int d_ptexextrastep /* qasm */, d_sfracextrastep /* qasm */;
int d_tfracextrastep /* qasm */, d_lightextrastep /* qasm */, d_pdestextrastep /* qasm */;
int d_lightbasestep /* qasm */, d_pdestbasestep /* qasm */, d_ptexbasestep /* qasm */;
int d_sfracbasestep /* qasm */, d_tfracbasestep /* qasm */;
int d_ziextrastep /* qasm */, d_zibasestep /* qasm */;
int d_pzextrastep /* qasm */, d_pzbasestep /* qasm */;
byte *skintable[MAX_LBM_HEIGHT] /* qasm */;
void D_RasterizeAliasPolySmooth (void) /* qasm */
void D_PolysetSetEdgeTable (void) /* qasm */
unsigned char *r_turb_pbase /* qasm */, *r_turb_pdest /* qasm */;
fixed16_t r_turb_s /* qasm */, r_turb_t /* qasm */, r_turb_sstep /* qasm */, r_turb_tstep /* qasm */;
int *r_turb_turb /* qasm */;
int r_turb_spancount /* qasm */;
float d_sdivzstepu /* qasm */, d_tdivzstepu /* qasm */, d_zistepu /* qasm */;
float d_sdivzstepv /* qasm */, d_tdivzstepv /* qasm */, d_zistepv /* qasm */;
float d_sdivzorigin /* qasm */, d_tdivzorigin /* qasm */, d_ziorigin;
fixed16_t sadjust /* qasm */, tadjust /* qasm */, bbextents /* qasm */, bbextentt /* qasm */;
pixel_t *cacheblock /* qasm */;
int cachewidth /* qasm */;
pixel_t *d_viewbuffer /* qasm */;
short *d_pzbuffer /* qasm */;
unsigned int d_zrowbytes /* qasm */;
unsigned int d_zwidth /* qasm */;
void BOPS_Error (void) /* qasm */
affinetridesc_t r_affinetridesc /* qasm */;
void * acolormap /* qasm */; // FIXME: should go away
trivertx_t *r_apverts /* qasm */;
vec3_t r_plightvec /* qasm */;
int r_ambientlight /* qasm */;
float r_shadelight /* qasm */;
int r_anumverts /* qasm */;
float aliastransform[3][4] /* qasm */;
float r_avertexnormals[NUMVERTEXNORMALS][3] /* qasm */ = {
int r_bmodelactive /* qasm */;
vec3_t vup /* qasm */, vpn /* qasm */, vright /* qasm */; // ASM uses for sound only I think
vec3_t r_origin /* qasm */;
vec3_t modelorg /* qasm */;
refdef_t r_refdef /* qasm */;
unsigned int cacheoffset /* qasm */;
medge_t *r_pedge /* qasm */;
qasmbool r_leftclipped /* qasm */, r_rightclipped /* qasm */;
qasmbool r_nearzionly /* qasm */;
mvertex_t r_leftenter /* qasm */, r_leftexit /* qasm */;
mvertex_t r_rightenter /* qasm */, r_rightexit /* qasm */;
int r_emitted /* qasm */;
float r_nearzi /* qasm */;
float r_u1 /* qasm */, r_v1 /* qasm */, r_lzi1 /* qasm */;
int r_ceilv1 /* qasm */;
qasmbool r_lastvertvalid /* qasm */;
edge_t *r_edges, *edge_p /* qasm */, *edge_max;
surf_t *surfaces /* qasm */, *surface_p /* qasm */, *surf_max;
edge_t *newedges[MAXHEIGHT] /* qasm */;
edge_t *removeedges[MAXHEIGHT] /* qasm */;
espan_t *span_p /* qasm */, *max_span_p;
int current_iv /* qasm */;
int edge_head_u_shift20 /* qasm */, edge_tail_u_shift20 /* qasm */;
edge_t edge_head /* qasm */;
edge_t edge_tail /* qasm */;
edge_t edge_aftertail /* qasm */;
float fv /* qasm */;
void *colormap /* qasm */;
float xcenter /* qasm */, ycenter /* qasm */;
float xscale /* qasm */, yscale /* qasm */;
float aliasxscale, aliasyscale, aliasxcenter /* qasm */, aliasycenter /* qasm */;
int r_framecount = 1 /* qasm */; // Baker: was "=1" with comment "so frame counts initialized to 0 don't match"
vec3_t r_pright /* qasm */, r_pup /* qasm */, r_ppn /* qasm */;
int lightleft /* qasm */, sourcesstep /* qasm */, blocksize /* qasm */, sourcetstep /* qasm */;
int lightdelta /* qasm */, lightdeltastep /* qasm */;
int lightright /* qasm */, lightleftstep /* qasm */, lightrightstep /* qasm */, blockdivshift /* qasm */;
unsigned blockdivmask /* qasm */;
void *prowdestbase /* qasm */;
unsigned char *pbasesource /* qasm */;
int surfrowbytes /* qasm */; // used by ASM files
unsigned *r_lightptr /* qasm */;
int r_stepback /* qasm */;
int r_lightwidth /* qasm */;
int r_numhblocks, r_numvblocks /* qasm */;
unsigned char *r_source, *r_sourcemax /* qasm */;
portable_samplepair_t paintbuffer[PAINTBUFFER_SIZE] /* qasm */;
int snd_scaletable[32][256] /* qasm */;
int *snd_p /* qasm */, snd_linear_count /* qasm */;
short *snd_out /* qasm */;
static int snd_vol /* qasm */;

E