Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
/*
|
|
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
|
|
|
as published by the Free Software Foundation; either version 2
|
|
|
|
of the License, or (at your option) any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
2000-03-19 15:59:51 +00:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with this program; if not, write to the Free Software
|
|
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
|
|
|
|
*/
|
|
|
|
// conproc.c
|
|
|
|
|
|
|
|
#include <windows.h>
|
|
|
|
#include "conproc.h"
|
|
|
|
#include "quakedef.h"
|
2000-01-04 23:02:02 +00:00
|
|
|
#include <ctype.h>
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
HANDLE heventDone;
|
|
|
|
HANDLE hfileBuffer;
|
|
|
|
HANDLE heventChildSend;
|
|
|
|
HANDLE heventParentSend;
|
|
|
|
HANDLE hStdout;
|
|
|
|
HANDLE hStdin;
|
|
|
|
|
|
|
|
DWORD RequestProc (DWORD dwNichts);
|
|
|
|
LPVOID GetMappedBuffer (HANDLE hfileBuffer);
|
|
|
|
void ReleaseMappedBuffer (LPVOID pBuffer);
|
|
|
|
BOOL GetScreenBufferLines (int *piLines);
|
|
|
|
BOOL SetScreenBufferLines (int iLines);
|
|
|
|
BOOL ReadText (LPTSTR pszText, int iBeginLine, int iEndLine);
|
|
|
|
BOOL WriteText (LPCTSTR szText);
|
|
|
|
int CharToCode (char c);
|
|
|
|
BOOL SetConsoleCXCY(HANDLE hStdout, int cx, int cy);
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
InitConProc ( HANDLE hFile, HANDLE heventParent, HANDLE heventChild )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
DWORD dwID;
|
|
|
|
|
|
|
|
// ignore if we don't have all the events.
|
|
|
|
if (!hFile || !heventParent || !heventChild)
|
|
|
|
return;
|
|
|
|
|
|
|
|
hfileBuffer = hFile;
|
|
|
|
heventParentSend = heventParent;
|
|
|
|
heventChildSend = heventChild;
|
|
|
|
|
|
|
|
// so we'll know when to go away.
|
|
|
|
heventDone = CreateEvent (NULL, FALSE, FALSE, NULL);
|
|
|
|
|
|
|
|
if (!heventDone)
|
|
|
|
{
|
|
|
|
Con_SafePrintf ("Couldn't create heventDone\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!CreateThread (NULL,
|
2000-08-20 13:33:48 +00:00
|
|
|
0,
|
|
|
|
(LPTHREAD_START_ROUTINE) RequestProc,
|
|
|
|
0,
|
|
|
|
0,
|
|
|
|
&dwID))
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
CloseHandle (heventDone);
|
|
|
|
Con_SafePrintf ("Couldn't create QHOST thread\n");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
// save off the input/output handles.
|
|
|
|
hStdout = GetStdHandle (STD_OUTPUT_HANDLE);
|
|
|
|
hStdin = GetStdHandle (STD_INPUT_HANDLE);
|
|
|
|
|
|
|
|
// force 80 character width, at least 25 character height
|
|
|
|
SetConsoleCXCY (hStdout, 80, 25);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
DeinitConProc ( void )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
if (heventDone)
|
|
|
|
SetEvent (heventDone);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
DWORD
|
|
|
|
RequestProc ( DWORD dwNichts )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
int *pBuffer;
|
|
|
|
DWORD dwRet;
|
|
|
|
HANDLE heventWait[2];
|
|
|
|
int iBeginLine, iEndLine;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
heventWait[0] = heventParentSend;
|
|
|
|
heventWait[1] = heventDone;
|
|
|
|
|
|
|
|
while (1)
|
|
|
|
{
|
|
|
|
dwRet = WaitForMultipleObjects (2, heventWait, FALSE, INFINITE);
|
|
|
|
|
|
|
|
// heventDone fired, so we're exiting.
|
2000-03-19 15:59:51 +00:00
|
|
|
if (dwRet == WAIT_OBJECT_0 + 1)
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
pBuffer = (int *) GetMappedBuffer (hfileBuffer);
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
// hfileBuffer is invalid. Just leave.
|
|
|
|
if (!pBuffer)
|
|
|
|
{
|
|
|
|
Con_SafePrintf ("Invalid hfileBuffer\n");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch (pBuffer[0])
|
|
|
|
{
|
|
|
|
case CCOM_WRITE_TEXT:
|
|
|
|
// Param1 : Text
|
|
|
|
pBuffer[0] = WriteText ((LPCTSTR) (pBuffer + 1));
|
|
|
|
break;
|
|
|
|
|
|
|
|
case CCOM_GET_TEXT:
|
|
|
|
// Param1 : Begin line
|
|
|
|
// Param2 : End line
|
|
|
|
iBeginLine = pBuffer[1];
|
|
|
|
iEndLine = pBuffer[2];
|
2000-03-19 15:59:51 +00:00
|
|
|
pBuffer[0] = ReadText ((LPTSTR) (pBuffer + 1), iBeginLine,
|
2000-08-20 13:33:48 +00:00
|
|
|
iEndLine);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
break;
|
|
|
|
|
|
|
|
case CCOM_GET_SCR_LINES:
|
|
|
|
// No params
|
|
|
|
pBuffer[0] = GetScreenBufferLines (&pBuffer[1]);
|
|
|
|
break;
|
|
|
|
|
|
|
|
case CCOM_SET_SCR_LINES:
|
|
|
|
// Param1 : Number of lines
|
|
|
|
pBuffer[0] = SetScreenBufferLines (pBuffer[1]);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
ReleaseMappedBuffer (pBuffer);
|
|
|
|
SetEvent (heventChildSend);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
LPVOID
|
|
|
|
GetMappedBuffer ( HANDLE hfileBuffer )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
LPVOID pBuffer;
|
|
|
|
|
|
|
|
pBuffer = MapViewOfFile (hfileBuffer,
|
|
|
|
FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0);
|
|
|
|
|
|
|
|
return pBuffer;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
void
|
|
|
|
ReleaseMappedBuffer ( LPVOID pBuffer )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
UnmapViewOfFile (pBuffer);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
BOOL
|
|
|
|
GetScreenBufferLines ( int *piLines )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
2000-03-19 15:59:51 +00:00
|
|
|
CONSOLE_SCREEN_BUFFER_INFO info;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
BOOL bRet;
|
|
|
|
|
|
|
|
bRet = GetConsoleScreenBufferInfo (hStdout, &info);
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (bRet)
|
|
|
|
*piLines = info.dwSize.Y;
|
|
|
|
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
BOOL
|
|
|
|
SetScreenBufferLines ( int iLines )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
|
|
|
|
return SetConsoleCXCY (hStdout, 80, iLines);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
BOOL
|
|
|
|
ReadText ( LPTSTR pszText, int iBeginLine, int iEndLine )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
COORD coord;
|
|
|
|
DWORD dwRead;
|
|
|
|
BOOL bRet;
|
|
|
|
|
|
|
|
coord.X = 0;
|
|
|
|
coord.Y = iBeginLine;
|
|
|
|
|
|
|
|
bRet = ReadConsoleOutputCharacter(
|
|
|
|
hStdout,
|
|
|
|
pszText,
|
|
|
|
80 * (iEndLine - iBeginLine + 1),
|
|
|
|
coord,
|
|
|
|
&dwRead);
|
|
|
|
|
|
|
|
// Make sure it's null terminated.
|
|
|
|
if (bRet)
|
|
|
|
pszText[dwRead] = '\0';
|
|
|
|
|
|
|
|
return bRet;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
BOOL
|
|
|
|
WriteText ( LPCTSTR szText )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
DWORD dwWritten;
|
|
|
|
INPUT_RECORD rec;
|
|
|
|
char upper, *sz;
|
|
|
|
|
|
|
|
sz = (LPTSTR) szText;
|
|
|
|
|
|
|
|
while (*sz)
|
|
|
|
{
|
|
|
|
// 13 is the code for a carriage return (\n) instead of 10.
|
|
|
|
if (*sz == 10)
|
|
|
|
*sz = 13;
|
|
|
|
|
|
|
|
upper = toupper(*sz);
|
|
|
|
|
|
|
|
rec.EventType = KEY_EVENT;
|
|
|
|
rec.Event.KeyEvent.bKeyDown = TRUE;
|
|
|
|
rec.Event.KeyEvent.wRepeatCount = 1;
|
|
|
|
rec.Event.KeyEvent.wVirtualKeyCode = upper;
|
|
|
|
rec.Event.KeyEvent.wVirtualScanCode = CharToCode (*sz);
|
|
|
|
rec.Event.KeyEvent.uChar.AsciiChar = *sz;
|
|
|
|
rec.Event.KeyEvent.uChar.UnicodeChar = *sz;
|
2000-03-19 15:59:51 +00:00
|
|
|
rec.Event.KeyEvent.dwControlKeyState = isupper(*sz) ? 0x80 : 0x0;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
WriteConsoleInput(
|
|
|
|
hStdin,
|
|
|
|
&rec,
|
|
|
|
1,
|
|
|
|
&dwWritten);
|
|
|
|
|
|
|
|
rec.Event.KeyEvent.bKeyDown = FALSE;
|
|
|
|
|
|
|
|
WriteConsoleInput(
|
|
|
|
hStdin,
|
|
|
|
&rec,
|
|
|
|
1,
|
|
|
|
&dwWritten);
|
|
|
|
|
|
|
|
sz++;
|
|
|
|
}
|
|
|
|
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
int
|
|
|
|
CharToCode ( char c )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
char upper;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
upper = toupper(c);
|
|
|
|
|
|
|
|
switch (c)
|
|
|
|
{
|
|
|
|
case 13:
|
|
|
|
return 28;
|
|
|
|
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (isalpha(c))
|
2000-03-19 15:59:51 +00:00
|
|
|
return (30 + upper - 65);
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
|
|
|
|
if (isdigit(c))
|
|
|
|
return (1 + upper - 47);
|
|
|
|
|
|
|
|
return c;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2000-08-20 13:33:48 +00:00
|
|
|
BOOL
|
|
|
|
SetConsoleCXCY ( HANDLE hStdout, int cx, int cy )
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
{
|
|
|
|
CONSOLE_SCREEN_BUFFER_INFO info;
|
|
|
|
COORD coordMax;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
coordMax = GetLargestConsoleWindowSize(hStdout);
|
|
|
|
|
|
|
|
if (cy > coordMax.Y)
|
|
|
|
cy = coordMax.Y;
|
|
|
|
|
|
|
|
if (cx > coordMax.X)
|
|
|
|
cx = coordMax.X;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!GetConsoleScreenBufferInfo(hStdout, &info))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
// height
|
2000-08-20 13:33:48 +00:00
|
|
|
info.srWindow.Left = 0;
|
|
|
|
info.srWindow.Right = info.dwSize.X - 1;
|
|
|
|
info.srWindow.Top = 0;
|
|
|
|
info.srWindow.Bottom = cy - 1;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (cy < info.dwSize.Y)
|
|
|
|
{
|
|
|
|
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
info.dwSize.Y = cy;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
|
|
|
|
return FALSE;
|
2000-08-20 13:33:48 +00:00
|
|
|
}
|
|
|
|
else if (cy > info.dwSize.Y)
|
|
|
|
{
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
info.dwSize.Y = cy;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
|
|
|
|
return FALSE;
|
2000-08-20 13:33:48 +00:00
|
|
|
}
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!GetConsoleScreenBufferInfo(hStdout, &info))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
// width
|
2000-03-19 15:59:51 +00:00
|
|
|
info.srWindow.Left = 0;
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
info.srWindow.Right = cx - 1;
|
|
|
|
info.srWindow.Top = 0;
|
2000-03-19 15:59:51 +00:00
|
|
|
info.srWindow.Bottom = info.dwSize.Y - 1;
|
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (cx < info.dwSize.X)
|
|
|
|
{
|
|
|
|
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
info.dwSize.X = cx;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
else if (cx > info.dwSize.X)
|
|
|
|
{
|
|
|
|
info.dwSize.X = cx;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleScreenBufferSize(hStdout, info.dwSize))
|
|
|
|
return FALSE;
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
if (!SetConsoleWindowInfo(hStdout, TRUE, &info.srWindow))
|
|
|
|
return FALSE;
|
|
|
|
}
|
2000-03-19 15:59:51 +00:00
|
|
|
|
Created new subdir: uquake. Pick your favorite U word for the meaning --
Unchained, Ultimate, Ultra, Up Yours, Underworld, Underground, Unified,
Unity, etc. You know the drill.
This takes care of the "standalone" problem with the wrong name, and the
recent snafu with multiple developers working on the same files
simultaneously...expect me (and probably others) to start locking dirs when
updates are taking place.
And yes, this update is really as large as it looks. Software only at the
moment, but I will have the makefile updated to build the GL builds as
well.
1999-12-26 13:51:52 +00:00
|
|
|
return TRUE;
|
|
|
|
}
|