mirror of
https://github.com/electronicarts/CnC_Renegade.git
synced 2025-12-16 15:41:39 -05:00
Initial commit of Command & Conquer Renegade source code.
This commit is contained in:
26
Code/Tools/vidinit/StdAfx.cpp
Normal file
26
Code/Tools/vidinit/StdAfx.cpp
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// stdafx.cpp : source file that includes just the standard includes
|
||||
// vidinit.pch will be the pre-compiled header
|
||||
// stdafx.obj will contain the pre-compiled type information
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
|
||||
44
Code/Tools/vidinit/StdAfx.h
Normal file
44
Code/Tools/vidinit/StdAfx.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// stdafx.h : include file for standard system include files,
|
||||
// or project specific include files that are used frequently, but
|
||||
// are changed infrequently
|
||||
//
|
||||
|
||||
#if !defined(AFX_STDAFX_H__E0C27A4E_8569_409B_8638_11E930817270__INCLUDED_)
|
||||
#define AFX_STDAFX_H__E0C27A4E_8569_409B_8638_11E930817270__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
|
||||
|
||||
#include <afxwin.h> // MFC core and standard components
|
||||
#include <afxext.h> // MFC extensions
|
||||
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // MFC support for Windows Common Controls
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_STDAFX_H__E0C27A4E_8569_409B_8638_11E930817270__INCLUDED_)
|
||||
189
Code/Tools/vidinit/SurrenderWnd.cpp
Normal file
189
Code/Tools/vidinit/SurrenderWnd.cpp
Normal file
@@ -0,0 +1,189 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// SurrenderWnd.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "vidinit.h"
|
||||
#include "SurrenderWnd.h"
|
||||
#include <camera.h>
|
||||
#include <scene.h>
|
||||
#include <ww3d.h>
|
||||
#include <assetmgr.h>
|
||||
#include <rawfile.h>
|
||||
#include <rendobj.h>
|
||||
#include <hanim.h>
|
||||
#include <txt2d.h>
|
||||
#include "convert.h"
|
||||
#include "defpal.h"
|
||||
#include "deffont.h"
|
||||
#include <bsurface.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
static WW3DAssetManager AssetManager;
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSurrenderWnd
|
||||
|
||||
CSurrenderWnd::CSurrenderWnd(CWnd *cwnd, int driver, int width, int height, int bitdepth, bool run_in_window) :
|
||||
m_CWnd(cwnd),
|
||||
m_Motion(0),
|
||||
m_Camera(0),
|
||||
m_Scene(0),
|
||||
m_RObj(0),
|
||||
m_FrameRate(60)
|
||||
{
|
||||
LPCTSTR str = AfxRegisterWndClass(CS_NOCLOSE, NULL, NULL, NULL);
|
||||
if (run_in_window) {
|
||||
CreateEx(0, str, "Card Test Window", WS_SYSMENU | WS_MINIMIZEBOX | WS_CAPTION|WS_VISIBLE, 0,0,640,480, NULL, NULL, NULL);
|
||||
} else {
|
||||
CreateEx(0, str, "Card Test Window", WS_SYSMENU | WS_MINIMIZEBOX | WS_CAPTION|WS_VISIBLE, 0,0,640,480, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
WW3D::Set_Window(GetSafeHwnd());
|
||||
|
||||
m_SubClass = GetWindowLong(GetSafeHwnd(), GWL_WNDPROC);
|
||||
|
||||
WW3D::Set_Render_Device(driver, width, height, bitdepth, run_in_window, true);
|
||||
AssetManager.Set_WW3D_Load_On_Demand(true);
|
||||
// WW3D::Set_Ext_Swap_Interval(1);
|
||||
|
||||
m_Scene = new SimpleSceneClass();
|
||||
m_TextScene = new SimpleSceneClass();
|
||||
|
||||
m_Camera = new CameraClass();
|
||||
m_Camera->Set_Transform(Matrix3D(1));
|
||||
m_Camera->Set_Clip_Planes(1.0f, 1000000.0f);
|
||||
m_Camera->Set_View_Plane(DEG_TO_RAD(45.0f), DEG_TO_RAD(33.0f));
|
||||
|
||||
m_TextCamera = NEW_REF(CameraClass, ());
|
||||
m_TextCamera->Set_View_Plane(Vector2(-1,-1), Vector2(1,1));
|
||||
m_TextCamera->Set_Position(Vector3(0,0,1));
|
||||
m_TextCamera->Set_Clip_Planes(0.1, 10.0);
|
||||
|
||||
m_RObj = AssetManager.Create_Render_Obj("vidtest");
|
||||
m_RObj->Set_Transform(Matrix3D(1));
|
||||
|
||||
m_Motion = AssetManager.Get_HAnim("vidtest1.vidtest1");
|
||||
m_MotionTime = GetTickCount();
|
||||
|
||||
// m_RObj->Set_Animation(m_Motion, 0.0f, RenderObjClass::ANIM_MODE_MANUAL);
|
||||
m_RObj->Add(m_Scene);
|
||||
|
||||
m_Text = new Text2DObjClass(DefaultFont, "Frame rate = %d", 0, 0, 15, 0, DefaultConvert, false, false, m_FrameRate);
|
||||
m_Text->Add(m_TextScene);
|
||||
|
||||
|
||||
}
|
||||
|
||||
CSurrenderWnd::~CSurrenderWnd()
|
||||
{
|
||||
if (m_RObj) {
|
||||
m_RObj->Set_Animation();
|
||||
m_RObj->Release_Ref();
|
||||
}
|
||||
if (m_Camera) m_Camera->Release_Ref();
|
||||
if (m_Motion) m_Motion->Release_Ref();
|
||||
if (m_Text) m_Text->Release_Ref();
|
||||
if (m_TextCamera) m_TextCamera->Release_Ref();
|
||||
if (m_Scene) m_Scene->Release_Ref();
|
||||
if (m_TextScene) m_TextScene->Release_Ref();
|
||||
|
||||
AssetManager.Free_Assets();
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSurrenderWnd, CWnd)
|
||||
//{{AFX_MSG_MAP(CSurrenderWnd)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_CLOSE()
|
||||
ON_WM_KEYDOWN()
|
||||
ON_WM_ACTIVATEAPP()
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSurrenderWnd message handlers
|
||||
|
||||
void CSurrenderWnd::OnPaint()
|
||||
{
|
||||
// CPaintDC dc(this); // device context for painting
|
||||
|
||||
WW3D::Sync(GetTickCount());
|
||||
|
||||
if (m_Motion && m_RObj) {
|
||||
float rate = m_Motion->Get_Frame_Rate();
|
||||
// figure out what the current frame is
|
||||
float currentframe = (GetTickCount() - m_MotionTime) / (1000 / rate);
|
||||
float numframes = m_Motion->Get_Num_Frames() - 1;
|
||||
currentframe = fmod(currentframe, numframes);
|
||||
|
||||
float frame_rate = 1.0f / (WW3D::Get_Frame_Time() * 0.001f);
|
||||
m_FrameRate = (0.9f * m_FrameRate) + (0.1f * frame_rate);
|
||||
|
||||
|
||||
|
||||
m_Text->Set_Text(DefaultFont, "Frame rate = %d", 0, 0, 15, 0, DefaultConvert, false, false, m_FrameRate);
|
||||
m_RObj->Set_Animation(m_Motion, currentframe);
|
||||
|
||||
Matrix3D m = m_RObj->Get_Bone_Transform("camera");
|
||||
m.Rotate_Y(DEG_TO_RAD(-90.0f));
|
||||
m.Rotate_Z(DEG_TO_RAD(-90.0f));
|
||||
m_Camera->Set_Transform(m);
|
||||
}
|
||||
|
||||
// Do not call CWnd::OnPaint() for painting messages
|
||||
if (!IsIconic()) {
|
||||
WW3D::Begin_Render(true, true, Vector3(0.0f,0,0));
|
||||
WW3D::Render(m_Scene, m_Camera, false, false, Vector3(0,0,0));
|
||||
WW3D::Render(m_TextScene, m_TextCamera, false, false, Vector3(0,0,0));
|
||||
WW3D::End_Render();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void CSurrenderWnd::RemoveSubclass()
|
||||
{
|
||||
::SetWindowLong(GetSafeHwnd(), GWL_WNDPROC, m_SubClass);
|
||||
}
|
||||
|
||||
void CSurrenderWnd::OnClose()
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
CWnd::OnClose();
|
||||
delete this;
|
||||
}
|
||||
|
||||
|
||||
void CSurrenderWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
|
||||
{
|
||||
// TODO: Add your message handler code here and/or call default
|
||||
|
||||
if (nChar == VK_ESCAPE) {
|
||||
m_CWnd->PostMessage(WM_USER + 1, 0xDEADBEEF, 0xDEADBEEF);
|
||||
} else {
|
||||
CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
|
||||
}
|
||||
|
||||
}
|
||||
85
Code/Tools/vidinit/SurrenderWnd.h
Normal file
85
Code/Tools/vidinit/SurrenderWnd.h
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if !defined(AFX_SURRENDERWND_H__33722FC2_8D65_466F_9EF6_F5D6E229C20A__INCLUDED_)
|
||||
#define AFX_SURRENDERWND_H__33722FC2_8D65_466F_9EF6_F5D6E229C20A__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
// SurrenderWnd.h : header file
|
||||
//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CSurrenderWnd window
|
||||
class CameraClass;
|
||||
class SimpleSceneClass;
|
||||
class RenderObjClass;
|
||||
class HAnimClass;
|
||||
class Text2DObjClass;
|
||||
class ConvertClass;
|
||||
|
||||
class CSurrenderWnd : public CWnd
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CSurrenderWnd(CWnd *cwnd, int driver, int width, int height, int bitdepth, bool run_in_window);
|
||||
void RemoveSubclass();
|
||||
|
||||
// Attributes
|
||||
public:
|
||||
CameraClass *m_Camera;
|
||||
CameraClass *m_TextCamera;
|
||||
SimpleSceneClass *m_Scene;
|
||||
SimpleSceneClass *m_TextScene;
|
||||
RenderObjClass *m_RObj;
|
||||
Text2DObjClass *m_Text;
|
||||
HAnimClass *m_Motion;
|
||||
CWnd *m_CWnd;
|
||||
int m_MotionTime;
|
||||
HWND m_RenderHWnd;
|
||||
int m_FrameRate;
|
||||
LONG m_SubClass;
|
||||
// Operations
|
||||
public:
|
||||
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CSurrenderWnd)
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
public:
|
||||
virtual ~CSurrenderWnd();
|
||||
|
||||
// Generated message map functions
|
||||
protected:
|
||||
//{{AFX_MSG(CSurrenderWnd)
|
||||
afx_msg void OnPaint();
|
||||
afx_msg void OnClose();
|
||||
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_SURRENDERWND_H__33722FC2_8D65_466F_9EF6_F5D6E229C20A__INCLUDED_)
|
||||
159
Code/Tools/vidinit/VidInit.dsp
Normal file
159
Code/Tools/vidinit/VidInit.dsp
Normal file
@@ -0,0 +1,159 @@
|
||||
# Microsoft Developer Studio Project File - Name="VidInit" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=VidInit - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "VidInit.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "VidInit.mak" CFG="VidInit - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "VidInit - Win32 Release" (based on "Win32 (x86) Application")
|
||||
!MESSAGE "VidInit - Win32 Debug" (based on "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""$/Commando/Code/Tools/VidInit", RBQDAAAA"
|
||||
# PROP Scc_LocalPath "."
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "VidInit - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 2
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\wwmath" /I "..\..\ww3d" /I "..\..\wwlib" /I "..\..\wwdebug" /I "..\..\wwsaveload" /I "..\..\directx\inc" /I "..\..\srsdk1x\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
|
||||
# ADD LINK32 sr.lib wwsaveload.lib ww3d.lib wwdebug.lib wwlib.lib wwmath.lib winmm.lib ddraw.lib dinput.lib dxguid.lib dsound.lib vfw32.lib wsock32.lib /nologo /subsystem:windows /machine:I386 /out:"Run/VidInit.exe" /libpath:"../../libs/debug" /libpath:"../../srsdk1x/msvc6\lib\release" /libpath:"../../directx\lib"
|
||||
|
||||
!ELSEIF "$(CFG)" == "VidInit - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 2
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\wwmath" /I "..\..\ww3d" /I "..\..\wwlib" /I "..\..\wwdebug" /I "..\..\wwsaveload" /I "..\..\directx\inc" /I "..\..\srsdk1x\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386
|
||||
# ADD LINK32 srdb.lib wwsaveload.lib ww3d.lib wwdebug.lib wwlib.lib wwmath.lib winmm.lib ddraw.lib dinput.lib dxguid.lib dsound.lib vfw32.lib wsock32.lib /nologo /subsystem:windows /debug /machine:I386 /out:"Run/VidInit.exe" /libpath:"../../libs/debug" /libpath:"../../srsdk1x/msvc6/lib/debug" /libpath:"../../directx\lib"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "VidInit - Win32 Release"
|
||||
# Name "VidInit - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\deffont.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\defpal.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\StdAfx.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\SurrenderWnd.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\vidinit.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\vidinitDlg.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\deffont.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\defpal.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\StdAfx.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\SurrenderWnd.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\vidinit.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\vidinitDlg.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\vidinit.rc
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
432
Code/Tools/vidinit/deffont.cpp
Normal file
432
Code/Tools/vidinit/deffont.cpp
Normal file
@@ -0,0 +1,432 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/* $Header: /G/Tools/vidinit/deffont.cpp 1 4/17/00 5:40p Phil_g3 $ */
|
||||
/***********************************************************************************************
|
||||
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
|
||||
***********************************************************************************************
|
||||
* *
|
||||
* Project Name : G *
|
||||
* *
|
||||
* File Name : DEFFONT.CPP *
|
||||
* *
|
||||
* Programmer : Scott Kenneth Bowen *
|
||||
* *
|
||||
* Start Date : 01/24/00 *
|
||||
* *
|
||||
* Last Update : February 2, 2000 [SKB] *
|
||||
* *
|
||||
*---------------------------------------------------------------------------------------------*
|
||||
* Functions: *
|
||||
* *Load_Font_Data -- Load up font data from a file. *
|
||||
* Load_Default_Font_Data -- Loads up the data for the default fonts. *
|
||||
* Release_Default_Font_Data -- Free up the font data stuff. *
|
||||
* *Build_Font_Palette_From_Ramp -- Create a font palette given a 0.0 - 1.0 value *
|
||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Include files ///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "defpal.h"
|
||||
#include <wwfont.h>
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Local Defines ///////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Static Data /////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Define a default font for the program in case one has been loaded from disk.
|
||||
#pragma warning(disable: 4305 4309)
|
||||
char DefaultFontData[] = {
|
||||
242, 22, 0, 5, 14, 0, 20, 0, 216, 1, 186, 2, 46, 21, 18, 16,
|
||||
0, 225, 11, 10, 186, 2, 214, 2, 186, 2, 3, 3, 186, 2, 186, 2,
|
||||
186, 2, 186, 2, 186, 2, 186, 2, 186, 2, 186, 2, 186, 2, 186, 2,
|
||||
186, 2, 186, 2, 27, 3, 72, 3, 186, 2, 186, 2, 186, 2, 186, 2,
|
||||
186, 2, 186, 2, 117, 3, 162, 3, 186, 2, 186, 2, 186, 2, 186, 2,
|
||||
117, 3, 162, 3, 207, 3, 207, 3, 225, 3, 186, 2, 237, 3, 17, 4,
|
||||
62, 4, 98, 4, 113, 4, 140, 4, 167, 4, 202, 4, 230, 4, 245, 4,
|
||||
254, 4, 10, 5, 50, 5, 86, 5, 113, 5, 149, 5, 185, 5, 221, 5,
|
||||
1, 6, 37, 6, 73, 6, 109, 6, 145, 6, 169, 6, 196, 6, 232, 6,
|
||||
252, 6, 32, 7, 68, 7, 113, 7, 149, 7, 185, 7, 221, 7, 1, 8,
|
||||
37, 8, 73, 8, 109, 8, 145, 8, 163, 8, 199, 8, 235, 8, 15, 9,
|
||||
60, 9, 50, 5, 96, 9, 132, 9, 168, 9, 204, 9, 240, 9, 20, 10,
|
||||
56, 10, 92, 10, 137, 10, 173, 10, 209, 10, 245, 10, 16, 11, 56, 11,
|
||||
83, 11, 103, 11, 118, 11, 133, 11, 161, 11, 197, 11, 225, 11, 5, 12,
|
||||
33, 12, 69, 12, 105, 12, 141, 12, 159, 12, 189, 12, 145, 8, 225, 12,
|
||||
4, 13, 32, 13, 60, 13, 96, 13, 132, 13, 160, 13, 188, 13, 215, 13,
|
||||
243, 13, 15, 14, 50, 14, 78, 14, 114, 14, 142, 14, 169, 14, 187, 14,
|
||||
214, 14, 239, 14, 23, 15, 67, 15, 103, 15, 139, 15, 175, 15, 211, 15,
|
||||
247, 15, 27, 16, 59, 16, 95, 16, 131, 16, 167, 16, 194, 16, 221, 16,
|
||||
248, 16, 28, 17, 64, 17, 100, 17, 135, 17, 180, 17, 216, 17, 252, 17,
|
||||
28, 18, 64, 18, 100, 18, 144, 18, 180, 18, 216, 18, 252, 18, 32, 19,
|
||||
77, 19, 117, 19, 167, 19, 203, 19, 230, 19, 10, 20, 46, 20, 82, 20,
|
||||
127, 20, 163, 20, 191, 20, 0, 0, 0, 0, 0, 0, 0, 0, 141, 12,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 227, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 6, 21, 8, 10, 8, 8, 8, 8, 8, 8,
|
||||
8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 8, 8, 8, 8, 8, 8,
|
||||
10, 10, 8, 8, 8, 8, 10, 10, 6, 4, 6, 8, 8, 10, 7, 5,
|
||||
6, 6, 9, 8, 5, 6, 5, 9, 8, 6, 8, 8, 8, 8, 8, 8,
|
||||
8, 8, 5, 5, 7, 7, 7, 7, 10, 8, 8, 8, 8, 7, 7, 8,
|
||||
8, 4, 7, 8, 7, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10,
|
||||
8, 8, 8, 6, 9, 6, 8, 10, 6, 8, 8, 8, 8, 8, 7, 8,
|
||||
8, 4, 6, 7, 4, 10, 8, 8, 8, 8, 8, 8, 6, 8, 8, 10,
|
||||
8, 8, 8, 6, 4, 6, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8,
|
||||
8, 8, 8, 6, 6, 5, 8, 8, 7, 10, 10, 8, 8, 8, 8, 8,
|
||||
8, 8, 8, 7, 8, 9, 8, 9, 8, 5, 8, 8, 8, 9, 8, 8,
|
||||
8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 48, 51, 51, 0, 51, 33,
|
||||
33, 3, 19, 17, 17, 2, 35, 33, 33, 2, 19, 17, 17, 2, 35, 33,
|
||||
33, 2, 48, 34, 34, 0, 48, 51, 51, 3, 0, 51, 17, 17, 50, 51,
|
||||
19, 34, 34, 17, 17, 19, 2, 48, 34, 34, 19, 2, 0, 0, 0, 19,
|
||||
2, 0, 0, 0, 19, 50, 51, 51, 51, 19, 17, 17, 17, 17, 35, 34,
|
||||
34, 34, 34, 0, 0, 51, 3, 0, 48, 19, 2, 51, 51, 33, 2, 19,
|
||||
18, 34, 0, 35, 33, 2, 0, 48, 34, 0, 0, 0, 48, 51, 0, 0,
|
||||
0, 48, 33, 3, 0, 0, 48, 17, 50, 0, 51, 51, 17, 33, 3, 19,
|
||||
17, 17, 17, 2, 35, 34, 17, 33, 2, 0, 48, 17, 34, 0, 0, 48,
|
||||
33, 2, 0, 0, 48, 34, 0, 0, 0, 48, 51, 0, 0, 0, 51, 33,
|
||||
0, 0, 48, 19, 33, 0, 0, 51, 17, 33, 51, 3, 19, 17, 17, 17,
|
||||
2, 35, 17, 33, 34, 2, 48, 18, 33, 0, 0, 0, 35, 33, 0, 0,
|
||||
0, 48, 34, 0, 0, 0, 48, 51, 0, 0, 0, 51, 33, 3, 0, 48,
|
||||
19, 17, 50, 0, 51, 17, 17, 33, 3, 19, 17, 17, 17, 2, 51, 51,
|
||||
33, 34, 2, 0, 48, 33, 0, 0, 0, 48, 33, 0, 0, 0, 48, 34,
|
||||
0, 0, 0, 48, 51, 0, 0, 0, 48, 33, 0, 0, 0, 48, 33, 0,
|
||||
0, 51, 51, 33, 51, 3, 19, 17, 17, 17, 2, 35, 17, 17, 33, 2,
|
||||
48, 18, 17, 34, 0, 0, 35, 33, 2, 0, 0, 48, 34, 0, 0, 51,
|
||||
3, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 19, 2, 35,
|
||||
2, 51, 51, 3, 19, 18, 2, 19, 18, 2, 35, 34, 2, 0, 51, 3,
|
||||
0, 48, 19, 50, 3, 51, 17, 17, 2, 19, 18, 34, 2, 35, 17, 33,
|
||||
3, 51, 18, 18, 2, 19, 17, 33, 2, 35, 18, 34, 0, 0, 35, 2,
|
||||
0, 48, 51, 0, 51, 3, 51, 33, 51, 19, 2, 19, 18, 50, 33, 2,
|
||||
35, 33, 18, 34, 0, 48, 34, 33, 50, 0, 48, 19, 34, 33, 3, 51,
|
||||
33, 18, 18, 2, 19, 34, 35, 33, 2, 35, 2, 48, 34, 0, 48, 51,
|
||||
0, 0, 51, 33, 3, 0, 19, 18, 2, 0, 19, 18, 2, 0, 35, 33,
|
||||
50, 0, 19, 18, 33, 0, 19, 18, 34, 0, 35, 17, 33, 0, 48, 34,
|
||||
34, 0, 48, 51, 0, 51, 33, 0, 19, 33, 0, 19, 34, 0, 35, 2,
|
||||
0, 0, 51, 3, 48, 19, 2, 51, 33, 2, 19, 34, 0, 19, 2, 0,
|
||||
19, 50, 0, 35, 33, 3, 48, 18, 2, 0, 35, 2, 51, 3, 0, 19,
|
||||
50, 0, 35, 33, 3, 48, 18, 2, 0, 19, 2, 48, 19, 2, 51, 33,
|
||||
2, 19, 34, 0, 35, 2, 0, 48, 51, 51, 3, 0, 48, 33, 19, 2,
|
||||
0, 51, 18, 33, 50, 0, 19, 17, 17, 33, 0, 35, 18, 33, 34, 0,
|
||||
48, 33, 18, 2, 0, 48, 34, 35, 2, 0, 0, 51, 3, 0, 0, 19,
|
||||
2, 0, 51, 19, 50, 3, 19, 17, 17, 2, 35, 18, 34, 2, 0, 19,
|
||||
2, 0, 0, 35, 2, 0, 51, 51, 0, 19, 33, 0, 19, 33, 0, 19,
|
||||
34, 0, 35, 2, 0, 51, 51, 3, 19, 17, 2, 35, 34, 2, 51, 51,
|
||||
0, 19, 33, 0, 19, 33, 0, 35, 34, 0, 0, 0, 48, 51, 0, 0,
|
||||
0, 51, 33, 0, 0, 48, 19, 34, 0, 0, 51, 33, 2, 0, 48, 19,
|
||||
34, 0, 0, 51, 33, 2, 0, 0, 19, 34, 0, 0, 0, 35, 2, 0,
|
||||
0, 0, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17,
|
||||
33, 2, 48, 34, 34, 0, 48, 51, 0, 51, 33, 0, 19, 33, 0, 35,
|
||||
33, 0, 48, 33, 0, 48, 33, 0, 51, 33, 3, 19, 17, 2, 35, 34,
|
||||
2, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 35, 50, 19,
|
||||
2, 48, 19, 33, 2, 51, 33, 34, 0, 19, 34, 51, 3, 19, 17, 17,
|
||||
2, 35, 34, 34, 2, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18,
|
||||
2, 35, 50, 19, 2, 0, 19, 33, 2, 51, 35, 18, 2, 19, 50, 19,
|
||||
2, 35, 17, 33, 2, 48, 34, 34, 0, 0, 48, 51, 3, 0, 51, 17,
|
||||
2, 48, 19, 18, 2, 51, 33, 18, 2, 19, 34, 19, 2, 19, 17, 17,
|
||||
2, 35, 34, 18, 2, 0, 0, 19, 2, 0, 0, 35, 2, 51, 51, 51,
|
||||
3, 19, 17, 17, 2, 19, 34, 34, 2, 19, 50, 51, 0, 19, 17, 33,
|
||||
3, 35, 34, 18, 2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34,
|
||||
0, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 50, 35,
|
||||
2, 19, 17, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2, 35, 17, 33,
|
||||
2, 48, 34, 34, 0, 51, 51, 51, 3, 19, 17, 17, 2, 35, 34, 18,
|
||||
2, 0, 48, 33, 2, 0, 51, 33, 0, 0, 19, 34, 0, 0, 19, 2,
|
||||
0, 0, 19, 2, 0, 0, 35, 2, 0, 48, 51, 51, 0, 51, 17, 33,
|
||||
3, 19, 34, 18, 2, 19, 50, 19, 2, 35, 17, 33, 2, 19, 34, 18,
|
||||
2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 48, 51, 51,
|
||||
0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2, 35, 17, 17,
|
||||
2, 51, 34, 18, 2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34,
|
||||
0, 51, 51, 0, 19, 33, 0, 19, 33, 0, 35, 34, 0, 51, 51, 0,
|
||||
19, 33, 0, 19, 33, 0, 35, 34, 0, 51, 51, 0, 19, 33, 0, 19,
|
||||
33, 0, 35, 34, 0, 51, 51, 0, 19, 33, 0, 19, 33, 0, 19, 34,
|
||||
0, 35, 2, 0, 0, 48, 51, 0, 0, 51, 33, 0, 48, 19, 34, 0,
|
||||
51, 33, 2, 0, 19, 34, 0, 0, 35, 33, 3, 0, 48, 18, 50, 0,
|
||||
0, 35, 33, 0, 0, 48, 34, 0, 51, 51, 51, 0, 19, 17, 33, 0,
|
||||
35, 34, 34, 0, 19, 17, 33, 0, 35, 34, 34, 0, 51, 3, 0, 0,
|
||||
19, 50, 0, 0, 35, 33, 3, 0, 48, 18, 50, 0, 0, 35, 33, 0,
|
||||
48, 19, 34, 0, 51, 33, 2, 0, 19, 34, 0, 0, 35, 2, 0, 0,
|
||||
48, 51, 3, 0, 51, 17, 50, 0, 19, 34, 33, 0, 35, 50, 33, 0,
|
||||
48, 19, 34, 0, 48, 33, 2, 0, 48, 34, 0, 0, 48, 33, 0, 0,
|
||||
48, 34, 0, 0, 0, 51, 51, 51, 0, 48, 19, 17, 33, 3, 51, 33,
|
||||
34, 18, 2, 19, 34, 17, 18, 2, 19, 18, 18, 18, 2, 19, 34, 17,
|
||||
33, 2, 35, 33, 34, 34, 0, 48, 18, 17, 33, 0, 0, 35, 34, 34,
|
||||
0, 0, 51, 3, 0, 48, 19, 50, 0, 51, 33, 33, 3, 19, 34, 18,
|
||||
2, 19, 50, 19, 2, 19, 17, 17, 2, 19, 34, 18, 2, 19, 2, 19,
|
||||
2, 35, 2, 35, 2, 51, 51, 51, 0, 19, 17, 33, 3, 19, 34, 18,
|
||||
2, 19, 50, 19, 2, 19, 17, 33, 2, 19, 34, 18, 2, 19, 50, 19,
|
||||
2, 19, 17, 33, 2, 35, 34, 34, 0, 48, 51, 51, 0, 51, 17, 33,
|
||||
3, 19, 34, 18, 2, 19, 2, 35, 2, 19, 2, 0, 0, 19, 2, 51,
|
||||
3, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 51, 51, 51,
|
||||
0, 19, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2, 19, 2, 19,
|
||||
2, 19, 2, 19, 2, 19, 50, 19, 2, 19, 17, 33, 2, 35, 34, 34,
|
||||
0, 51, 51, 51, 0, 19, 17, 33, 0, 19, 34, 34, 0, 19, 50, 3,
|
||||
0, 19, 17, 2, 0, 19, 34, 2, 0, 19, 50, 51, 0, 19, 17, 33,
|
||||
0, 35, 34, 34, 0, 51, 51, 51, 0, 19, 17, 33, 0, 19, 34, 34,
|
||||
0, 19, 50, 3, 0, 19, 17, 2, 0, 19, 34, 2, 0, 19, 2, 0,
|
||||
0, 19, 2, 0, 0, 35, 2, 0, 0, 48, 51, 51, 0, 51, 17, 33,
|
||||
3, 19, 34, 18, 2, 19, 50, 35, 2, 19, 50, 17, 2, 19, 50, 18,
|
||||
2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 51, 3, 51,
|
||||
3, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 19, 17, 17,
|
||||
2, 19, 34, 18, 2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 35,
|
||||
2, 51, 3, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19,
|
||||
2, 35, 2, 0, 48, 51, 0, 0, 48, 33, 0, 0, 48, 33, 0, 0,
|
||||
48, 33, 0, 0, 48, 33, 0, 51, 51, 33, 0, 19, 50, 33, 0, 35,
|
||||
17, 34, 0, 32, 34, 2, 0, 51, 3, 51, 3, 19, 2, 19, 2, 19,
|
||||
50, 19, 2, 19, 50, 33, 2, 19, 17, 34, 0, 19, 34, 33, 3, 19,
|
||||
34, 18, 2, 19, 2, 19, 2, 35, 2, 35, 2, 51, 3, 0, 0, 19,
|
||||
2, 0, 0, 19, 2, 0, 0, 19, 2, 0, 0, 19, 2, 0, 0, 19,
|
||||
2, 0, 0, 19, 50, 51, 0, 19, 17, 33, 0, 35, 34, 34, 0, 51,
|
||||
3, 0, 51, 3, 19, 50, 48, 19, 2, 19, 33, 51, 17, 2, 19, 18,
|
||||
18, 18, 2, 19, 34, 33, 18, 2, 19, 50, 34, 19, 2, 19, 2, 0,
|
||||
19, 2, 19, 2, 0, 19, 2, 35, 2, 0, 35, 2, 51, 3, 51, 3,
|
||||
19, 50, 19, 2, 19, 33, 19, 2, 19, 33, 19, 2, 19, 18, 18, 2,
|
||||
19, 34, 17, 2, 19, 50, 17, 2, 19, 50, 18, 2, 35, 2, 35, 2,
|
||||
51, 51, 51, 0, 19, 17, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2,
|
||||
19, 17, 33, 2, 19, 34, 34, 0, 19, 2, 0, 0, 19, 2, 0, 0,
|
||||
35, 2, 0, 0, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 19, 50, 33, 2,
|
||||
35, 17, 18, 2, 48, 34, 34, 2, 51, 51, 51, 0, 19, 17, 33, 3,
|
||||
19, 34, 18, 2, 19, 50, 19, 2, 19, 17, 33, 2, 19, 34, 18, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 35, 2, 48, 51, 51, 0,
|
||||
51, 17, 33, 3, 19, 34, 18, 2, 19, 50, 35, 2, 35, 17, 33, 3,
|
||||
51, 34, 18, 2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0,
|
||||
51, 51, 51, 3, 19, 17, 17, 2, 35, 18, 34, 2, 0, 19, 2, 0,
|
||||
0, 19, 2, 0, 0, 19, 2, 0, 0, 19, 2, 0, 0, 19, 2, 0,
|
||||
0, 35, 2, 0, 51, 3, 51, 3, 19, 2, 19, 2, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2,
|
||||
35, 17, 33, 2, 48, 34, 34, 0, 51, 3, 51, 3, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2,
|
||||
35, 33, 33, 2, 48, 18, 34, 0, 0, 35, 2, 0, 51, 3, 0, 51,
|
||||
3, 19, 2, 0, 19, 2, 19, 2, 0, 19, 2, 19, 50, 51, 19, 2,
|
||||
19, 50, 33, 19, 2, 19, 18, 18, 18, 2, 19, 33, 34, 17, 2, 19,
|
||||
34, 48, 18, 2, 35, 2, 0, 35, 2, 51, 3, 51, 3, 19, 2, 19,
|
||||
2, 19, 50, 19, 2, 35, 33, 33, 2, 48, 18, 34, 0, 51, 33, 33,
|
||||
3, 19, 34, 18, 2, 19, 2, 19, 2, 35, 2, 35, 2, 51, 3, 51,
|
||||
3, 19, 2, 19, 2, 19, 50, 19, 2, 35, 33, 33, 2, 48, 18, 34,
|
||||
0, 0, 19, 2, 0, 0, 19, 2, 0, 0, 19, 2, 0, 0, 35, 2,
|
||||
0, 51, 51, 51, 3, 19, 17, 17, 2, 35, 34, 18, 2, 0, 51, 33,
|
||||
2, 48, 19, 34, 0, 51, 33, 2, 0, 19, 34, 51, 3, 19, 17, 17,
|
||||
2, 35, 34, 34, 2, 51, 51, 3, 19, 17, 2, 19, 34, 2, 19, 2,
|
||||
0, 19, 2, 0, 19, 2, 0, 19, 50, 3, 19, 17, 2, 35, 34, 2,
|
||||
51, 3, 0, 0, 0, 19, 50, 0, 0, 0, 35, 33, 3, 0, 0, 48,
|
||||
18, 50, 0, 0, 0, 35, 33, 3, 0, 0, 48, 18, 50, 0, 0, 0,
|
||||
35, 33, 0, 0, 0, 48, 34, 0, 51, 51, 3, 19, 17, 2, 35, 18,
|
||||
2, 0, 19, 2, 0, 19, 2, 0, 19, 2, 51, 19, 2, 19, 17, 2,
|
||||
35, 34, 2, 0, 51, 3, 0, 48, 19, 50, 0, 51, 33, 33, 3, 19,
|
||||
34, 18, 2, 35, 2, 35, 2, 51, 51, 51, 51, 3, 19, 17, 17, 17,
|
||||
2, 35, 34, 34, 34, 2, 51, 3, 0, 19, 50, 0, 35, 33, 3, 48,
|
||||
18, 2, 0, 35, 2, 48, 51, 51, 0, 48, 17, 33, 3, 48, 34, 18,
|
||||
2, 51, 17, 17, 2, 19, 34, 18, 2, 35, 17, 17, 2, 48, 34, 34,
|
||||
2, 51, 3, 0, 0, 19, 2, 0, 0, 19, 50, 51, 0, 19, 17, 33,
|
||||
3, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50, 19, 2, 19, 17, 33,
|
||||
2, 35, 34, 34, 0, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18,
|
||||
2, 19, 2, 35, 2, 19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34,
|
||||
0, 0, 0, 51, 3, 0, 0, 19, 2, 48, 51, 19, 2, 51, 17, 17,
|
||||
2, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 17,
|
||||
2, 48, 34, 34, 2, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18,
|
||||
2, 19, 17, 17, 2, 19, 34, 34, 2, 35, 17, 17, 2, 48, 34, 34,
|
||||
2, 0, 51, 51, 0, 48, 19, 33, 0, 48, 33, 34, 0, 51, 33, 3,
|
||||
0, 19, 17, 2, 0, 35, 33, 2, 0, 48, 33, 0, 0, 48, 33, 0,
|
||||
0, 48, 34, 0, 0, 48, 51, 51, 3, 51, 17, 17, 2, 19, 34, 18,
|
||||
2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 17, 2, 48, 34, 18,
|
||||
2, 19, 17, 33, 2, 35, 34, 34, 0, 51, 3, 0, 0, 19, 2, 0,
|
||||
0, 19, 50, 51, 0, 19, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19,
|
||||
2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 35, 2, 51, 3, 19,
|
||||
2, 35, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 0,
|
||||
51, 3, 0, 19, 2, 0, 35, 2, 0, 19, 2, 0, 19, 2, 0, 19,
|
||||
2, 0, 19, 2, 51, 19, 2, 19, 33, 2, 35, 34, 0, 51, 3, 0,
|
||||
0, 19, 2, 0, 0, 19, 50, 51, 0, 19, 50, 33, 0, 19, 18, 34,
|
||||
0, 19, 33, 2, 0, 19, 18, 50, 0, 19, 34, 33, 0, 35, 50, 34,
|
||||
0, 51, 51, 51, 51, 0, 19, 17, 18, 33, 3, 19, 34, 33, 18, 2,
|
||||
19, 50, 33, 19, 2, 19, 50, 33, 19, 2, 19, 50, 33, 19, 2, 35,
|
||||
50, 34, 35, 2, 51, 51, 51, 0, 19, 17, 33, 3, 19, 34, 18, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2, 35, 2,
|
||||
48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2,
|
||||
19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 51, 51, 51, 0,
|
||||
19, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50, 19, 2,
|
||||
19, 17, 33, 2, 19, 34, 34, 0, 19, 2, 0, 0, 35, 2, 0, 0,
|
||||
48, 51, 51, 3, 51, 17, 17, 2, 19, 34, 18, 2, 19, 2, 19, 2,
|
||||
19, 50, 19, 2, 35, 17, 17, 2, 48, 34, 18, 2, 0, 0, 19, 2,
|
||||
0, 0, 35, 2, 51, 51, 51, 0, 19, 17, 33, 3, 19, 34, 18, 2,
|
||||
19, 50, 35, 2, 19, 2, 0, 0, 19, 2, 0, 0, 35, 2, 0, 0,
|
||||
48, 51, 51, 3, 51, 17, 17, 2, 19, 34, 34, 2, 35, 17, 33, 3,
|
||||
51, 34, 18, 2, 19, 17, 33, 2, 35, 34, 34, 0, 48, 51, 0, 48,
|
||||
33, 0, 51, 33, 3, 19, 17, 2, 35, 33, 2, 48, 33, 0, 48, 33,
|
||||
0, 48, 33, 0, 48, 34, 0, 51, 3, 51, 3, 19, 2, 19, 2, 19,
|
||||
2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 17, 2, 48,
|
||||
34, 34, 2, 51, 3, 51, 3, 19, 2, 19, 2, 19, 50, 19, 2, 35,
|
||||
33, 33, 2, 48, 33, 33, 0, 48, 18, 34, 0, 0, 35, 2, 0, 51,
|
||||
51, 51, 51, 3, 19, 50, 33, 19, 2, 19, 50, 33, 19, 2, 19, 50,
|
||||
33, 19, 2, 19, 50, 33, 19, 2, 35, 17, 18, 33, 2, 48, 34, 34,
|
||||
34, 0, 51, 3, 51, 3, 19, 50, 19, 2, 35, 33, 33, 2, 48, 18,
|
||||
34, 0, 51, 33, 33, 3, 19, 34, 18, 2, 35, 2, 35, 2, 51, 3,
|
||||
51, 3, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 33,
|
||||
19, 2, 48, 18, 17, 2, 48, 35, 18, 2, 48, 17, 33, 2, 48, 34,
|
||||
34, 0, 51, 51, 51, 3, 19, 17, 17, 2, 35, 34, 33, 2, 48, 19,
|
||||
34, 0, 51, 33, 50, 3, 19, 17, 17, 2, 35, 34, 34, 2, 0, 51,
|
||||
3, 48, 19, 2, 48, 33, 2, 51, 33, 0, 19, 34, 0, 35, 33, 0,
|
||||
48, 33, 3, 48, 18, 2, 0, 35, 2, 51, 3, 19, 2, 19, 2, 19,
|
||||
2, 35, 2, 19, 2, 19, 2, 19, 2, 35, 2, 51, 3, 0, 19, 50,
|
||||
0, 35, 33, 0, 48, 33, 3, 48, 18, 2, 48, 33, 2, 51, 33, 0,
|
||||
19, 34, 0, 35, 2, 0, 48, 51, 3, 0, 0, 51, 17, 50, 0, 0,
|
||||
19, 34, 33, 51, 0, 35, 50, 18, 33, 0, 0, 0, 35, 34, 0, 51,
|
||||
51, 51, 51, 0, 17, 17, 17, 33, 0, 34, 34, 34, 33, 0, 0, 0,
|
||||
48, 33, 0, 0, 0, 48, 33, 0, 51, 51, 51, 33, 0, 17, 17, 17,
|
||||
33, 0, 34, 34, 34, 34, 0, 48, 51, 51, 0, 51, 17, 33, 3, 19,
|
||||
34, 18, 2, 19, 2, 35, 2, 19, 2, 0, 0, 19, 2, 51, 3, 19,
|
||||
50, 19, 2, 35, 17, 33, 2, 48, 18, 34, 0, 48, 17, 2, 0, 48,
|
||||
34, 2, 0, 51, 3, 51, 3, 19, 2, 19, 2, 35, 2, 35, 2, 19,
|
||||
2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35,
|
||||
17, 17, 2, 48, 34, 34, 2, 48, 19, 2, 0, 48, 33, 2, 0, 48,
|
||||
34, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 17, 17, 2, 19,
|
||||
34, 34, 3, 35, 17, 17, 2, 48, 34, 34, 2, 48, 19, 33, 3, 48,
|
||||
33, 18, 2, 48, 34, 35, 2, 48, 17, 33, 3, 48, 34, 18, 2, 51,
|
||||
17, 17, 2, 19, 34, 18, 2, 35, 17, 17, 2, 48, 34, 34, 2, 48,
|
||||
51, 51, 3, 48, 33, 19, 2, 48, 34, 35, 2, 48, 17, 33, 3, 48,
|
||||
34, 18, 2, 51, 17, 17, 2, 19, 34, 18, 2, 35, 17, 17, 2, 48,
|
||||
34, 34, 2, 0, 19, 50, 0, 0, 35, 33, 0, 0, 51, 34, 0, 48,
|
||||
17, 33, 3, 48, 34, 18, 2, 51, 17, 17, 2, 19, 34, 18, 2, 35,
|
||||
17, 17, 2, 48, 34, 34, 2, 48, 51, 3, 0, 48, 17, 2, 0, 48,
|
||||
34, 2, 0, 48, 17, 33, 3, 48, 34, 18, 2, 51, 17, 17, 2, 19,
|
||||
34, 18, 2, 35, 17, 17, 2, 48, 34, 34, 2, 48, 51, 51, 0, 51,
|
||||
17, 33, 3, 19, 34, 18, 2, 19, 50, 35, 2, 19, 50, 19, 2, 35,
|
||||
17, 33, 2, 48, 18, 34, 0, 0, 35, 2, 0, 48, 19, 33, 3, 48,
|
||||
33, 18, 2, 48, 34, 35, 2, 51, 17, 33, 3, 19, 34, 18, 2, 19,
|
||||
17, 17, 2, 19, 34, 34, 3, 35, 17, 17, 2, 48, 34, 34, 2, 48,
|
||||
51, 51, 3, 48, 33, 19, 2, 48, 34, 35, 2, 51, 17, 33, 3, 19,
|
||||
34, 18, 2, 19, 17, 17, 2, 19, 34, 34, 3, 35, 17, 17, 2, 48,
|
||||
34, 34, 2, 0, 19, 50, 0, 0, 35, 33, 0, 0, 51, 50, 0, 51,
|
||||
17, 33, 3, 19, 34, 18, 2, 19, 17, 17, 2, 19, 34, 34, 3, 35,
|
||||
17, 17, 2, 48, 34, 34, 2, 51, 51, 3, 19, 18, 2, 35, 35, 2,
|
||||
48, 33, 0, 48, 33, 0, 48, 33, 0, 48, 33, 0, 48, 33, 0, 48,
|
||||
34, 0, 51, 33, 3, 19, 18, 2, 35, 35, 2, 48, 33, 0, 48, 33,
|
||||
0, 48, 33, 0, 48, 33, 0, 48, 33, 0, 48, 34, 0, 19, 50, 0,
|
||||
35, 33, 0, 48, 50, 0, 48, 33, 0, 48, 33, 0, 48, 33, 0, 48,
|
||||
33, 0, 48, 33, 0, 48, 34, 0, 19, 50, 19, 2, 35, 19, 34, 2,
|
||||
51, 33, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2, 19, 17, 17, 2,
|
||||
19, 34, 18, 2, 19, 2, 19, 2, 35, 2, 35, 2, 48, 17, 33, 0,
|
||||
48, 34, 50, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2,
|
||||
19, 17, 17, 2, 19, 34, 18, 2, 19, 2, 19, 2, 35, 2, 35, 2,
|
||||
0, 51, 33, 0, 51, 19, 50, 0, 19, 17, 33, 0, 19, 34, 34, 0,
|
||||
19, 17, 2, 0, 19, 34, 2, 0, 19, 50, 51, 0, 19, 17, 33, 0,
|
||||
35, 34, 34, 0, 51, 51, 51, 51, 3, 19, 17, 18, 17, 2, 35, 34,
|
||||
33, 18, 2, 19, 17, 17, 17, 2, 19, 34, 33, 34, 3, 19, 17, 18,
|
||||
17, 2, 35, 34, 35, 34, 2, 0, 51, 51, 51, 51, 48, 19, 17, 17,
|
||||
33, 48, 17, 18, 34, 33, 48, 33, 19, 50, 34, 51, 33, 19, 33, 0,
|
||||
19, 17, 17, 34, 51, 19, 34, 18, 50, 33, 19, 2, 19, 17, 33, 35,
|
||||
2, 35, 34, 34, 48, 19, 50, 0, 48, 33, 33, 0, 48, 34, 34, 0,
|
||||
51, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50, 19, 2,
|
||||
35, 17, 33, 2, 48, 34, 34, 0, 51, 51, 51, 0, 19, 50, 33, 0,
|
||||
35, 50, 34, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2,
|
||||
19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 48, 33, 3, 0,
|
||||
48, 18, 50, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2,
|
||||
19, 50, 19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 48, 19, 50, 0,
|
||||
48, 33, 33, 0, 51, 34, 34, 0, 19, 2, 19, 2, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 17, 2, 48, 34, 34, 2,
|
||||
48, 33, 3, 0, 48, 18, 50, 0, 51, 35, 50, 0, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 17, 2,
|
||||
48, 34, 34, 2, 48, 51, 51, 0, 48, 33, 33, 0, 51, 34, 34, 0,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 33, 19, 2,
|
||||
48, 18, 17, 2, 48, 35, 18, 2, 48, 17, 33, 2, 48, 34, 34, 0,
|
||||
19, 50, 19, 2, 35, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2, 35, 17, 33, 2,
|
||||
48, 34, 34, 0, 19, 2, 19, 2, 35, 3, 35, 3, 19, 2, 19, 2,
|
||||
19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 50, 19, 2,
|
||||
35, 17, 33, 2, 48, 34, 34, 0, 0, 51, 3, 0, 48, 19, 2, 0,
|
||||
51, 17, 50, 0, 19, 34, 33, 0, 19, 50, 50, 0, 19, 50, 33, 0,
|
||||
35, 17, 34, 0, 48, 18, 2, 0, 0, 35, 2, 0, 48, 19, 33, 3,
|
||||
48, 33, 18, 2, 51, 33, 35, 2, 19, 17, 33, 0, 35, 33, 34, 0,
|
||||
48, 33, 51, 3, 51, 33, 19, 2, 19, 17, 33, 2, 35, 34, 34, 0,
|
||||
48, 33, 51, 33, 0, 48, 18, 18, 34, 0, 0, 35, 33, 3, 0, 0,
|
||||
19, 17, 2, 0, 0, 35, 33, 3, 0, 0, 19, 17, 2, 0, 0, 35,
|
||||
33, 2, 0, 0, 48, 33, 0, 0, 0, 48, 34, 0, 0, 51, 51, 51,
|
||||
0, 19, 17, 33, 3, 19, 34, 18, 2, 19, 50, 19, 2, 19, 17, 33,
|
||||
2, 19, 34, 33, 0, 19, 50, 33, 3, 19, 18, 17, 2, 35, 35, 33,
|
||||
2, 0, 48, 34, 0, 0, 48, 51, 3, 0, 0, 51, 17, 50, 0, 0,
|
||||
19, 34, 33, 0, 48, 19, 50, 34, 0, 48, 17, 33, 0, 0, 48, 18,
|
||||
34, 0, 0, 0, 19, 2, 0, 0, 51, 19, 2, 0, 0, 19, 33, 2,
|
||||
0, 0, 35, 34, 0, 0, 0, 0, 51, 33, 0, 0, 19, 34, 0, 0,
|
||||
35, 50, 0, 48, 17, 33, 3, 48, 34, 18, 2, 51, 17, 17, 2, 19,
|
||||
34, 18, 2, 35, 17, 17, 2, 48, 34, 34, 2, 51, 33, 0, 19, 34,
|
||||
0, 35, 2, 0, 19, 2, 0, 19, 2, 0, 19, 2, 0, 19, 2, 0,
|
||||
19, 2, 0, 35, 2, 0, 48, 19, 2, 0, 48, 33, 2, 0, 48, 34,
|
||||
3, 0, 51, 17, 33, 3, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50,
|
||||
19, 2, 35, 17, 33, 2, 48, 34, 34, 0, 48, 19, 2, 0, 48, 33,
|
||||
2, 0, 51, 34, 51, 0, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2,
|
||||
19, 2, 19, 50, 19, 2, 35, 17, 17, 2, 48, 34, 34, 2, 19, 33,
|
||||
19, 2, 35, 18, 33, 2, 51, 35, 34, 0, 19, 17, 33, 3, 19, 34,
|
||||
18, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 19, 2, 35, 2,
|
||||
35, 2, 48, 19, 50, 3, 0, 48, 33, 17, 50, 0, 48, 33, 34, 33,
|
||||
0, 48, 17, 50, 33, 0, 48, 33, 33, 33, 0, 48, 33, 18, 33, 0,
|
||||
48, 33, 35, 33, 0, 48, 33, 48, 33, 0, 48, 34, 48, 34, 0, 48,
|
||||
51, 51, 0, 48, 17, 33, 3, 48, 34, 18, 2, 51, 17, 17, 2, 19,
|
||||
34, 18, 2, 35, 17, 17, 2, 48, 34, 34, 2, 19, 17, 17, 2, 35,
|
||||
34, 34, 2, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34, 18, 2, 35,
|
||||
17, 33, 2, 51, 34, 34, 3, 19, 17, 17, 2, 35, 34, 34, 2, 0,
|
||||
48, 51, 0, 0, 48, 33, 0, 0, 48, 34, 0, 0, 51, 33, 0, 48,
|
||||
19, 34, 0, 48, 33, 50, 3, 48, 33, 19, 2, 48, 18, 33, 2, 0,
|
||||
35, 34, 0, 48, 51, 51, 51, 3, 51, 17, 33, 17, 50, 19, 34, 18,
|
||||
34, 33, 19, 2, 19, 17, 33, 19, 50, 19, 34, 34, 35, 17, 33, 17,
|
||||
33, 48, 34, 34, 34, 34, 48, 51, 51, 0, 51, 17, 33, 3, 19, 34,
|
||||
18, 2, 19, 18, 33, 2, 19, 34, 18, 2, 19, 2, 19, 2, 19, 50,
|
||||
19, 2, 19, 18, 33, 2, 19, 34, 34, 0, 35, 2, 0, 0, 1, 7,
|
||||
0, 9, 1, 7, 2, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7,
|
||||
1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 0, 9,
|
||||
0, 9, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 0, 9,
|
||||
0, 9, 1, 7, 1, 7, 1, 7, 1, 7, 0, 9, 0, 9, 11, 0,
|
||||
0, 9, 0, 4, 1, 7, 0, 9, 0, 9, 0, 9, 0, 5, 0, 9,
|
||||
0, 9, 0, 7, 0, 7, 5, 5, 3, 3, 5, 4, 1, 8, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
|
||||
0, 9, 1, 8, 1, 9, 0, 9, 2, 5, 0, 9, 0, 9, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 1, 8, 0, 9, 0, 5, 6, 3, 0, 5,
|
||||
2, 7, 0, 9, 2, 7, 0, 9, 2, 7, 0, 9, 2, 9, 0, 9,
|
||||
0, 9, 0, 10, 0, 9, 0, 9, 2, 7, 2, 7, 2, 7, 2, 9,
|
||||
2, 9, 2, 7, 2, 7, 0, 9, 2, 7, 2, 7, 2, 7, 2, 7,
|
||||
2, 9, 2, 7, 0, 9, 0, 9, 0, 9, 0, 5, 1, 8, 0, 11,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 2, 8, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9,
|
||||
2, 7, 0, 9, 0, 9, 0, 9, 1, 8, 0, 9, 0, 9, 0, 11,
|
||||
0, 9, 0, 9, 1, 9, 0, 9, 0, 9, 0, 10, 0, 10, 0, 9,
|
||||
0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 0, 9, 1, 7, 0, 9,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 0, 9, 11, 0, 11, 0, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 4, 7, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0,
|
||||
11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0, 11, 0,
|
||||
1, 10,
|
||||
};
|
||||
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Global Data /////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
WWFontClass DefaultFont(DefaultFontData);
|
||||
87
Code/Tools/vidinit/deffont.h
Normal file
87
Code/Tools/vidinit/deffont.h
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifndef DEFFONT_H
|
||||
#define DEFFONT_H
|
||||
|
||||
#include "wwfont.h"
|
||||
|
||||
// Default 1 color fonts.
|
||||
extern WWFontClass DefaultFont;
|
||||
|
||||
|
||||
enum FontStyleEnum {
|
||||
// Note: Space 6 means that a standard letter uses 6 points - the font is larger then that
|
||||
// because of overhangs and rises.
|
||||
// The 4 Color means there are four colors used in this not including transperancy.
|
||||
SPACE_6_PNT_2_COLOR,
|
||||
SPACE_8_PNT_3_COLOR,
|
||||
SPACE_11_PNT_4_COLOR,
|
||||
|
||||
NUM_FONT_STYLES,
|
||||
};
|
||||
|
||||
enum FontRemapEnum {
|
||||
// A temp buffer that programmer can change before each use.
|
||||
USER_256_COLORS,
|
||||
|
||||
DARK_GREEN_3_COLOR,
|
||||
LIGHT_GREEN_3_COLOR,
|
||||
DARK_GREEN_4_COLOR,
|
||||
LIGHT_GREEN_4_COLOR,
|
||||
DARK_GREEN_2_COLOR,
|
||||
LIGHT_GREEN_2_COLOR,
|
||||
DARK_BLUE_2_COLOR,
|
||||
LIGHT_BLUE_2_COLOR,
|
||||
DARK_RED_4_COLOR,
|
||||
|
||||
// This is a RAMP palette. See/Use Build_Font_Palette_From_Ramp().
|
||||
RAMP_GREEN_TO_RED_2_COLOR, // For use with 2 color fonts where color 2 is changes. Color 1 is preset to 0.
|
||||
|
||||
NUM_FONT_REMAPS,
|
||||
};
|
||||
|
||||
// Two spacy looking fonts that use 8 colors each.
|
||||
extern void *FontData[NUM_FONT_STYLES];
|
||||
|
||||
// For now we have green cause that is all that is needed. Add more as needed.
|
||||
extern unsigned char *FontRemapTables[NUM_FONT_REMAPS];
|
||||
|
||||
// Number of colors (allocated chars) in FontRemapTable. Useful for some of the RAMPS.
|
||||
extern int FontRemapTablesSize[NUM_FONT_REMAPS];
|
||||
|
||||
// Converter class for use with Font*Data and *FontRemapTable.
|
||||
// You can create a font like this:
|
||||
// NEW WWFontClass(SpaceFont8Data, true, 1, FontConverter, GreenFontRemapTable);
|
||||
extern ConvertClass *FontConverter;
|
||||
|
||||
// Load font data for fonts listed above.
|
||||
void Load_Default_Font_Data();
|
||||
void Release_Default_Font_Data();
|
||||
|
||||
// A routine that will load font data from a *.fnt file make from FontMake.exe
|
||||
void *Load_Font_Data(char *fname);
|
||||
|
||||
// Creates a palette from a ramp palette given min and max values.
|
||||
unsigned char *Build_Font_Palette_From_Ramp(float val_norm, FontRemapEnum remap, unsigned char *ret_remap = &FontRemapTables[USER_256_COLORS][0]);
|
||||
|
||||
#endif
|
||||
76
Code/Tools/vidinit/defpal.cpp
Normal file
76
Code/Tools/vidinit/defpal.cpp
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <convert.h>
|
||||
#include <bsurface.h>
|
||||
// Define a default palette for the product in case one hasn't been loaded
|
||||
// from disk.
|
||||
char DefaultPaletteData[768] = {
|
||||
0, 0, 0, 42, 0, 42, 0, 42, 42, 0, 42, 0, 22, 63, 21, 63,
|
||||
63, 21, 63, 21, 21, 42, 21, 0, 42, 0, 0, 21, 63, 63, 20, 20,
|
||||
63, 0, 0, 42, 0, 0, 0, 21, 21, 21, 42, 42, 42, 63, 63, 63,
|
||||
4, 3, 3, 3, 4, 5, 5, 5, 6, 8, 7, 7, 7, 8, 9, 9,
|
||||
9, 10, 12, 10, 10, 10, 12, 11, 11, 13, 13, 17, 14, 14, 10, 17,
|
||||
10, 13, 16, 10, 11, 16, 14, 14, 17, 14, 14, 20, 15, 17, 17, 15,
|
||||
25, 20, 14, 14, 14, 17, 13, 17, 27, 21, 18, 18, 18, 21, 18, 21,
|
||||
22, 18, 25, 22, 21, 21, 25, 19, 18, 25, 21, 25, 25, 19, 29, 25,
|
||||
19, 25, 26, 22, 29, 26, 22, 29, 29, 23, 22, 29, 24, 22, 29, 29,
|
||||
26, 30, 25, 30, 29, 29, 34, 22, 20, 34, 28, 22, 34, 30, 27, 27,
|
||||
33, 23, 29, 33, 25, 30, 37, 29, 33, 34, 26, 37, 34, 26, 37, 38,
|
||||
29, 42, 37, 29, 36, 41, 29, 42, 42, 30, 23, 30, 41, 34, 30, 42,
|
||||
22, 33, 36, 30, 35, 34, 30, 34, 43, 26, 37, 49, 34, 34, 33, 37,
|
||||
37, 33, 41, 37, 35, 43, 43, 35, 34, 34, 45, 38, 37, 46, 41, 37,
|
||||
42, 41, 38, 46, 49, 45, 35, 44, 43, 50, 50, 45, 50, 57, 54, 57,
|
||||
61, 53, 30, 57, 50, 28, 53, 47, 26, 49, 44, 24, 45, 41, 22, 42,
|
||||
38, 21, 36, 34, 19, 36, 29, 16, 33, 28, 14, 27, 25, 14, 22, 21,
|
||||
11, 21, 19, 9, 18, 17, 8, 14, 13, 7, 13, 11, 5, 10, 8, 2,
|
||||
23, 49, 55, 23, 41, 50, 23, 35, 45, 23, 29, 41, 23, 35, 45, 23,
|
||||
41, 50, 23, 45, 55, 47, 0, 0, 52, 48, 40, 49, 45, 37, 46, 42,
|
||||
33, 44, 39, 30, 41, 36, 27, 37, 32, 24, 34, 27, 20, 31, 24, 18,
|
||||
59, 56, 54, 55, 51, 49, 51, 46, 44, 46, 41, 38, 41, 36, 33, 37,
|
||||
31, 28, 33, 28, 25, 28, 22, 20, 23, 18, 16, 20, 15, 13, 15, 11,
|
||||
10, 11, 7, 6, 0, 63, 0, 0, 49, 0, 0, 35, 0, 0, 22, 0,
|
||||
59, 59, 59, 57, 57, 57, 52, 52, 52, 47, 47, 47, 43, 43, 43, 40,
|
||||
40, 40, 37, 37, 37, 34, 34, 34, 31, 31, 31, 28, 28, 28, 25, 25,
|
||||
25, 23, 23, 23, 19, 19, 19, 14, 14, 14, 9, 9, 9, 5, 5, 5,
|
||||
49, 57, 33, 44, 52, 31, 39, 47, 29, 34, 43, 27, 30, 38, 25, 26,
|
||||
34, 23, 22, 29, 19, 19, 25, 15, 15, 21, 12, 12, 17, 9, 9, 13,
|
||||
6, 6, 9, 4, 63, 63, 39, 63, 53, 0, 63, 45, 0, 63, 34, 0,
|
||||
56, 57, 61, 51, 52, 58, 45, 47, 55, 40, 42, 50, 35, 37, 46, 31,
|
||||
33, 43, 26, 29, 40, 22, 26, 37, 17, 21, 34, 14, 18, 31, 12, 16,
|
||||
29, 10, 14, 27, 8, 11, 24, 6, 11, 21, 3, 8, 17, 2, 5, 13,
|
||||
33, 41, 43, 29, 37, 39, 25, 32, 34, 21, 27, 29, 17, 22, 24, 14,
|
||||
18, 19, 9, 12, 13, 5, 8, 9, 17, 36, 31, 16, 33, 29, 14, 29,
|
||||
27, 7, 27, 24, 6, 22, 19, 7, 16, 16, 3, 13, 13, 0, 8, 8,
|
||||
45, 54, 63, 31, 47, 60, 17, 37, 57, 10, 30, 54, 9, 21, 51, 6,
|
||||
17, 45, 5, 15, 39, 4, 12, 34, 52, 38, 31, 48, 34, 26, 45, 28,
|
||||
21, 43, 23, 17, 38, 19, 14, 33, 16, 12, 28, 11, 9, 24, 9, 7,
|
||||
63, 57, 37, 63, 53, 31, 61, 49, 28, 59, 43, 21, 58, 40, 16, 57,
|
||||
36, 10, 53, 30, 4, 49, 24, 0, 45, 18, 0, 41, 14, 0, 38, 10,
|
||||
0, 33, 8, 0, 27, 4, 0, 23, 2, 0, 19, 0, 0, 14, 0, 0,
|
||||
63, 0, 63, 63, 0, 63, 63, 0, 63, 49, 49, 49, 54, 53, 54, 63,
|
||||
23, 0, 63, 0, 0, 59, 0, 0, 54, 0, 0, 51, 0, 0, 47, 0,
|
||||
0, 44, 0, 0, 37, 0, 0, 33, 0, 0, 29, 0, 0, 25, 0, 0,
|
||||
7, 6, 2, 9, 8, 3, 10, 9, 4, 12, 12, 5, 14, 14, 7, 16,
|
||||
16, 8, 18, 18, 10, 20, 20, 12, 22, 22, 14, 23, 24, 16, 25, 26,
|
||||
18, 27, 28, 21, 29, 30, 23, 31, 32, 26, 33, 34, 29, 63, 63, 63,
|
||||
};
|
||||
|
||||
PaletteClass DefaultPalette((unsigned char *)DefaultPaletteData);
|
||||
ConvertClass DefaultConvert(DefaultPalette, DefaultPalette, BSurface(8,8,8));
|
||||
24
Code/Tools/vidinit/defpal.h
Normal file
24
Code/Tools/vidinit/defpal.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <palette.h>
|
||||
#include <convert.h>
|
||||
|
||||
extern PaletteClass DefaultPalette;
|
||||
extern ConvertClass DefaultConvert;
|
||||
|
||||
BIN
Code/Tools/vidinit/res/vidinit.ico
Normal file
BIN
Code/Tools/vidinit/res/vidinit.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
13
Code/Tools/vidinit/res/vidinit.rc2
Normal file
13
Code/Tools/vidinit/res/vidinit.rc2
Normal file
@@ -0,0 +1,13 @@
|
||||
//
|
||||
// VIDINIT.RC2 - resources Microsoft Visual C++ does not edit directly
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#error this file is not editable by Microsoft Visual C++
|
||||
#endif //APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Add manually edited resources here...
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
26
Code/Tools/vidinit/resource.h
Normal file
26
Code/Tools/vidinit/resource.h
Normal file
@@ -0,0 +1,26 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by vidinit.rc
|
||||
//
|
||||
#define IDTEST 3
|
||||
#define IDD_VIDINIT_DIALOG 102
|
||||
#define IDR_MAINFRAME 128
|
||||
#define IDC_DRIVERS 1002
|
||||
#define IDC_RESOLUTIONS 1003
|
||||
#define IDC_DRIVER_NAME 1004
|
||||
#define IDC_DRIVER_VENDOR 1005
|
||||
#define IDC_HARDWARE_NAME 1006
|
||||
#define IDC_HARDWARE_VENDOR 1007
|
||||
#define IDC_HARDWARE_CHIPSET 1008
|
||||
#define IDC_CHECK1 1010
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 129
|
||||
#define _APS_NEXT_COMMAND_VALUE 32771
|
||||
#define _APS_NEXT_CONTROL_VALUE 1011
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
92
Code/Tools/vidinit/vidinit.cpp
Normal file
92
Code/Tools/vidinit/vidinit.cpp
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// vidinit.cpp : Defines the class behaviors for the application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "vidinit.h"
|
||||
#include "vidinitDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CVidinitApp, CWinApp)
|
||||
//{{AFX_MSG_MAP(CVidinitApp)
|
||||
// NOTE - the ClassWizard will add and remove mapping macros here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code!
|
||||
//}}AFX_MSG
|
||||
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitApp construction
|
||||
|
||||
CVidinitApp::CVidinitApp():
|
||||
WindowIsClosing(false)
|
||||
{
|
||||
// TODO: add construction code here,
|
||||
// Place all significant initialization in InitInstance
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// The one and only CVidinitApp object
|
||||
|
||||
CVidinitApp theApp;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitApp initialization
|
||||
|
||||
BOOL CVidinitApp::InitInstance()
|
||||
{
|
||||
// Standard initialization
|
||||
// If you are not using these features and wish to reduce the size
|
||||
// of your final executable, you should remove from the following
|
||||
// the specific initialization routines you do not need.
|
||||
|
||||
#ifdef _AFXDLL
|
||||
Enable3dControls(); // Call this when using MFC in a shared DLL
|
||||
#else
|
||||
Enable3dControlsStatic(); // Call this when linking to MFC statically
|
||||
#endif
|
||||
|
||||
CVidinitDlg dlg(NULL);
|
||||
m_pMainWnd = &dlg;
|
||||
int nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with OK
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: Place code here to handle when the dialog is
|
||||
// dismissed with Cancel
|
||||
}
|
||||
|
||||
// Since the dialog has been closed, return FALSE so that we exit the
|
||||
// application, rather than start the application's message pump.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
68
Code/Tools/vidinit/vidinit.h
Normal file
68
Code/Tools/vidinit/vidinit.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// vidinit.h : main header file for the VIDINIT application
|
||||
//
|
||||
|
||||
#if !defined(AFX_VIDINIT_H__83B1C937_54EC_4C22_9192_4FD935841183__INCLUDED_)
|
||||
#define AFX_VIDINIT_H__83B1C937_54EC_4C22_9192_4FD935841183__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error include 'stdafx.h' before including this file for PCH
|
||||
#endif
|
||||
|
||||
#include "resource.h" // main symbols
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitApp:
|
||||
// See vidinit.cpp for the implementation of this class
|
||||
//
|
||||
|
||||
class CVidinitApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CVidinitApp();
|
||||
|
||||
bool WindowIsClosing;
|
||||
// Overrides
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CVidinitApp)
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
|
||||
//{{AFX_MSG(CVidinitApp)
|
||||
// NOTE - the ClassWizard will add and remove member functions here.
|
||||
// DO NOT EDIT what you see in these blocks of generated code !
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_VIDINIT_H__83B1C937_54EC_4C22_9192_4FD935841183__INCLUDED_)
|
||||
194
Code/Tools/vidinit/vidinit.rc
Normal file
194
Code/Tools/vidinit/vidinit.rc
Normal file
@@ -0,0 +1,194 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_OLE_RESOURCES\r\n"
|
||||
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
|
||||
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
|
||||
"\r\n"
|
||||
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
|
||||
"#ifdef _WIN32\r\n"
|
||||
"LANGUAGE 9, 1\r\n"
|
||||
"#pragma code_page(1252)\r\n"
|
||||
"#endif //_WIN32\r\n"
|
||||
"#include ""res\\vidinit.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
|
||||
"#include ""afxres.rc"" // Standard components\r\n"
|
||||
"#endif\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON DISCARDABLE "res\\vidinit.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
IDD_VIDINIT_DIALOG DIALOGEX 0, 0, 185, 276
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_APPWINDOW
|
||||
CAPTION "Select Video Driver and Resolution"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,10,255,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,124,255,50,14
|
||||
GROUPBOX "Detected Hardware Drivers",IDC_STATIC,14,6,157,88
|
||||
GROUPBOX "Supported Resolutions",IDC_STATIC,14,168,157,64
|
||||
LISTBOX IDC_DRIVERS,18,18,148,72,LBS_NOINTEGRALHEIGHT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LISTBOX IDC_RESOLUTIONS,18,179,148,49,LBS_NOINTEGRALHEIGHT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Device Name:",IDC_STATIC,34,108,46,8
|
||||
LTEXT "Device Vendor:",IDC_STATIC,30,118,50,8
|
||||
LTEXT "Hardware Name:",IDC_STATIC,26,128,54,8
|
||||
LTEXT "Hardware Vendor:",IDC_STATIC,22,138,58,8
|
||||
LTEXT "Hardware chipset:",IDC_STATIC,22,148,58,8
|
||||
LTEXT "Unknown",IDC_DRIVER_NAME,88,108,78,8
|
||||
LTEXT "Unknown",IDC_DRIVER_VENDOR,88,118,78,8
|
||||
LTEXT "Unknown",IDC_HARDWARE_NAME,88,128,78,8
|
||||
LTEXT "Unknown",IDC_HARDWARE_CHIPSET,88,148,78,8
|
||||
LTEXT "Unknown",IDC_HARDWARE_VENDOR,88,138,78,8
|
||||
GROUPBOX "Driver Information",IDC_STATIC,15,98,156,65
|
||||
CONTROL "Run full screen",IDC_CHECK1,"Button",BS_AUTOCHECKBOX |
|
||||
WS_TABSTOP,61,237,63,10
|
||||
DEFPUSHBUTTON "TEST",IDTEST,67,255,50,14
|
||||
END
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,0,1
|
||||
PRODUCTVERSION 1,0,0,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x4L
|
||||
FILETYPE 0x1L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904B0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "\0"
|
||||
VALUE "FileDescription", "vidinit MFC Application\0"
|
||||
VALUE "FileVersion", "1, 0, 0, 1\0"
|
||||
VALUE "InternalName", "vidinit\0"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2000\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "OriginalFilename", "vidinit.EXE\0"
|
||||
VALUE "ProductName", "vidinit Application\0"
|
||||
VALUE "ProductVersion", "1, 0, 0, 1\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
IDD_VIDINIT_DIALOG, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 177
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 269
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
#define _AFX_NO_SPLITTER_RESOURCES
|
||||
#define _AFX_NO_OLE_RESOURCES
|
||||
#define _AFX_NO_TRACKER_RESOURCES
|
||||
#define _AFX_NO_PROPERTY_RESOURCES
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE 9, 1
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
#include "res\vidinit.rc2" // non-Microsoft Visual C++ edited resources
|
||||
#include "afxres.rc" // Standard components
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
264
Code/Tools/vidinit/vidinitDlg.cpp
Normal file
264
Code/Tools/vidinit/vidinitDlg.cpp
Normal file
@@ -0,0 +1,264 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// vidinitDlg.cpp : implementation file
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "vidinit.h"
|
||||
#include "vidinitDlg.h"
|
||||
#include "SurrenderWnd.h"
|
||||
#include "wwsaveload.h"
|
||||
#include <ww3d.h>
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#undef THIS_FILE
|
||||
static char THIS_FILE[] = __FILE__;
|
||||
#endif
|
||||
|
||||
|
||||
//#define REGISTRY_KEY "Software\\Westwood Studios\\Earth and Beyond\\Render"
|
||||
#define REGISTRY_KEY "Software\\Westwood Studios\\Renegade\\Render"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitDlg dialog
|
||||
|
||||
CVidinitDlg::CVidinitDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CVidinitDlg::IDD, pParent),
|
||||
m_TestCWnd(0)
|
||||
{
|
||||
//{{AFX_DATA_INIT(CVidinitDlg)
|
||||
m_RunFullScreen = FALSE;
|
||||
//}}AFX_DATA_INIT
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CVidinitDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
//{{AFX_DATA_MAP(CVidinitDlg)
|
||||
DDX_Control(pDX, IDC_RESOLUTIONS, m_Resolutions);
|
||||
DDX_Control(pDX, IDC_DRIVERS, m_Drivers);
|
||||
DDX_Check(pDX, IDC_CHECK1, m_RunFullScreen);
|
||||
//}}AFX_DATA_MAP
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CVidinitDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CVidinitDlg)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_LBN_SELCHANGE(IDC_DRIVERS, OnSelchangeDrivers)
|
||||
ON_BN_CLICKED(IDTEST, OnTest)
|
||||
//}}AFX_MSG_MAP
|
||||
ON_MESSAGE(WM_USER+1, OnDeadBeef)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitDlg message handlers
|
||||
|
||||
BOOL CVidinitDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// Set the icon for this dialog. The framework does this automatically
|
||||
// when the application's main window is not a dialog
|
||||
SetIcon(m_hIcon, TRUE); // Set big icon
|
||||
SetIcon(m_hIcon, FALSE); // Set small icon
|
||||
|
||||
// TODO: Add extra initialization here
|
||||
|
||||
WW3D::Init(GetSafeHwnd());
|
||||
WWMath::Init();
|
||||
WWSaveLoad::Init();
|
||||
|
||||
// HACK: Added throwaway variable for texture_depth to match new function interface. (DRM 6/01/00)
|
||||
// TODO: Add UI support for texture depth selection. (DRM, 6/1/00)
|
||||
int texture_depth;
|
||||
WW3D::Detect_Drivers(AfxGetInstanceHandle());
|
||||
WW3D::Registry_Load_Render_Device(REGISTRY_KEY, m_DeviceName, 255, m_DeviceWidth, m_DeviceHeight, m_DeviceDepth, m_DeviceWindowed, texture_depth);
|
||||
|
||||
// Loop thought the different available render devices
|
||||
for (int lp = 0; lp < WW3D::Get_Render_Device_Count(); lp++) {
|
||||
const RenderDeviceDescClass &desc = WW3D::Get_Render_Device_Desc(lp);
|
||||
char temp[255];
|
||||
sprintf(temp, "%s", WW3D::Get_Render_Device_Name(lp));
|
||||
m_Drivers.AddString(temp);
|
||||
|
||||
}
|
||||
int idx = m_Drivers.FindStringExact(0, m_DeviceName);
|
||||
if (idx != -1) {
|
||||
m_Drivers.SetCurSel(idx);
|
||||
OnSelchangeDrivers();
|
||||
|
||||
char temp[255];
|
||||
sprintf(temp, "%d x %d in %d bit mode.", m_DeviceWidth, m_DeviceHeight, m_DeviceDepth);
|
||||
|
||||
int idx = m_Resolutions.FindStringExact(0, temp);
|
||||
m_Resolutions.SetCurSel(idx);
|
||||
|
||||
m_RunFullScreen = !m_DeviceWindowed;
|
||||
UpdateData(false);
|
||||
}
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
}
|
||||
|
||||
// If you add a minimize button to your dialog, you will need the code below
|
||||
// to draw the icon. For MFC applications using the document/view model,
|
||||
// this is automatically done for you by the framework.
|
||||
|
||||
void CVidinitDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // device context for painting
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
|
||||
|
||||
// Center icon in client rectangle
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// Draw the icon
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// The system calls this to obtain the cursor to display while the user drags
|
||||
// the minimized window.
|
||||
HCURSOR CVidinitDlg::OnQueryDragIcon()
|
||||
{
|
||||
return (HCURSOR) m_hIcon;
|
||||
}
|
||||
|
||||
void CVidinitDlg::OnOK()
|
||||
{
|
||||
// TODO: Add extra validation here
|
||||
UpdateData();
|
||||
|
||||
int driver = m_Drivers.GetCurSel();
|
||||
if (driver == -1) return;
|
||||
|
||||
int sel = m_Resolutions.GetCurSel();
|
||||
if (sel == -1) return;
|
||||
|
||||
const RenderDeviceDescClass &desc = WW3D::Get_Render_Device_Desc(driver);
|
||||
const DynamicVectorClass<ResolutionDescClass>& res = desc.Enumerate_Resolutions();
|
||||
|
||||
// HACK: using constant 32 for texture depth. (DRM, 6/1/00)
|
||||
// TODO: Add UI support for texture depth selection. (DRM, 6/1/00)
|
||||
WW3D::Registry_Save_Render_Device( REGISTRY_KEY, driver, res[sel].Width, res[sel].Height, res[sel].BitDepth, !m_RunFullScreen, 32);
|
||||
|
||||
WW3D::Shutdown();
|
||||
WWMath::Shutdown();
|
||||
WWSaveLoad::Shutdown();
|
||||
|
||||
|
||||
CDialog::OnOK();
|
||||
}
|
||||
|
||||
void CVidinitDlg::OnCancel()
|
||||
{
|
||||
// TODO: Add extra cleanup here
|
||||
WW3D::Shutdown();
|
||||
WWMath::Shutdown();
|
||||
WWSaveLoad::Shutdown();
|
||||
|
||||
CDialog::OnCancel();
|
||||
}
|
||||
|
||||
void CVidinitDlg::OnSelchangeDrivers()
|
||||
{
|
||||
// TODO: Add your control notification handler code here
|
||||
int driver = m_Drivers.GetCurSel();
|
||||
|
||||
const RenderDeviceDescClass &desc = WW3D::Get_Render_Device_Desc(driver);
|
||||
SetDlgItemText(IDC_HARDWARE_NAME, desc.Get_Hardware_Name());
|
||||
SetDlgItemText(IDC_HARDWARE_VENDOR, desc.Get_Hardware_Vendor());
|
||||
SetDlgItemText(IDC_HARDWARE_CHIPSET, desc.Get_Hardware_Chipset());
|
||||
SetDlgItemText(IDC_DRIVER_NAME, desc.Get_Device_Name());
|
||||
SetDlgItemText(IDC_DRIVER_VENDOR, desc.Get_Device_Vendor());
|
||||
|
||||
const DynamicVectorClass<ResolutionDescClass>& res = desc.Enumerate_Resolutions();
|
||||
while (m_Resolutions.GetCount()) {
|
||||
m_Resolutions.DeleteString(0);
|
||||
}
|
||||
|
||||
for (int lp = 0; lp < res.Count(); lp++) {
|
||||
char temp[255];
|
||||
sprintf(temp, "%d x %d in %d bit mode.", res[lp].Width, res[lp].Height, res[lp].BitDepth);
|
||||
m_Resolutions.AddString(temp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void CVidinitDlg::OnTest()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
|
||||
// TODO: Add your control notification handler code here
|
||||
int driver = m_Drivers.GetCurSel();
|
||||
if (driver == -1) return;
|
||||
|
||||
int sel = m_Resolutions.GetCurSel();
|
||||
if (sel == -1) return;
|
||||
|
||||
const RenderDeviceDescClass &desc = WW3D::Get_Render_Device_Desc(driver);
|
||||
const DynamicVectorClass<ResolutionDescClass>& res = desc.Enumerate_Resolutions();
|
||||
|
||||
m_TestCWnd = new CSurrenderWnd(this, driver, res[sel].Width, res[sel].Height, res[sel].BitDepth, !m_RunFullScreen);
|
||||
|
||||
CWnd *wnd = GetDlgItem(IDTEST);
|
||||
wnd->EnableWindow(false);
|
||||
wnd = GetDlgItem(IDOK);
|
||||
wnd->EnableWindow(false);
|
||||
wnd = GetDlgItem(IDCANCEL);
|
||||
wnd->EnableWindow(false);
|
||||
}
|
||||
|
||||
|
||||
LRESULT CVidinitDlg::OnDeadBeef(WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (m_TestCWnd && wParam == 0xDEADBEEF && lParam == 0xDEADBEEF) {
|
||||
WW3D::Restore_Display_Mode();
|
||||
m_TestCWnd->RemoveSubclass();
|
||||
m_TestCWnd->PostMessage(WM_CLOSE);
|
||||
m_TestCWnd = 0;
|
||||
CWnd *wnd = GetDlgItem(IDTEST);
|
||||
wnd->EnableWindow(true);
|
||||
wnd = GetDlgItem(IDOK);
|
||||
wnd->EnableWindow(true);
|
||||
wnd = GetDlgItem(IDCANCEL);
|
||||
wnd->EnableWindow(true);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
81
Code/Tools/vidinit/vidinitDlg.h
Normal file
81
Code/Tools/vidinit/vidinitDlg.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
** Command & Conquer Renegade(tm)
|
||||
** Copyright 2025 Electronic Arts 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 3 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
|
||||
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 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, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// vidinitDlg.h : header file
|
||||
//
|
||||
|
||||
#if !defined(AFX_VIDINITDLG_H__AC2150AD_B8EF_4511_BA4A_DEDC16A03EDF__INCLUDED_)
|
||||
#define AFX_VIDINITDLG_H__AC2150AD_B8EF_4511_BA4A_DEDC16A03EDF__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CVidinitDlg dialog
|
||||
class CSurrenderWnd;
|
||||
class CVidinitDlg : public CDialog
|
||||
{
|
||||
// Construction
|
||||
public:
|
||||
CVidinitDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CVidinitDlg)
|
||||
enum { IDD = IDD_VIDINIT_DIALOG };
|
||||
CListBox m_Resolutions;
|
||||
CListBox m_Drivers;
|
||||
BOOL m_RunFullScreen;
|
||||
//}}AFX_DATA
|
||||
|
||||
// ClassWizard generated virtual function overrides
|
||||
//{{AFX_VIRTUAL(CVidinitDlg)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||
//}}AFX_VIRTUAL
|
||||
|
||||
// Implementation
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
LPCTSTR m_WndClass;
|
||||
CSurrenderWnd * m_TestCWnd;
|
||||
|
||||
char m_DeviceName[255];
|
||||
int m_DeviceWidth;
|
||||
int m_DeviceHeight;
|
||||
int m_DeviceDepth;
|
||||
int m_DeviceWindowed;
|
||||
|
||||
// Generated message map functions
|
||||
//{{AFX_MSG(CVidinitDlg)
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
virtual void OnOK();
|
||||
virtual void OnCancel();
|
||||
afx_msg void OnSelchangeDrivers();
|
||||
afx_msg void OnTest();
|
||||
//}}AFX_MSG
|
||||
afx_msg LRESULT OnDeadBeef(WPARAM, LPARAM);
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
//{{AFX_INSERT_LOCATION}}
|
||||
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
|
||||
|
||||
#endif // !defined(AFX_VIDINITDLG_H__AC2150AD_B8EF_4511_BA4A_DEDC16A03EDF__INCLUDED_)
|
||||
Reference in New Issue
Block a user