From 2177daffd38e1b372613a716d6d18d274d4b6b48 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 05:42:38 +0000 Subject: See the readme. git-svn-id: svn://svn.icculus.org/quake3/trunk@4 edf5b092-35ff-0310-97b2-ce42778d08ea --- q3radiant/SurfaceDlg.cpp | 983 ----------------------------------------------- 1 file changed, 983 deletions(-) delete mode 100755 q3radiant/SurfaceDlg.cpp (limited to 'q3radiant/SurfaceDlg.cpp') diff --git a/q3radiant/SurfaceDlg.cpp b/q3radiant/SurfaceDlg.cpp deleted file mode 100755 index 6930126..0000000 --- a/q3radiant/SurfaceDlg.cpp +++ /dev/null @@ -1,983 +0,0 @@ -/* -=========================================================================== -Copyright (C) 1999-2005 Id Software, Inc. - -This file is part of Quake III Arena source code. - -Quake III Arena source code is free software; you can redistribute it -and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2 of the License, -or (at your option) any later version. - -Quake III Arena source code 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 Foobar; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -=========================================================================== -*/ -// SurfaceDlg.cpp : implementation file -// - -#include "stdafx.h" -#include "Radiant.h" -#include "SurfaceDlg.h" -#include "PrefsDlg.h" -#include "mainfrm.h" -#include "TextureLayout.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// surface properties plugin -// global flag for surface properties plugin is g_qeglobals.bSurfacePropertiesPlugin -_QERPlugSurfaceTable g_SurfaceTable; - -///////////////////////////////////////////////////////////////////////////// -// CSurfaceDlg dialog - -CSurfaceDlg g_dlgSurface; - - -CSurfaceDlg::CSurfaceDlg(CWnd* pParent /*=NULL*/) - : CDialog(CSurfaceDlg::IDD, pParent) -{ - //{{AFX_DATA_INIT(CSurfaceDlg) - m_nHeight = 1; - m_nWidth = 1; - //}}AFX_DATA_INIT -} - - -void CSurfaceDlg::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CSurfaceDlg) - DDX_Control(pDX, IDC_SPIN_WIDTH, m_wndWidth); - DDX_Control(pDX, IDC_SPIN_HEIGHT, m_wndHeight); - DDX_Control(pDX, IDC_SPIN_VSHIFT, m_wndVShift); - DDX_Control(pDX, IDC_SPIN_VSCALE, m_wndVScale); - DDX_Control(pDX, IDC_SPIN_ROTATE, m_wndRotate); - DDX_Control(pDX, IDC_SPIN_HSHIFT, m_wndHShift); - DDX_Control(pDX, IDC_SPIN_HSCALE, m_wndHScale); - DDX_Text(pDX, IDC_EDIT_HEIGHT, m_nHeight); - DDV_MinMaxInt(pDX, m_nHeight, 1, 32); - DDX_Text(pDX, IDC_EDIT_WIDTH, m_nWidth); - DDV_MinMaxInt(pDX, m_nWidth, 1, 32); - //}}AFX_DATA_MAP -} - - -BEGIN_MESSAGE_MAP(CSurfaceDlg, CDialog) - //{{AFX_MSG_MAP(CSurfaceDlg) - ON_WM_HSCROLL() - ON_WM_KEYDOWN() - ON_WM_VSCROLL() - ON_BN_CLICKED(IDAPPLY, OnApply) - ON_WM_CLOSE() - ON_WM_DESTROY() - ON_BN_CLICKED(ID_BTN_CANCEL, OnBtnCancel) - ON_BN_CLICKED(IDC_BTN_COLOR, OnBtnColor) - ON_WM_CTLCOLOR() - ON_WM_CREATE() - ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_HSHIFT, OnDeltaPosSpin) - ON_BN_CLICKED(IDC_BTN_PATCHDETAILS, OnBtnPatchdetails) - ON_BN_CLICKED(IDC_BTN_PATCHNATURAL, OnBtnPatchnatural) - ON_BN_CLICKED(IDC_BTN_PATCHRESET, OnBtnPatchreset) - ON_BN_CLICKED(IDC_BTN_PATCHFIT, OnBtnPatchfit) - ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_HSCALE, OnDeltaPosSpin) - ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_ROTATE, OnDeltaPosSpin) - ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_VSCALE, OnDeltaPosSpin) - ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_VSHIFT, OnDeltaPosSpin) - ON_BN_CLICKED(IDC_BTN_AXIAL, OnBtnAxial) - ON_BN_CLICKED(IDC_BTN_BRUSHFIT, OnBtnBrushfit) - ON_BN_CLICKED(IDC_BTN_FACEFIT, OnBtnFacefit) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CSurfaceDlg message handlers - - -/* -=================================================== - - SURFACE INSPECTOR - -=================================================== -*/ - -texdef_t g_old_texdef; -texdef_t g_patch_texdef; -HWND g_surfwin = NULL; -qboolean g_changed_surface; - -int g_checkboxes[64] = { - IDC_CHECK1, IDC_CHECK2, IDC_CHECK3, IDC_CHECK4, - IDC_CHECK5, IDC_CHECK6, IDC_CHECK7, IDC_CHECK8, - IDC_CHECK9, IDC_CHECK10, IDC_CHECK11, IDC_CHECK12, - IDC_CHECK13, IDC_CHECK14, IDC_CHECK15, IDC_CHECK16, - IDC_CHECK17, IDC_CHECK18, IDC_CHECK19, IDC_CHECK20, - IDC_CHECK21, IDC_CHECK22, IDC_CHECK23, IDC_CHECK24, - IDC_CHECK25, IDC_CHECK26, IDC_CHECK27, IDC_CHECK28, - IDC_CHECK29, IDC_CHECK30, IDC_CHECK31, IDC_CHECK32, - - IDC_CHECK33, IDC_CHECK34, IDC_CHECK35, IDC_CHECK36, - IDC_CHECK37, IDC_CHECK38, IDC_CHECK39, IDC_CHECK40, - IDC_CHECK41, IDC_CHECK42, IDC_CHECK43, IDC_CHECK44, - IDC_CHECK45, IDC_CHECK46, IDC_CHECK47, IDC_CHECK48, - IDC_CHECK49, IDC_CHECK50, IDC_CHECK51, IDC_CHECK52, - IDC_CHECK53, IDC_CHECK54, IDC_CHECK55, IDC_CHECK56, - IDC_CHECK57, IDC_CHECK58, IDC_CHECK59, IDC_CHECK60, - IDC_CHECK61, IDC_CHECK62, IDC_CHECK63, IDC_CHECK64 - }; - -/* -============== -SetTexMods - -Set the fields to the current texdef -if one face selected -> will read this face texdef, else current texdef -if only patches selected, will read the patch texdef -=============== -*/ - -bool g_bNewFace = false; -bool g_bNewApplyHandling = false; -bool g_bGatewayhack = false; - -void CSurfaceDlg::SetTexMods() -{ - char sz[128]; - texdef_t *pt; - brushprimit_texdef_t *bpt; - // local copy if a width=2 height=2 qtetxture_t is needed - brushprimit_texdef_t local_bp; - int i; - - if (!g_surfwin) - return; - - m_bPatchMode = false; - - if (OnlyPatchesSelected()) - { - pt = &g_qeglobals.d_texturewin.texdef; - if (QE_SingleBrush()) - { - //strcpy(g_patch_texdef.name, Patch_GetTextureName()); - g_patch_texdef.SetName(Patch_GetTextureName()); - } - else - { - //strcpy(g_patch_texdef.name, pt->name); - g_patch_texdef.SetName(pt->name); - } - g_patch_texdef.contents = pt->contents; - g_patch_texdef.flags = pt->flags; - g_patch_texdef.value = pt->value; - pt = &g_patch_texdef; - m_bPatchMode = true; - } - else - { - if (g_bNewFace && g_ptrSelectedFaces.GetSize() > 0) - { - face_t *selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - pt = &selFace->texdef; - if (g_qeglobals.m_bBrushPrimitMode) - { - // compute a texture matrix related to the default matrix width=2 height=2 - ConvertTexMatWithQTexture( &selFace->brushprimit_texdef, selFace->d_texture, &local_bp, NULL ); - bpt = &local_bp; - } - } - else - { - pt = &g_qeglobals.d_texturewin.texdef; - if (g_qeglobals.m_bBrushPrimitMode) - { - bpt = &g_qeglobals.d_texturewin.brushprimit_texdef; - } - } - // brush primitive mode : compute fake shift scale rot representation - if (g_qeglobals.m_bBrushPrimitMode) - TexMatToFakeTexCoords( bpt->coords, m_shift, &m_rotate, m_scale ); - } - - SendMessage (WM_SETREDRAW, 0, 0); - - ::SetWindowText(GetDlgItem(IDC_TEXTURE)->GetSafeHwnd(), pt->name); - - if (m_bPatchMode) - sprintf(sz, "%4.6f", pt->shift[0]); - else - if (g_qeglobals.m_bBrushPrimitMode) - sprintf(sz, "%d", (int)m_shift[0]); - else - sprintf(sz, "%d", (int)pt->shift[0]); - ::SetWindowText(GetDlgItem(IDC_HSHIFT)->GetSafeHwnd(), sz); - - if (m_bPatchMode) - sprintf(sz, "%4.6f", pt->shift[1]); - else - if (g_qeglobals.m_bBrushPrimitMode) - sprintf(sz, "%d", (int)m_shift[1]); - else - sprintf(sz, "%d", (int)pt->shift[1]); - ::SetWindowText(GetDlgItem(IDC_VSHIFT)->GetSafeHwnd(), sz); - - sprintf(sz, m_bPatchMode ? "%4.6f" : "%4.6f", g_qeglobals.m_bBrushPrimitMode ? m_scale[0] : pt->scale[0]); - ::SetWindowText(GetDlgItem(IDC_HSCALE)->GetSafeHwnd(), sz); - - sprintf(sz, m_bPatchMode ? "%4.6f" : "%4.6f", g_qeglobals.m_bBrushPrimitMode ? m_scale[1] : pt->scale[1]); - ::SetWindowText(GetDlgItem(IDC_VSCALE)->GetSafeHwnd(), sz); - - //++timo compute BProtate as int .. - sprintf(sz, "%d", g_qeglobals.m_bBrushPrimitMode ? (int)m_rotate : (int)pt->rotate); - ::SetWindowText(GetDlgItem(IDC_ROTATE)->GetSafeHwnd(), sz); - - sprintf(sz, "%d", (int)pt->value); - ::SetWindowText(GetDlgItem(IDC_VALUE)->GetSafeHwnd(), sz); - - for (i=0 ; i<32 ; i++) - ::SendMessage(GetDlgItem(g_checkboxes[i])->GetSafeHwnd(), BM_SETCHECK, !!(pt->flags&(1<GetSafeHwnd(), BM_SETCHECK, !!(pt->contents&(1<GetSafeHwnd(), sz, 127); - pt->shift[0] = atof(sz); - - ::GetWindowText (GetDlgItem(IDC_VSHIFT)->GetSafeHwnd(), sz, 127); - pt->shift[1] = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_HSCALE)->GetSafeHwnd(), sz, 127); - pt->scale[0] = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_VSCALE)->GetSafeHwnd(), sz, 127); - pt->scale[1] = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_ROTATE)->GetSafeHwnd(), sz, 127); - pt->rotate = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_VALUE)->GetSafeHwnd(), sz, 127); - pt->value = atof(sz); - - pt->flags = 0; - for (i=0 ; i<32 ; i++) - { - b = ::SendMessage(GetDlgItem(g_checkboxes[i])->GetSafeHwnd(), BM_GETCHECK, 0, 0); - if (b != 1 && b != 0) - continue; - pt->flags |= b<contents = 0; - for (i=0 ; i<32 ; i++) - { - b = ::SendMessage(GetDlgItem(g_checkboxes[32+i])->GetSafeHwnd(), BM_GETCHECK, 0, 0); - if (b != 1 && b != 0) - continue; - pt->contents |= b< 0) - { - face_t *selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - pt = &selFace->texdef; - } - else - { - pt = &g_qeglobals.d_texturewin.texdef; - } - } - - ::GetWindowText (GetDlgItem(IDC_TEXTURE)->GetSafeHwnd(), sz, 127); - //strncpy (pt->name, sz, sizeof(pt->name)-1); - pt->SetName(sz); - if (pt->name[0] <= ' ') - { - //strcpy (pt->name, "none"); - pt->SetName("none"); - ::SetWindowText(GetDlgItem(IDC_TEXTURE)->GetSafeHwnd(), pt->name); - } - - ::GetWindowText (GetDlgItem(IDC_HSHIFT)->GetSafeHwnd(), sz, 127); - ( g_qeglobals.m_bBrushPrimitMode ? m_shift[0] : pt->shift[0] ) = atof(sz); - - ::GetWindowText (GetDlgItem(IDC_VSHIFT)->GetSafeHwnd(), sz, 127); - ( g_qeglobals.m_bBrushPrimitMode ? m_shift[1] : pt->shift[1] ) = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_HSCALE)->GetSafeHwnd(), sz, 127); - ( g_qeglobals.m_bBrushPrimitMode ? m_scale[0] : pt->scale[0] ) = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_VSCALE)->GetSafeHwnd(), sz, 127); - ( g_qeglobals.m_bBrushPrimitMode ? m_scale[1] : pt->scale[1] ) = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_ROTATE)->GetSafeHwnd(), sz, 127); - ( g_qeglobals.m_bBrushPrimitMode ? m_rotate : pt->rotate ) = atof(sz); - - ::GetWindowText(GetDlgItem(IDC_VALUE)->GetSafeHwnd(), sz, 127); - pt->value = atof(sz); - - pt->flags = 0; - for (i=0 ; i<32 ; i++) - { - b = ::SendMessage(GetDlgItem(g_checkboxes[i])->GetSafeHwnd(), BM_GETCHECK, 0, 0); - if (b != 1 && b != 0) - continue; - pt->flags |= b<contents = 0; - for (i=0 ; i<32 ; i++) - { - b = ::SendMessage(GetDlgItem(g_checkboxes[32+i])->GetSafeHwnd(), BM_GETCHECK, 0, 0); - if (b != 1 && b != 0) - continue; - pt->contents |= b< 0) - { - selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - bpt = &selFace->brushprimit_texdef; - } - else - { - bpt = &g_qeglobals.d_texturewin.brushprimit_texdef; - } - // compute texture matrix - // the matrix returned must be understood as a qtexture_t with width=2 height=2 - FakeTexCoordsToTexMat( m_shift, m_rotate, m_scale, local_bp.coords ); - // copy the texture matrix in the global struct - // fit the qtexture if we have a face selected, otherwise g_qeglobals.d_texturewin.brushprimit_texdef uses the basic qtexture_t with width=2 height=2 - - ConvertTexMatWithQTexture( &local_bp, NULL, bpt, ( ( g_bNewFace && selFace ) ? selFace->d_texture : NULL ) ); - } - Select_SetTexture(pt,&local_bp); - - //if (m_bPatchMode) - //{ - // Patch_SetTextureInfo(pt); - //} - -} - -/* -================= -UpdateSpinners -================= -*/ - -void CSurfaceDlg::UpdateSpinners(bool bUp, int nID) -{ - texdef_t *pt; - texdef_t td; - - if (m_bPatchMode) - { - td.rotate = 0.0; - td.scale[0] = td.scale[1] = 0.0; - td.shift[0] = td.shift[1] = 0.0; - GrabPatchMods(); - - pt = &g_patch_texdef; - td.contents = pt->contents; - td.flags = pt->flags; - td.value = pt->value; - - if (nID == IDC_SPIN_ROTATE) - { - if (bUp) - td.rotate = pt->rotate; - else - td.rotate = -pt->rotate; - } - else if (nID == IDC_SPIN_HSCALE) - { - if (bUp) - td.scale[0] = 1-pt->scale[0]; - else - td.scale[0] = 1+pt->scale[0]; - } - else if (nID == IDC_SPIN_VSCALE) - { - if (bUp) - td.scale[1] = 1-pt->scale[1]; - else - td.scale[1] = 1+pt->scale[1]; - } - - else if (nID == IDC_SPIN_HSHIFT) - { - if (bUp) - td.shift[0] = pt->shift[0]; - else - td.shift[0] = -pt->shift[0]; - } - else if (nID == IDC_SPIN_VSHIFT) - { - if (bUp) - td.shift[1] = pt->shift[1]; - else - td.shift[1] = -pt->shift[1]; - } - pt = &g_qeglobals.d_texturewin.texdef; - Patch_SetTextureInfo(&td); - } - else - { - // in brush primitive mode, will read up-to-date m_shift m_rotate m_scale - GetTexMods (); - if (g_bNewFace && g_ptrSelectedFaces.GetSize() > 0) - { - face_t *selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - pt = &selFace->texdef; - } - else - { - pt = &g_qeglobals.d_texturewin.texdef; - } - if (nID == IDC_SPIN_ROTATE) - { - if (g_qeglobals.m_bBrushPrimitMode) - { - if (bUp) - m_rotate += 45; - else - m_rotate -= 45; - } - else - { - if (bUp) - pt->rotate += 45; - else - pt->rotate -= 45; - if (pt->rotate < 0) - pt->rotate += 360; - if (pt->rotate >= 360) - pt->rotate -= 360; - } - } - else if (nID == IDC_SPIN_HSCALE) - { - if (g_qeglobals.m_bBrushPrimitMode) - { - if (bUp) - m_scale[0] += 0.1; - else - m_scale[0] -= 0.1; - } - else - { - if (bUp) - pt->scale[0] += 0.1; - else - pt->scale[0] -= 0.1; - } - } - else if (nID == IDC_SPIN_VSCALE) - { - if (g_qeglobals.m_bBrushPrimitMode) - { - if (bUp) - m_scale[1] += 0.1; - else - m_scale[1] -= 0.1; - } - else - { - if (bUp) - pt->scale[1] += 0.1; - else - pt->scale[1] -= 0.1; - } - } - else if (nID == IDC_SPIN_HSHIFT) - { - if (g_qeglobals.m_bBrushPrimitMode) - { - if (bUp) - m_shift[0] += 8; - else - m_shift[0] -= 8; - } - else - { - if (bUp) - pt->shift[0] += 8; - else - pt->shift[0] -= 8; - } - } - else if (nID == IDC_SPIN_VSHIFT) - { - if (g_qeglobals.m_bBrushPrimitMode) - { - if (bUp) - m_shift[1] += 8; - else - m_shift[1] -= 8; - } - else - { - if (bUp) - pt->shift[1] += 8; - else - pt->shift[1] -= 8; - } - } - } - // a local copy of the texture matrix, given for a qtexture_t with width=2 height=2 - brushprimit_texdef_t local_bp; - brushprimit_texdef_t *bpt; - if (g_qeglobals.m_bBrushPrimitMode) - { - face_t *selFace = NULL; - if (g_bNewFace && g_ptrSelectedFaces.GetSize() > 0) - { - selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - bpt = &selFace->brushprimit_texdef; - } - else - { - bpt = &g_qeglobals.d_texturewin.brushprimit_texdef; - } - // compute texture matrix - // the matrix returned must be understood as a qtexture_t with width=2 height=2 - FakeTexCoordsToTexMat( m_shift, m_rotate, m_scale, local_bp.coords ); - // copy the texture matrix in the global struct - // fit the qtexture if we have a face selected, otherwise g_qeglobals.d_texturewin.brushprimit_texdef uses the basic qtexture_t with width=2 height=2 - ConvertTexMatWithQTexture( &local_bp, NULL, bpt, ( ( g_bNewFace && selFace ) ? selFace->d_texture : NULL ) ); - } - // brush primit : will update the widgets after reading back texture matrix and computing fake shift scale rot - SetTexMods(); - g_changed_surface = true; - Select_SetTexture(pt,&local_bp); -} - -void CSurfaceDlg::UpdateSpinners(int nScrollCode, int nPos, CScrollBar* pBar) -{ - texdef_t *pt; - - GetTexMods (); - if (g_bNewFace && g_ptrSelectedFaces.GetSize() > 0) - { - face_t *selFace = reinterpret_cast(g_ptrSelectedFaces.GetAt(0)); - pt = &selFace->texdef; - } - else - { - pt = &g_qeglobals.d_texturewin.texdef; - } - - if ((nScrollCode != SB_LINEUP) && (nScrollCode != SB_LINEDOWN)) - return; - - if (pBar->GetSafeHwnd() == ::GetDlgItem(GetSafeHwnd(), IDC_ROTATEA)) - { - if (nScrollCode == SB_LINEUP) - pt->rotate += 45; - else - pt->rotate -= 45; - - if (pt->rotate < 0) - pt->rotate += 360; - - if (pt->rotate >= 360) - pt->rotate -= 360; - } - - else if (pBar->GetSafeHwnd() == ::GetDlgItem(GetSafeHwnd(), IDC_HSCALEA)) - { - if (nScrollCode == SB_LINEDOWN) - pt->scale[0] -= 0.1; - else - pt->scale[0] += 0.1; - } - - else if (pBar->GetSafeHwnd() == ::GetDlgItem(GetSafeHwnd(), IDC_VSCALEA)) - { - if (nScrollCode == SB_LINEUP) - pt->scale[1] += 0.1; - else - pt->scale[1] -= 0.1; - } - - else if (pBar->GetSafeHwnd() == ::GetDlgItem(GetSafeHwnd(), IDC_HSHIFTA)) - { - if (nScrollCode == SB_LINEDOWN) - pt->shift[0] -= 8; - else - pt->shift[0] += 8; - } - - else if (pBar->GetSafeHwnd() == ::GetDlgItem(GetSafeHwnd(), IDC_VSHIFTA)) - { - if (nScrollCode == SB_LINEUP) - pt->shift[1] += 8; - else - pt->shift[1] -= 8; - } - - SetTexMods(); - g_changed_surface = true; - //++timo if !g_qeglobals.m_bBrushPrimitMode send a NULL brushprimit_texdef - if (!g_qeglobals.m_bBrushPrimitMode) - { - Sys_Printf("Warning : non brush primitive mode call to CSurfaceDlg::GetTexMods broken\n"); - Sys_Printf(" ( Select_SetTexture not called )\n"); - } -// Select_SetTexture(pt); -} - -void UpdateSurfaceDialog() -{ - if (g_qeglobals.bSurfacePropertiesPlugin) - { - g_SurfaceTable.m_pfnUpdateSurfaceDialog(); - } - else - { - if (g_surfwin) - g_dlgSurface.SetTexMods(); - } - g_pParentWnd->UpdateTextureBar(); -} - -bool ByeByeSurfaceDialog(); - -void DoSurface (void) -{ - // surface properties plugin ? - if (g_qeglobals.bSurfacePropertiesPlugin) - { - g_SurfaceTable.m_pfnDoSurface(); - return; - } - - g_bNewFace = g_PrefsDlg.m_bFace; - g_bNewApplyHandling = g_PrefsDlg.m_bNewApplyHandling; - g_bGatewayhack = g_PrefsDlg.m_bGatewayHack; - // save current state for cancel - g_old_texdef = g_qeglobals.d_texturewin.texdef; - g_changed_surface = false; - - if (g_surfwin == NULL && g_dlgSurface.GetSafeHwnd() == NULL) - { - g_patch_texdef.scale[0] = 0.05; - g_patch_texdef.scale[1] = 0.05; - g_patch_texdef.shift[0] = 0.05; - g_patch_texdef.shift[1] = 0.05; - // use rotation increment from preferences - g_patch_texdef.rotate = g_PrefsDlg.m_nRotation; - - g_dlgSurface.Create(IDD_SURFACE); - CRect rct; - LONG lSize = sizeof(rct); - if (LoadRegistryInfo("Radiant::SurfaceWindow", &rct, &lSize)) - g_dlgSurface.SetWindowPos(NULL, rct.left, rct.top, 0,0, SWP_NOSIZE | SWP_SHOWWINDOW); - - Sys_UpdateWindows(W_ALL); - } - else - { - g_surfwin = g_dlgSurface.GetSafeHwnd(); - g_dlgSurface.SetTexMods (); - g_dlgSurface.ShowWindow(SW_SHOW); - } -} - -bool ByeByeSurfaceDialog() -{ - // surface properties plugin ? - if (g_qeglobals.bSurfacePropertiesPlugin) - { - return g_SurfaceTable.m_pfnByeByeSurfaceDialog(); - } - - if (g_surfwin) - { - if (g_bGatewayhack) - PostMessage(g_surfwin, WM_COMMAND, IDAPPLY, 0); - else - PostMessage(g_surfwin, WM_COMMAND, IDCANCEL, 0); - return true; - } - else return false; -} - -BOOL CSurfaceDlg::OnInitDialog() -{ - CDialog::OnInitDialog(); - - g_surfwin = GetSafeHwnd(); - SetTexMods (); - -#ifdef QUAKE3 - GetDlgItem(IDC_CHECK32)->SetWindowText("Curve"); - GetDlgItem(IDC_CHECK64)->SetWindowText("Inverted"); -#endif - - m_wndHScale.SetRange(0, 1000); - m_wndVScale.SetRange(0, 1000); - m_wndHShift.SetRange(0, 1000); - m_wndVShift.SetRange(0, 1000); - m_wndRotate.SetRange(0, 1000); - m_wndWidth.SetRange(1, 32); - m_wndHeight.SetRange(1, 32); - - LPVOID lpv = g_pParentWnd->GetPlugInMgr().GetSurfaceFlags(); - if (lpv != NULL) - { - int i = 0; - char* p = reinterpret_cast(lpv); - char* pBuff = new char[strlen(p)+1]; - strcpy(pBuff, p); - char* pToken = strtok(pBuff, ";\0"); - while (pToken != NULL) - { - GetDlgItem(g_checkboxes[i++])->SetWindowText(pToken); - pToken = strtok(NULL, ";\0"); - } - } - - if (strstr(g_PrefsDlg.m_strWhatGame, "Quake3") != NULL) { - for (int i=0 ; i < 64 ; i++) { - ::EnableWindow(GetDlgItem(g_checkboxes[i])->GetSafeHwnd(), FALSE); - } - - } - - return TRUE; // return TRUE unless you set the focus to a control - // EXCEPTION: OCX Property Pages should return FALSE -} - -void CSurfaceDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) -{ - CDialog::OnHScroll(nSBCode, nPos, pScrollBar); - UpdateSpinners(nSBCode, nPos, pScrollBar); - Sys_UpdateWindows(W_CAMERA); -} - -void CSurfaceDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) -{ - - CDialog::OnKeyDown(nChar, nRepCnt, nFlags); -} - -void CSurfaceDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) -{ - CDialog::OnVScroll(nSBCode, nPos, pScrollBar); - UpdateSpinners(nSBCode, nPos, pScrollBar); - Sys_UpdateWindows(W_CAMERA); -} - -void CSurfaceDlg::OnApply() -{ - GetTexMods (); - Sys_UpdateWindows(W_CAMERA); - if (g_bNewApplyHandling) - OnOK(); -} - -void CSurfaceDlg::OnOK() -{ - GetTexMods(); - g_surfwin = NULL; - CDialog::OnOK(); - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnClose() -{ - g_surfwin = NULL; - CDialog::OnClose(); -} - -void CSurfaceDlg::OnCancel() -{ - if (g_bGatewayhack) - OnOK(); - else - OnBtnCancel(); -} - -void CSurfaceDlg::OnDestroy() -{ - if (GetSafeHwnd()) - { - CRect rct; - GetWindowRect(rct); - SaveRegistryInfo("Radiant::SurfaceWindow", &rct, sizeof(rct)); - } - CDialog::OnDestroy(); - g_surfwin = NULL; - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnCancel() -{ - g_qeglobals.d_texturewin.texdef = g_old_texdef; - if (g_changed_surface) - { - //++timo if !g_qeglobals.m_bBrushPrimitMode send a NULL brushprimit_texdef - if (!g_qeglobals.m_bBrushPrimitMode) - { - Sys_Printf("Warning : non brush primitive mode call to CSurfaceDlg::GetTexMods broken\n"); - Sys_Printf(" ( Select_SetTexture not called )\n"); - } -// Select_SetTexture(&g_qeglobals.d_texturewin.texdef); - } - g_surfwin = NULL; - DestroyWindow(); -} - -void CSurfaceDlg::OnBtnColor() -{ -} - -HBRUSH CSurfaceDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) -{ - HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); - return hbr; -} - -int CSurfaceDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) -{ - if (CDialog::OnCreate(lpCreateStruct) == -1) - return -1; - - return 0; -} - -BOOL CSurfaceDlg::PreCreateWindow(CREATESTRUCT& cs) -{ - // TODO: Add your specialized code here and/or call the base class - - return CDialog::PreCreateWindow(cs); -} - - -void CSurfaceDlg::OnDeltaPosSpin(NMHDR* pNMHDR, LRESULT* pResult) -{ - NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR; - UpdateSpinners((pNMUpDown->iDelta > 0), pNMUpDown->hdr.idFrom); - *pResult = 0; -} - -void CSurfaceDlg::OnBtnPatchdetails() -{ - Patch_NaturalizeSelected(true); - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnPatchnatural() -{ - Patch_NaturalizeSelected(); - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnPatchreset() -{ - CTextureLayout dlg; - if (dlg.DoModal() == IDOK) - { - Patch_ResetTexturing(dlg.m_fX, dlg.m_fY); - } - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnPatchfit() -{ - Patch_FitTexturing(); - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnAxial() -{ - Select_SetTexture (&g_qeglobals.d_texturewin.texdef, &g_qeglobals.d_texturewin.brushprimit_texdef, true); - g_changed_surface = true; - SetTexMods(); - Sys_UpdateWindows(W_ALL); -} - -void CSurfaceDlg::OnBtnBrushfit() -{ - // TODO: Add your control notification handler code here - -} - -void CSurfaceDlg::OnBtnFacefit() -{ - UpdateData(TRUE); - if (g_ptrSelectedFaces.GetSize() == 0) - { - brush_t *b; - for (b=selected_brushes.next ; b != &selected_brushes ; b=b->next) - { - for (face_t* pFace = b->brush_faces; pFace; pFace = pFace->next) - { - g_ptrSelectedFaces.Add(pFace); - g_ptrSelectedFaceBrushes.Add(b); - } - } - } - Select_FitTexture(m_nHeight, m_nWidth); - SetTexMods(); - g_changed_surface = true; - Sys_UpdateWindows(W_ALL); -} -- cgit v1.2.3