Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,102 @@
// Balancer.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#include "Balancer.h"
#include "BalancerDlg.h"
#include <Stuff\Stuff.hpp>
#include <DLLPlatform\DLLPlatform.hpp>
void __stdcall InitializeGameEngine()
{
Stuff::InitializeClasses();
}
/////////////////////////////////////////////////////////////////////////////
// CBalancerApp
BEGIN_MESSAGE_MAP(CBalancerApp, CWinApp)
//{{AFX_MSG_MAP(CBalancerApp)
// 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()
/////////////////////////////////////////////////////////////////////////////
// CBalancerApp construction
CBalancerApp::CBalancerApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CBalancerApp object
CBalancerApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CBalancerApp initialization
BOOL CBalancerApp::InitInstance()
{
InitGameOS(NULL, NULL, "blabla");
InitializeGameEngine();
AfxEnableControlContainer();
// 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
CBalancerDlg dlg;
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;
}
void __stdcall TerminateGameEngine()
{
Stuff::TerminateClasses();
}
void __stdcall GetGameOSEnvironment(char* CommandLine)
{
// Environment.UpdateRenderers = UpdateDisplay;
// Environment.DoGameLogic = DoGameLogic;
Environment.InitializeGameEngine = InitializeGameEngine;
Environment.TerminateGameEngine = TerminateGameEngine;
}
int CBalancerApp::ExitInstance()
{
// TODO: Add your specialized code here and/or call the base class
ExitGameOS();
return CWinApp::ExitInstance();
}
@@ -0,0 +1,199 @@
# Microsoft Developer Studio Project File - Name="Balancer" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=Balancer - 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 "Balancer.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 "Balancer.mak" CFG="Balancer - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Balancer - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "Balancer - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE "Balancer - Win32 Profile" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "Balancer - Win32 Release"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../rel.bin"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\Code" /I "..\..\Libraries" /I "..\..\..\CoreTech\Libraries" /I "..\..\Libraries\stlport" /D "USE_PROTOTYPES" /D "STRICT" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 ws2_32.lib /nologo /subsystem:windows /machine:I386
!ELSEIF "$(CFG)" == "Balancer - Win32 Debug"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../dbg.bin"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /G6 /Zp4 /MDd /W3 /Gm /GR /ZI /Od /I "..\..\Code" /I "..\..\Libraries" /I "..\..\..\CoreTech\Libraries" /I "..\..\Libraries\stlport" /D "LAB_ONLY" /D "USE_PROTOTYPES" /D "STRICT" /D "_ARMOR" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /D "WIN32" /D "_DEBUG" /Yu"stdafx.h" /FD /GZ /c
# SUBTRACT CPP /Fr
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 ws2_32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
!ELSEIF "$(CFG)" == "Balancer - Win32 Profile"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Balancer___Win32_Profile"
# PROP BASE Intermediate_Dir "Balancer___Win32_Profile"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../pro.bin"
# PROP Intermediate_Dir "Profile"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /G6 /Zp4 /MD /W3 /Zi /O2 /I "..\..\Code" /I "..\..\Libraries" /I "..\..\..\CoreTech\Libraries" /I "..\..\Libraries\stlport" /D "LAB_ONLY" /D "USE_PROTOTYPES" /D "STRICT" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 ws2_32.lib /nologo /subsystem:windows /machine:I386
!ENDIF
# Begin Target
# Name "Balancer - Win32 Release"
# Name "Balancer - Win32 Debug"
# Name "Balancer - Win32 Profile"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\Balancer.cpp
# End Source File
# Begin Source File
SOURCE=.\Balancer.rc
# End Source File
# Begin Source File
SOURCE=.\BalancerDlg.cpp
# End Source File
# Begin Source File
SOURCE=.\ChildOfDialogMessagePusher.cpp
# End Source File
# Begin Source File
SOURCE=.\dlgObjectBalance.cpp
# End Source File
# Begin Source File
SOURCE=.\DlgObjectProperties.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\Balancer.h
# End Source File
# Begin Source File
SOURCE=.\BalancerDlg.h
# End Source File
# Begin Source File
SOURCE=.\ChildOfDialogMessagePusher.h
# End Source File
# Begin Source File
SOURCE=.\dlgObjectBalance.h
# End Source File
# Begin Source File
SOURCE=.\DlgObjectProperties.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.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=.\res\Balancer.ico
# End Source File
# Begin Source File
SOURCE=.\res\Balancer.rc2
# End Source File
# End Group
# Begin Source File
SOURCE=.\ReadMe.txt
# End Source File
# End Target
# End Project
@@ -0,0 +1,50 @@
// Balancer.h : main header file for the BALANCER application
//
#if !defined(AFX_BALANCER_H__AA9C207B_C15D_4937_849E_A2935244C737__INCLUDED_)
#define AFX_BALANCER_H__AA9C207B_C15D_4937_849E_A2935244C737__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
/////////////////////////////////////////////////////////////////////////////
// CBalancerApp:
// See Balancer.cpp for the implementation of this class
//
class CBalancerApp : public CWinApp
{
public:
CBalancerApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBalancerApp)
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CBalancerApp)
// 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_BALANCER_H__AA9C207B_C15D_4937_849E_A2935244C737__INCLUDED_)
@@ -0,0 +1,270 @@
//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\\Balancer.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\\Balancer.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About Balancer"
FONT 8, "MS Sans Serif"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
LTEXT "Balancer Version 1.0",IDC_STATIC,40,10,119,8,
SS_NOPREFIX
LTEXT "Copyright (C) 2000",IDC_STATIC,40,25,119,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
END
IDD_BALANCER_DIALOG DIALOGEX 0, 0, 139, 95
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Balancer"
FONT 8, "MS Sans Serif"
BEGIN
DEFPUSHBUTTON "Exit",ID_EXIT,45,74,50,14
PUSHBUTTON "Mechs",IDC_MECHPROP,17,18,50,14
PUSHBUTTON "Weapons",IDC_WEAPPROP,78,18,50,14
PUSHBUTTON "Weapons",IDC_WEPBAL,78,51,50,14
PUSHBUTTON "Armor",IDC_ARMORBAL,17,51,50,14
GROUPBOX "Properties",IDC_STATIC,7,7,125,30
GROUPBOX "Balancing",IDC_STATIC,7,40,125,30
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", "Balancer MFC Application\0"
VALUE "FileVersion", "1, 0, 0, 1\0"
VALUE "InternalName", "Balancer\0"
VALUE "LegalCopyright", "Copyright (C) 2000\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "Balancer.EXE\0"
VALUE "ProductName", "Balancer Application\0"
VALUE "ProductVersion", "1, 0, 0, 1\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
IDD_OBJECTBALANCE DIALOGEX 0, 0, 620, 362
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Object Properties"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
LTEXT "Objects:",IDC_OBJECT_NAME_HEADER,24,40,47,10
LTEXT "Properties:",IDC_STATIC,76,20,46,14
DEFPUSHBUTTON "OK",IDOK,447,341,50,14
PUSHBUTTON "Cancel",IDCANCEL,510,341,50,14
LTEXT "Static",IDC_DOB_PROPERTYNAME1,75,40,83,11,NOT
WS_VISIBLE | WS_DISABLED
PUSHBUTTON "+",IDC_VALUE_PLUS,7,7,12,11
PUSHBUTTON "-",IDC_VALUE_MINUS,20,7,12,11
PUSHBUTTON "*",IDC_VALUE_MULTIPLY,32,7,12,11
PUSHBUTTON "/",IDC_VALUE_DIVIDE,44,7,12,11
LTEXT "P",IDC_VARIABLE_PRESENT_PLACEHOLDER,77,54,9,8,NOT
WS_VISIBLE | WS_DISABLED
LTEXT "Static",IDC_VARIABLE_VALUE_PLACEHOLDER,87,54,68,13,NOT
WS_VISIBLE | WS_DISABLED
LTEXT "Static",IDC_APPLYCHANGESPLACEHOLDER,10,54,9,8,NOT
WS_VISIBLE | WS_DISABLED
SCROLLBAR ID_DOB_SCROLLBAR,607,50,12,251,SBS_VERT
LTEXT "",IDC_DOP_PROPERTIES,7,51,600,262,0,WS_EX_TRANSPARENT |
WS_EX_CLIENTEDGE
SCROLLBAR ID_DOB_SCROLLBAR2,77,319,536,11
CONTROL "",IDC_CHECKALL_APPLY_BUTTONS,"Button",BS_AUTO3STATE |
WS_TABSTOP,7,39,12,10
PUSHBUTTON "Fill all ->",IDC_FILL_ALL_VALUES,124,20,33,11
END
IDD_OBJECTPROPERTIES DIALOG DISCARDABLE 0, 0, 441, 295
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Object Properties"
FONT 8, "MS Sans Serif"
BEGIN
LTEXT "Objects:",-1,7,17,133,16
LISTBOX IDC_OBJECTLIST,7,39,134,225,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Properties:",-1,155,16,46,14
LTEXT "<Read Only>",IDC_READONLY,215,16,65,13
LTEXT "Value Present",-1,243,32,45,9
DEFPUSHBUTTON "OK",IDOK,116,274,50,14
PUSHBUTTON "Cancel",IDCANCEL,253,274,50,14
LTEXT "Value",IDC_DOP_VALUE,295,32,52,10
GROUPBOX "",IDC_DOP_PROPERTIES,153,48,281,220
LTEXT "Static",IDC_DOP_PROPNAME,156,53,98,8,NOT WS_VISIBLE
CONTROL "Check1",IDC_DOP_PROPPRESENT,"Button",BS_AUTOCHECKBOX |
NOT WS_VISIBLE | WS_TABSTOP,262,53,11,13
EDITTEXT IDC_DOP_PROPEDIT1,294,53,41,12,ES_AUTOHSCROLL | NOT
WS_VISIBLE
EDITTEXT IDC_DOP_PROPEDIT2,339,53,41,12,ES_AUTOHSCROLL
EDITTEXT IDC_DOP_PROPEDIT3,384,53,41,12,ES_AUTOHSCROLL | NOT
WS_VISIBLE
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 48
END
IDD_BALANCER_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 132
TOPMARGIN, 7
BOTTOMMARGIN, 88
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUTBOX "&About Balancer..."
IDS_SAVE_WEAPONS_CHANGES "Would you like to save the weapons changes to the files?"
IDS_SAVE_WEAPONS_CHANGES_CAPTION "Weapons Properties Changed"
IDS_SAVE_WEAPONS_FAILED "At least one of the weapons changes failed to save. You can try again by clicking OK in the dialog, or you can leave by clicking Cancel in the dialog."
IDS_ERROR_CAPTION "Error"
IDS_READONLY "<read only>"
END
#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\Balancer.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
@@ -0,0 +1,362 @@
// BalancerDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Balancer.h"
#include "BalancerDlg.h"
#include "dlgObjectBalance.h"
#include "dlgObjectProperties.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBalancerDlg dialog
CBalancerDlg::CBalancerDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBalancerDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBalancerDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CBalancerDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBalancerDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBalancerDlg, CDialog)
//{{AFX_MSG_MAP(CBalancerDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_ARMORBAL, OnArmorbal)
ON_BN_CLICKED(IDC_MECHPROP, OnMechprop)
ON_BN_CLICKED(IDC_WEAPPROP, OnWeapprop)
ON_BN_CLICKED(IDC_WEPBAL, OnWepbal)
ON_BN_CLICKED(ID_EXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBalancerDlg message handlers
BOOL CBalancerDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 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
return TRUE; // return TRUE unless you set the focus to a control
}
void CBalancerDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// 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 CBalancerDlg::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 CBalancerDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CBalancerDlg::OnCancel()
{
// TODO: Add extra cleanup here
// CDialog::OnCancel();
}
void CBalancerDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
}
//*******************************************************************************************
//
//*******************************************************************************************
// This function is called while searching for mech property notation files. Since
// .data is not used exclusively for these, I wanted to add filter out basic.data and similar files
// also not that you can not use the allsubdirectories flag with mechs since they have .data
// files in the armaturedata subdirectories
BOOL _stdcall MechPropertyFilesFilter(LPCSTR szCurrentFileName)
{
if (!stricmp(szCurrentFileName, "basic.data"))
{
return FALSE;
}
// also don't allow .data files from _destroyed mechs
LPCSTR pszTemp = strrchr(szCurrentFileName, '_');
if (pszTemp && !stricmp(pszTemp, "_destroyed.data"))
{
return FALSE;
}
return TRUE;
}
//*******************************************************************************************
//
//*******************************************************************************************
// This function is called while searching for mech property notation files. Since
// .data is not used exclusively for these, I wanted to add filter out basic.data and similar files
// also not that you can not use the allsubdirectories flag with mechs since they have .data
// files in the armaturedata subdirectories
BOOL _stdcall MechPropertyFilesFilter2(LPCSTR szCurrentFileName)
{
// also don't allow .data files from _destroyed mechs
LPCSTR pszTemp = strrchr(szCurrentFileName, '_');
if (pszTemp && !stricmp(pszTemp, "_destroyed.damage"))
{
return FALSE;
}
return TRUE;
}
void CBalancerDlg::OnArmorbal()
{
CDlgObjectBalance dlgOB;
CDOPPROPERTIES_TO_EDIT_ARRAY * pPropertiesToEdit =
dlgOB.CreatePropertiesToEditArray(13,
efloat , "joint_luarm\\MaxArmorValue", "L.Arm",
efloat , "joint_ruarm\\MaxArmorValue", "R.Arm",
efloat , "joint_luleg\\MaxArmorValue", "L.Leg",
efloat , "joint_ruleg\\MaxArmorValue", "R.Leg",
efloat , "joint_head\\MaxArmorValue", "Head",
efloat , "joint_righttorsofront\\MaxArmorValue", "R.T.F.",
efloat , "joint_righttorsorear\\MaxArmorValue", "R.T.R.",
efloat , "joint_lefttorsofront\\MaxArmorValue", "L.T.F.",
efloat , "joint_lefttorsorear\\MaxArmorValue", "L.T.R.",
efloat , "joint_hipbelow\\MaxArmorValue", "C.T.F.",
efloat , "joint_centertorsorear\\MaxArmorValue", "C.T.R.",
efloat , "joint_specialone\\MaxArmorValue", "Sp. 1",
efloat , "joint_specialtwo\\MaxArmorValue", "Sp. 2"
);
dlgOB.SetFileNameToSearchSubdirectoriesFor("*.damage");
dlgOB.SetFileFilterCallBack(MechPropertyFilesFilter2);
dlgOB.SetObjectFilesDirectory("content\\mechs");
dlgOB.SetHorizontalControlSize(60);
dlgOB.ShowPageOnly();
dlgOB.SetPropertyListToEdit(pPropertiesToEdit);
dlgOB.SetAllowPresentToChange(FALSE);
dlgOB.ShowFullObjectNames(FALSE);
dlgOB.ShowFullPropertyName(FALSE);
dlgOB.DoModal();
free(pPropertiesToEdit);
}
void CBalancerDlg::OnMechprop()
{
CDlgObjectProperties dlgOP;
CDOPPROPERTIES_TO_EDIT_ARRAY * pPropertiesToEdit =
dlgOP.CreatePropertiesToEditArray(13,
efloat , "gamedata\\TiltDegree", "",
efloat , "gamedata\\TiltSpeed", "",
efloat , "gamedata\\MinStandTransitionSpeed", "",
efloat , "gamedata\\MaxGimpSpeed", "",
efloat , "gamedata\\Acceleration", "",
efloat , "gamedata\\Decceleration", "",
efloat , "gamedata\\MaxSpeed", "",
efloat , "gamedata\\MinSpeed", "",
efloat , "gamedata\\MaxReverseSpeed", "",
efloat , "gamedata\\MinReverseSpeed", "",
efloat , "gamedata\\FullStopTurnRate", "",
efloat , "gamedata\\TopSpeedTurnRate", "",
efloat , "gamedata\\MaxHeat", ""
);
dlgOP.SetFileNameToSearchSubdirectoriesFor("*.data");
dlgOP.SetFileFilterCallBack(MechPropertyFilesFilter);
dlgOP.SetObjectFilesDirectory("content\\mechs");
dlgOP.SetPropertyListToEdit(pPropertiesToEdit);
dlgOP.ShowFullObjectNames(TRUE);
dlgOP.ShowFullPropertyName(FALSE);
dlgOP.DoModal();
free(pPropertiesToEdit);
}
void CBalancerDlg::OnWeapprop()
{
CDlgObjectProperties dlgOP;
CDOPPROPERTIES_TO_EDIT_ARRAY * pPropertiesToEdit =
dlgOP.CreatePropertiesToEditArray(11,
eint , "gamedata\\AmmoPerShot", "",
efloat , "gamedata\\DamageAmount", "",
efloat , "gamedata\\Heat", "",
eVector3D, "gamedata\\InitialLinearAcceleration", "",
eVector3D, "gamedata\\InitialLinearVelocity", "",
eint , "gamedata\\MaxAmmo", "",
efloat , "gamedata\\MaxDistance", "",
efloat , "gamedata\\NumFire", "",
efloat , "gamedata\\ReloadTime", "",
efloat , "gamedata\\Tonage", "",
eint , "gamedata\\TotalSlotsTaken", "");
dlgOP.SetFileNameToSearchSubdirectoriesFor("*.data");
dlgOP.SetFileFilterCallBack(NULL);
dlgOP.SetObjectFilesDirectory("content\\weaponsubsystems");
dlgOP.SetPropertyListToEdit(pPropertiesToEdit);
dlgOP.ShowFullObjectNames(FALSE);
dlgOP.ShowFullPropertyName(FALSE);
dlgOP.DoModal();
free(pPropertiesToEdit);
}
void CBalancerDlg::OnWepbal()
{
CDlgObjectBalance dlgOB;
CDOPPROPERTIES_TO_EDIT_ARRAY * pPropertiesToEdit =
dlgOB.CreatePropertiesToEditArray(6,
efloat , "gamedata\\DamageAmount", "",
efloat , "gamedata\\HeatToDeal", "",
efloat , "gamedata\\SplashRadius", "",
efloat , "gamedata\\ReloadTime", "",
efloat , "gamedata\\Heat", "",
efloat , "gamedata\\Tonage", "");
dlgOB.SetFileNameToSearchSubdirectoriesFor("*.data");
dlgOB.SetFileFilterCallBack(NULL);
dlgOB.SetObjectFilesDirectory("content\\weaponsubsystems");
dlgOB.SetPropertyListToEdit(pPropertiesToEdit);
dlgOB.ShowFullObjectNames(FALSE);
dlgOB.ShowFullPropertyName(FALSE);
dlgOB.DoModal();
free(pPropertiesToEdit);
}
void CBalancerDlg::OnExit()
{
CDialog::OnOK();
}
@@ -0,0 +1,56 @@
// BalancerDlg.h : header file
//
#if !defined(AFX_BALANCERDLG_H__4CA0C2FA_F510_4005_9DCA_0EE429DC8904__INCLUDED_)
#define AFX_BALANCERDLG_H__4CA0C2FA_F510_4005_9DCA_0EE429DC8904__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CBalancerDlg dialog
class CBalancerDlg : public CDialog
{
// Construction
public:
CBalancerDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CBalancerDlg)
enum { IDD = IDD_BALANCER_DIALOG };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBalancerDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CBalancerDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnCancel();
virtual void OnOK();
afx_msg void OnArmorbal();
afx_msg void OnMechprop();
afx_msg void OnWeapprop();
afx_msg void OnWepbal();
afx_msg void OnExit();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_BALANCERDLG_H__4CA0C2FA_F510_4005_9DCA_0EE429DC8904__INCLUDED_)
@@ -0,0 +1,49 @@
// ChildOfDialogMessagePusher.cpp : implementation file
//
#include "stdafx.h"
#include "balancer.h"
#include "ChildOfDialogMessagePusher.h"
#include "dlgobjectbalance.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChildOfDialogMessagePusher
CChildOfDialogMessagePusher::CChildOfDialogMessagePusher()
{
}
CChildOfDialogMessagePusher::~CChildOfDialogMessagePusher()
{
}
BEGIN_MESSAGE_MAP(CChildOfDialogMessagePusher, CStatic)
//{{AFX_MSG_MAP(CChildOfDialogMessagePusher)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChildOfDialogMessagePusher message handlers
BOOL CChildOfDialogMessagePusher::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
// TODO: Add your specialized code here and/or call the base class
return ((CDlgObjectBalance *)GetParent())->OnNotify_Public(wParam, lParam, pResult);
//return CStatic::OnNotify(wParam, lParam, pResult);
}
BOOL CChildOfDialogMessagePusher::OnCommand(WPARAM wParam, LPARAM lParam)
{
return ((CDlgObjectBalance *)GetParent())->OnCommand_Public(wParam, lParam);
// return CStatic::OnCommand(wParam, lParam);
}
@@ -0,0 +1,51 @@
#if !defined(AFX_CHILDOFDIALOGMESSAGEPUSHER_H__FA692A7F_44DE_44B1_9D85_8B2F15CFFCFE__INCLUDED_)
#define AFX_CHILDOFDIALOGMESSAGEPUSHER_H__FA692A7F_44DE_44B1_9D85_8B2F15CFFCFE__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ChildOfDialogMessagePusher.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CChildOfDialogMessagePusher window
class CChildOfDialogMessagePusher : public CStatic
{
// Construction
public:
CChildOfDialogMessagePusher();
// Attributes
public:
// Operations
public:
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CChildOfDialogMessagePusher)
protected:
virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CChildOfDialogMessagePusher();
// Generated message map functions
protected:
//{{AFX_MSG(CChildOfDialogMessagePusher)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CHILDOFDIALOGMESSAGEPUSHER_H__FA692A7F_44DE_44B1_9D85_8B2F15CFFCFE__INCLUDED_)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,265 @@
#if !defined(AFX_DlgObjectProperties_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_)
#define AFX_DlgObjectProperties_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgObjectProperties.h : header file
//
//!!!!!WARNING!!!!!
// If you change any of the below typedefs you will have to be carefull to maintain the Allocate_... functions
// which support them. They need to know how to point internally to the various portions of the data when allocated
// since none of them use fixed size arrays internally.
//
typedef BOOL (_stdcall * FileFilterCallback)(LPCSTR szCurrentFileName);
typedef enum {
eSingleSubdirectory = 0,
eRootOnly,
eAllSubdirectories
} DIRECTORYSEARCHTYPE;
typedef enum {
efloat =0,
eint,
eLPSTR,
eBOOL,
eVector3D
} CDOPVARTYPE;
typedef struct _TAG_CDOPPROPERTIES_TO_EDIT_ENTRY
{
char szPropertyTag[128]; // should be formated as <page name>\<entry name>
char szPropertyTagForDisplay[48]; // for header column
CDOPVARTYPE ePropertyType; // should be one of the above enum types, if more are added they
// need to be added to the below union, and to the code that switches
// based on the variable type
//
// The below do not need to be initialized. But since we don't copy the structure and use the
// pointer passed in instead it allows you to use the values in fPresent and uPropValue on return
// from the function if you need to use the data after calling DoModal() on the dialog;
//
UINT uiReserved1_CTRLID;
} CDOPPROPERTIES_TO_EDIT_ENTRY;
typedef struct _TAG_CDOPPROPERTIES_TO_EDIT_ARRAY
{
int nCount;
CDOPPROPERTIES_TO_EDIT_ENTRY * ppProperties_To_Edit_Entry[1];// using 1 just to set the memory, actual buffer is bigger when allocated and assigned
} CDOPPROPERTIES_TO_EDIT_ARRAY;
typedef struct _TAG_CDOPPROPERTYVALUE
{
BOOL fPresent;
union {
int nValue;
float fltValue;
BOOL fValue;
char szValue[128];
struct {
float x;
float y;
float z;
} v3dValues; // for vector3d type values
} uPropValue;
} CDOPPROPERTYVALUE;
typedef struct _TAG_CDOPPROPERTIES_OBJECT_PROPERTIES
{
int nProperties; // must match nCount from CDOPPROPERTIES_TO_EDIT_ARRAY!!!!!!
BOOL fDirty;
BOOL fReadOnly;
char szObjectName[MAX_PATH+1];
CDOPPROPERTYVALUE * ppObjectProperties[1]; // using 1 just to set the memory, actual buffer is bigger when allocated and assigned
} CDOPPROPERTIES_OBJECT_PROPERTIES;
typedef struct _TAG_CDOPPROPERTIES_OBJECT_LIST
{
int nObjectCount;
CDOPPROPERTIES_OBJECT_PROPERTIES * ppPropertiesArray[1];// using 1 just to set the memory, actual buffer is bigger when allocated and assigned
} CDOPPROPERTIES_OBJECT_LIST;
/////////////////////////////////////////////////////////////////////////////
// CDlgObjectProperties dialog
class CDlgObjectProperties : public CDialog
{
public:
public:
// Construction
public:
CDlgObjectProperties(CWnd* pParent = NULL); // standard constructor
~CDlgObjectProperties();
// Dialog Data
//{{AFX_DATA(CDlgObjectProperties)
enum { IDD = IDD_OBJECTPROPERTIES };
CListBox m_lbObjectList;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgObjectProperties)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgObjectProperties)
virtual BOOL OnInitDialog();
afx_msg void OnSelchangeObjectlist();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
void CreateSubControlsForProperties();
void ClearObjectDataSet();
BOOL SaveObjectData();
BOOL LoadObjectData(LPCSTR szDirectoryToSearchFor /*Directory passed in must end in a backslash*/, DIRECTORYSEARCHTYPE eSearchType);
BOOL LoadDataFilesFromSubdirectory(CString strSubdirectory);
BOOL LoadObjectDataFromFile(CString strFullWeaponFilename, BOOL fReadOnly );
void OnOK();
void OnCancel();
BOOL DisableAllControls();
BOOL EnableControlsForCurrentSelection();
BOOL MoveCurSelDataToOrFromControls(BOOL fToControls);
public:
//
// These functions have to be called before DoModal is called since they set important information
//
//
// Sets the root directory to search under. Only goes one level deep currently
//
BOOL SetObjectFilesDirectory(LPCSTR lpszDirectoryPath);
//
// Sets the root file name type to search for like "*.data"
//
BOOL SetFileNameToSearchSubdirectoriesFor(LPCSTR lpszFileSearchString);
//
// Allows additional control over what files are accepted. ie... you can filter out "basic.data"
//
BOOL SetFileFilterCallBack(FileFilterCallback fnFilterFunction)
{
m_fnFilterFunction = fnFilterFunction;
return TRUE;
};
//
// Specify the properties of the files that you want editted here.
//
//
// !!!WARNING: We only store the pointer, we don't copy the data so be sure to
// verify that the data is in scope the whole time the dialog is up.
//
BOOL SetPropertyListToEdit(CDOPPROPERTIES_TO_EDIT_ARRAY * ppteaPropertyToEdit)
{m_paPropertiesToEdit = ppteaPropertyToEdit; return TRUE;};
// Specifies whether the list box should show the whole name of the object including
// directory path. Cuts off everything up until the last "\"
BOOL ShowFullObjectNames(BOOL fShowFullObjectName)
{m_fShowFullObjectName = fShowFullObjectName; return TRUE;};
// Specifies whether the static for each property should show the whole name including
// the page name or just the entry name
BOOL ShowFullPropertyName(BOOL fShowFullPropertyName)
{m_fShowFullPropertyName = fShowFullPropertyName; return TRUE;};
// Specify whether you want to search just the root directory, the
// first subdirectory or all subdirectories
BOOL SetSearchWhichSubdirectories(DIRECTORYSEARCHTYPE eSearchType)
{m_eSearchType = eSearchType; return TRUE;};
//
// These structure have to be setup correctly when allocated and should never be created on the stack
//
//
CDOPPROPERTIES_TO_EDIT_ARRAY * Allocate_CDOPPROPERTIES_TO_EDIT_ARRAY(int nPropertyCount, CDOPPROPERTIES_TO_EDIT_ARRAY * * ppCDOPPROPERTIES_TO_EDIT_ARRAY = NULL);
CDOPPROPERTIES_OBJECT_PROPERTIES * Allocate_CDOPPROPERTIES_OBJECT_PROPERTIES(int nPropertyCount, CDOPPROPERTIES_OBJECT_PROPERTIES * * ppCDOPPROPERTIES_OBJECT_PROPERTIES = NULL);
CDOPPROPERTIES_OBJECT_LIST * Allocate_CDOPPROPERTIES_OBJECT_LIST(int nObjectCount, int nPropertyCount, CDOPPROPERTIES_OBJECT_LIST ** ppCDOPPROPERTIES_OBJECT_LIST = NULL);
//
// Memcpy and memcmp can not be used on these structures since they contain pointers to memory
//
BOOL Copy_CDOPPROPERTIES_TO_EDIT_ARRAY(CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY_DEST, CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY_SRC);
BOOL Copy_CDOPPROPERTIES_OBJECT_PROPERTIES(CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES_DEST, CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES_SRC);
BOOL Copy_CDOPPROPERTIES_OBJECT_LIST(CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST_DEST, CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST_SRC);
BOOL IsEqual_CDOPPROPERTIES_TO_EDIT_ARRAY(CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY1, CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY2);
BOOL IsEqual_CDOPPROPERTIES_OBJECT_PROPERTIES(CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES1, CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES2);
BOOL IsEqual_CDOPPROPERTIES_OBJECT_LIST(CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST1, CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST2);
//
// This function allows you to create the properties array easily by calling this function with the format:
// CreatePropertiesToEditArray(2,
// efloat, "GameData\Heat",
// eint, "GameData\Ammo");
//
CDOPPROPERTIES_TO_EDIT_ARRAY * CreatePropertiesToEditArray(int nCount, ...);
BOOL UpdateControlData(BOOL fToControls);
LPCSTR GetEntryNameToPropertyName(LPCSTR szPropertyName);
LPCSTR GetPageNameToPropertyName(LPCSTR szPropertyName) ;
// Override to do parameter checking
virtual int DoModal();
protected:
BOOL GetBOOLFromControl(UINT uiID, BOOL * pfDest);
BOOL GetfloatFromControl(UINT uiID, float * pfltDest);
BOOL GetLPSTRFromControl(UINT uiID, LPSTR pszDest);
BOOL GetintFromControl(UINT uiID, int * pnDest);
BOOL GetVector3DFromControl(UINT uiID, float * pfltx, float * pflty, float * pfltz);
BOOL GetBOOLFromButton(UINT uiID, BOOL * pfDest);
BOOL SetBOOLToButton(UINT uiID, BOOL fSrc);
BOOL SetBOOLToControl(UINT uiID, BOOL fSrc);
BOOL SetfloatToControl(UINT uiID, float fltSrc);
BOOL SetLPSTRToControl(UINT uiID, LPSTR pszSrc);
BOOL SetintToControl(UINT uiID, int nSrc);
BOOL SetVector3DToControl(UINT uiID, float fltx, float flty, float fltz);
// Data
// Object list, these are the "files" that we are editting.
CDOPPROPERTIES_OBJECT_LIST * m_pObjectList;
// This is the properties list that the caller is requesting. It is just a pointer to
// the callers memory.
CDOPPROPERTIES_TO_EDIT_ARRAY * m_paPropertiesToEdit;
// Root directory to search in
CString m_strObjectFilesRootDirectory;
// Wild card specification for what files we are looking for ie... "*.data"
CString m_strFileNameToSearchSubdirectoriesFor;
// Currently selected index in the list box control
int m_nCurSel;
// This function if specified gets called for ever file we think should be added
// it will
FileFilterCallback m_fnFilterFunction;
BOOL m_fShowFullObjectName;
BOOL m_fShowFullPropertyName;
DIRECTORYSEARCHTYPE m_eSearchType;
CDOPPROPERTIES_OBJECT_PROPERTIES * m_popCurObjectPropertiesArray;
UINT m_nLastControlID;
BOOL m_fDirty;
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DlgObjectProperties_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_)
@@ -0,0 +1,88 @@
========================================================================
MICROSOFT FOUNDATION CLASS LIBRARY : Balancer
========================================================================
AppWizard has created this Balancer application for you. This application
not only demonstrates the basics of using the Microsoft Foundation classes
but is also a starting point for writing your application.
This file contains a summary of what you will find in each of the files that
make up your Balancer application.
Balancer.dsp
This file (the project file) contains information at the project level and
is used to build a single project or subproject. Other users can share the
project (.dsp) file, but they should export the makefiles locally.
Balancer.h
This is the main header file for the application. It includes other
project specific headers (including Resource.h) and declares the
CBalancerApp application class.
Balancer.cpp
This is the main application source file that contains the application
class CBalancerApp.
Balancer.rc
This is a listing of all of the Microsoft Windows resources that the
program uses. It includes the icons, bitmaps, and cursors that are stored
in the RES subdirectory. This file can be directly edited in Microsoft
Visual C++.
Balancer.clw
This file contains information used by ClassWizard to edit existing
classes or add new classes. ClassWizard also uses this file to store
information needed to create and edit message maps and dialog data
maps and to create prototype member functions.
res\Balancer.ico
This is an icon file, which is used as the application's icon. This
icon is included by the main resource file Balancer.rc.
res\Balancer.rc2
This file contains resources that are not edited by Microsoft
Visual C++. You should place all resources not editable by
the resource editor in this file.
/////////////////////////////////////////////////////////////////////////////
AppWizard creates one dialog class:
BalancerDlg.h, BalancerDlg.cpp - the dialog
These files contain your CBalancerDlg class. This class defines
the behavior of your application's main dialog. The dialog's
template is in Balancer.rc, which can be edited in Microsoft
Visual C++.
/////////////////////////////////////////////////////////////////////////////
Other standard files:
StdAfx.h, StdAfx.cpp
These files are used to build a precompiled header (PCH) file
named Balancer.pch and a precompiled types file named StdAfx.obj.
Resource.h
This is the standard header file, which defines new resource IDs.
Microsoft Visual C++ reads and updates this file.
/////////////////////////////////////////////////////////////////////////////
Other notes:
AppWizard uses "TODO:" to indicate parts of the source code you
should add to or customize.
If your application uses MFC in a shared DLL, and your application is
in a language other than the operating system's current language, you
will need to copy the corresponding localized resources MFC42XXX.DLL
from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
For example, MFC42DEU.DLL contains resources translated to German.) If you
don't do this, some of the UI elements of your application will remain in the
language of the operating system.
/////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// Balancer.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
+27
View File
@@ -0,0 +1,27 @@
// 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__8EB1DA2D_E345_4636_B994_8A5E901E2D96__INCLUDED_)
#define AFX_STDAFX_H__8EB1DA2D_E345_4636_B994_8A5E901E2D96__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 <afxdisp.h> // MFC Automation classes
#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__8EB1DA2D_E345_4636_B994_8A5E901E2D96__INCLUDED_)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,250 @@
#if !defined(AFX_DLGOBJECTBASE_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_)
#define AFX_DLGOBJECTBASE_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgObjectBase.h : header file
//
#include "dlgobjectproperties.h" // to get the common defines
#include "Childofdialogmessagepusher.h" // to get a child static that sends all it's children's messages to it's parent
//!!!!!WARNING!!!!!
// If you change any of the below typedefs you will have to be carefull to maintain the Allocate_... functions
// which support them. They need to know how to point internally to the various portions of the data when allocated
// since none of them use fixed size arrays internally.
//
typedef enum {
ePlus = 0,
eMinus,
eMultiply,
eDivide
} CDOPMATHTYPE;
/////////////////////////////////////////////////////////////////////////////
// CDlgObjectBalance dialog
class CDlgObjectBalance : public CDialog
{
public:
public:
// Construction
public:
CDlgObjectBalance(CWnd* pParent = NULL); // standard constructor
~CDlgObjectBalance();
// Dialog Data
//{{AFX_DATA(CDlgObjectBalance)
enum { IDD = IDD_OBJECTBALANCE };
CChildOfDialogMessagePusher m_staticPropertiesGroup;
CScrollBar m_sbScrollBarVert;
CScrollBar m_sbScrollBarHorz;
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgObjectBalance)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
//}}AFX_VIRTUAL
void CreateSubControlsForProperties();
void ClearObjectDataSet();
BOOL SaveObjectData();
BOOL LoadObjectData(LPCSTR szDirectoryToSearchFor /*Directory passed in must end in a backslash*/, DIRECTORYSEARCHTYPE eSearchType);
BOOL LoadDataFilesFromSubdirectory(CString strSubdirectory);
BOOL LoadObjectDataFromFile(CString strFullWeaponFilename, BOOL fReadOnly );
void OnOK();
void OnCancel();
BOOL DisableAllControls();
BOOL MoveCurSelDataToOrFromControls(BOOL fToControls);
public:
//
// These functions have to be called before DoModal is called since they set important information
//
//
// Sets the root directory to search under. Only goes one level deep currently
//
BOOL SetObjectFilesDirectory(LPCSTR lpszDirectoryPath);
//
// Sets the root file name type to search for like "*.data"
//
BOOL SetFileNameToSearchSubdirectoriesFor(LPCSTR lpszFileSearchString);
//
// Allows additional control over what files are accepted. ie... you can filter out "basic.data"
//
BOOL SetFileFilterCallBack(FileFilterCallback fnFilterFunction)
{
m_fnFilterFunction = fnFilterFunction;
return TRUE;
};
void SetHorizontalControlSize(int nSize) {m_nHorzControlSize = nSize;};
void SetAllowPresentToChange(BOOL fAllowPresentToChange) {m_fAllowPresentToChange = fAllowPresentToChange;};
//
// Specify the properties of the files that you want editted here.
//
//
// !!!WARNING: We only store the pointer, we don't copy the data so be sure to
// verify that the data is in scope the whole time the dialog is up.
//
BOOL SetPropertyListToEdit(CDOPPROPERTIES_TO_EDIT_ARRAY * ppteaPropertyToEdit)
{m_paPropertiesToEdit = ppteaPropertyToEdit; return TRUE;};
// Specifies whether the list box should show the whole name of the object including
// directory path. Cuts off everything up until the last "\"
BOOL ShowFullObjectNames(BOOL fShowFullObjectName)
{m_fShowFullObjectName = fShowFullObjectName; return TRUE;};
// Specifies whether the static for each property should show the whole name including
// the page name or just the entry name
BOOL ShowFullPropertyName(BOOL fShowFullPropertyName)
{m_fShowFullPropertyName = fShowFullPropertyName; return TRUE;};
BOOL ShowPageOnly() {m_fShowPageOnly = TRUE; m_fShowFullPropertyName = FALSE; return TRUE;};
BOOL ShowEntryOnly() {m_fShowPageOnly = FALSE; m_fShowFullPropertyName = FALSE; return TRUE;};
// Specify whether you want to search just the root directory, the
// first subdirectory or all subdirectories
BOOL SetSearchWhichSubdirectories(DIRECTORYSEARCHTYPE eSearchType)
{m_eSearchType = eSearchType; return TRUE;};
//
// These structure have to be setup correctly when allocated and should never be created on the stack
//
//
CDOPPROPERTIES_TO_EDIT_ARRAY * Allocate_CDOPPROPERTIES_TO_EDIT_ARRAY(int nPropertyCount, CDOPPROPERTIES_TO_EDIT_ARRAY * * ppCDOPPROPERTIES_TO_EDIT_ARRAY = NULL);
CDOPPROPERTIES_OBJECT_PROPERTIES * Allocate_CDOPPROPERTIES_OBJECT_PROPERTIES(int nPropertyCount, CDOPPROPERTIES_OBJECT_PROPERTIES * * ppCDOPPROPERTIES_OBJECT_PROPERTIES = NULL);
CDOPPROPERTIES_OBJECT_LIST * Allocate_CDOPPROPERTIES_OBJECT_LIST(int nObjectCount, int nPropertyCount, CDOPPROPERTIES_OBJECT_LIST ** ppCDOPPROPERTIES_OBJECT_LIST = NULL);
//
// Memcpy and memcmp can not be used on these structures since they contain pointers to memory
//
BOOL Copy_CDOPPROPERTIES_TO_EDIT_ARRAY(CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY_DEST, CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY_SRC);
BOOL Copy_CDOPPROPERTIES_OBJECT_PROPERTIES(CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES_DEST, CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES_SRC);
BOOL Copy_CDOPPROPERTIES_OBJECT_LIST(CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST_DEST, CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST_SRC);
BOOL IsEqual_CDOPPROPERTIES_TO_EDIT_ARRAY(CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY1, CDOPPROPERTIES_TO_EDIT_ARRAY * pCDOPPROPERTIES_TO_EDIT_ARRAY2);
BOOL IsEqual_CDOPPROPERTIES_OBJECT_PROPERTIES(CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES1, CDOPPROPERTIES_OBJECT_PROPERTIES * pCDOPPROPERTIES_OBJECT_PROPERTIES2);
BOOL IsEqual_CDOPPROPERTIES_OBJECT_LIST(CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST1, CDOPPROPERTIES_OBJECT_LIST * pCDOPPROPERTIES_OBJECT_LIST2);
//
// This function allows you to create the properties array easily by calling this function with the format:
// CreatePropertiesToEditArray(2,
// efloat, "GameData\Heat",
// eint, "GameData\Ammo");
//
CDOPPROPERTIES_TO_EDIT_ARRAY * CreatePropertiesToEditArray(int nCount, ...);
BOOL UpdateControlData(BOOL fToControls);
LPCSTR GetEntryNameToPropertyName(LPCSTR szPropertyName);
LPCSTR GetPageNameToPropertyName(LPCSTR szPropertyName) ;
LPCSTR GetShortObjectName(LPCSTR szObjectName);
void AlterAllProperties(CDOPMATHTYPE eMathType);
void AlterProperty(int nProperty, void * pValueToAlterWith, CDOPMATHTYPE eMath);
// Override to do parameter checking
inline virtual BOOL OnNotify_Public(WPARAM wParam, LPARAM lParam, LRESULT* pResult) {return OnNotify(wParam, lParam, pResult);};
inline virtual BOOL OnCommand_Public(WPARAM wParam, LPARAM lParam) {return OnCommand(wParam, lParam);};
virtual int DoModal();
protected:
BOOL GetBOOLFromControl(UINT uiID, BOOL * pfDest);
BOOL GetfloatFromControl(UINT uiID, float * pfltDest);
BOOL GetLPSTRFromControl(UINT uiID, LPSTR pszDest);
BOOL GetintFromControl(UINT uiID, int * pnDest);
BOOL GetVector3DFromControl(UINT uiID, float * pfltx, float * pflty, float * pfltz);
BOOL GetBOOLFromButton(UINT uiID, BOOL * pfDest);
BOOL SetBOOLToButton(UINT uiID, BOOL fSrc);
BOOL SetBOOLToControl(UINT uiID, BOOL fSrc);
BOOL SetfloatToControl(UINT uiID, float fltSrc);
BOOL SetLPSTRToControl(UINT uiID, LPSTR pszSrc);
BOOL SetintToControl(UINT uiID, int nSrc);
BOOL SetVector3DToControl(UINT uiID, float fltx, float flty, float fltz);
void DoTheMath(int * pValue, int * pModifier, CDOPMATHTYPE eMath);
void DoTheMath(float * pValue, float * pModifier, CDOPMATHTYPE eMath);
void ClearModifierCells();
BOOL IsCreatedControl(int uID);
BOOL IsCreatedPresentButton(int uID);
BOOL IsCreatedApplyButton(int uID);
void SetAllApplyButtons(int nState);
virtual BOOL OnNotifyCreatedControl(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
virtual BOOL OnCommandCreatedControl(WPARAM wParam, LPARAM lParam);
BOOL IsRectTotallyWithinHorizontally(LPRECT pRectToTest, LPRECT pOuterRect); // used for scrolling
BOOL IsHorizontallyScrollable(CWnd * pChildWindow);
int GetStateForApplyAllButton(); // this returns 0 for all off, 1 for all on, and 2 for a mix
// Data
// Object list, these are the "files" that we are editting.
CDOPPROPERTIES_OBJECT_LIST * m_pObjectList;
// This is the properties list that the caller is requesting. It is just a pointer to
// the callers memory.
CDOPPROPERTIES_TO_EDIT_ARRAY * m_paPropertiesToEdit;
// Root directory to search in
CString m_strObjectFilesRootDirectory;
// Wild card specification for what files we are looking for ie... "*.data"
CString m_strFileNameToSearchSubdirectoriesFor;
// This function if specified gets called for ever file we think should be added
// it will
FileFilterCallback m_fnFilterFunction;
BOOL m_fShowFullObjectName;
BOOL m_fShowFullPropertyName;
DIRECTORYSEARCHTYPE m_eSearchType;
UINT m_nLastControlID;
BOOL m_fDirty;
BOOL m_fAllowPresentToChange;
int m_nMaxVisibleVert;
int m_nCurScrollPosVert;
int m_nScrollIncrementVert;
int m_nMaxVisibleHorz;
int m_nCurScrollPosHorz;
int m_nScrollIncrementHorz;
BOOL m_fShowPageOnly; // show only page, or show only entry when not showing full length
int m_nHorzControlSize;
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgObjectBalance)
virtual BOOL OnInitDialog();
afx_msg void OnValuePlus();
afx_msg void OnValueMultiply();
afx_msg void OnValueMinus();
afx_msg void OnValueDivide();
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnFillAllValues();
afx_msg void OnCheckallApplyButtons();
//}}AFX_MSG
afx_msg BOOL OnEraseBkgnd( CDC* pDC );
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLGOBJECTBASE_H__AF411833_39CE_4B0D_A270_FE0CD3E73C32__INCLUDED_)
Binary file not shown.
@@ -0,0 +1,13 @@
//
// BALANCER.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...
/////////////////////////////////////////////////////////////////////////////
+107
View File
@@ -0,0 +1,107 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Balancer.rc
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_BALANCER_DIALOG 102
#define IDD_OBJECTPROPERTIES 103
#define IDD_OBJECTBALANCE 104
#define IDR_MAINFRAME 128
#define IDC_MECHPROP 1000
#define IDC_WEAPPROP 1001
#define IDC_WEPBAL 1002
#define IDC_ARMORBAL 1003
#define ID_EXIT 1004
#define IDC_SPINGENERALSTART 1136
#define IDC_SPINGENERALEND 1137
#define IDC_VisibleObjective 1137
#define IDC_SPINGENERALDENSITY 1138
#define IDC_PrimaryObjective 1138
#define IDC_SPINLIGHTSTART 1139
#define IDC_StateObjective 1139
#define IDC_SPINLIGHTEND 1140
#define IDC_SPINLIGHTDENSITY 1141
#define IDC_INCEDIT 1141
#define IDC_SPINCUSTOMSTART 1142
#define IDC_SUCCESSEDIT 1142
#define IDC_SPINCUSTOMEND 1143
#define IDC_FAILEDIT 1143
#define IDC_SPINCUSTOMDENSITY 1144
#define IDC_DESCEDIT 1144
#define IDC_SPINRED 1145
#define IDC_COMPLETETEXT 1145
#define IDC_SPINGREEN 1146
#define IDC_CAMERA_NAME 1146
#define IDC_SPINBLUE 1147
#define IDC_GSIZE 1147
#define IDC_WEAPONSLIST 1148
#define IDC_TOTALCRITLOCATIONS 1149
#define IDC_RELOADTIME 1150
#define IDC_MAXDISTANCE 1151
#define IDC_DAMAGEAMOUNT 1152
#define IDC_TONAGE 1153
#define IDC_NUMFIRE 1154
#define IDC_AMMOPERSHOT 1155
#define IDC_MAXAMMO 1156
#define IDC_INITIALLINEARVELOCITY_1 1157
#define IDC_INITIALLINEARACCELERATION_1 1158
#define IDC_INITIALLINEARVELOCITY_2 1159
#define IDC_INITIALLINEARVELOCITY_3 1160
#define IDC_INITIALLINEARACCELERATION_2 1161
#define IDC_INITIALLINEARACCELERATION_3 1162
#define IDC_READONLY 1163
#define IDC_TOTALCRITLOCATIONS_PRESENT 1164
#define IDC_RELOADTIME_PRESENT 1165
#define IDC_MAXDISTANCE_PRESENT 1166
#define IDC_DAMAGEAMOUNT_PRESENT 1167
#define IDC_TONAGE_PRESENT 1168
#define IDC_NUMFIRE_PRESENT 1169
#define IDC_AMMOPERSHOT_PRESENT 1170
#define IDC_MAXAMMO_PRESENT 1171
#define IDC_INITIALLINEARVELOCITY_PRESENT 1172
#define IDC_INITIALLINEARACCELERATION_PRESENT 1173
#define IDC_HEAT_PRESENT 1174
#define IDC_DOP_VALUE 1175
#define IDC_OBJECTLIST 1176
#define IDC_DOP_PROPERTIES 1177
#define IDC_HELPOBJETIVE 1178
#define IDC_DOB_NAME1 1178
#define IDC_DOB_PROPERTYNAME1 1179
#define IDC_CHECK1 1180
#define IDC_CHECKALL_APPLY_BUTTONS 1180
#define IDC_VALUE_PLUS 1181
#define IDC_VALUE_MINUS 1182
#define IDC_VALUE_MULTIPLY 1183
#define IDC_VALUE_DIVIDE 1184
#define IDC_VARIABLE_VALUE_PLACEHOLDER 1187
#define IDC_OBJECT_NAME_HEADER 1188
#define IDC_WEAPONTYPES 1189
#define IDC_APPLYCHANGESPLACEHOLDER 1190
#define ID_DOB_SCROLLBAR 1191
#define ID_DOB_SCROLLBAR2 1192
#define IDC_FILL_ALL_VALUES 1193
#define IDC_DOP_PROPNAME 1300
#define IDC_DOP_PROPPRESENT 1301
#define IDC_DOP_PROPEDIT1 1302
#define IDC_DOP_PROPEDIT2 1303
#define IDC_DOP_PROPEDIT3 1304
#define IDC_VARIABLE_PRESENT_PLACEHOLDER 1400
#define IDS_SAVE_WEAPONS_CHANGES 3002
#define IDS_SAVE_WEAPONS_CHANGES_CAPTION 3003
#define IDS_SAVE_WEAPONS_FAILED 3004
#define IDS_ERROR_CAPTION 3005
#define IDS_READONLY 3006
// 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 1401
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif