X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=radiant%2Fbrushscript.cpp;h=359fd29996c755ba9e04c09428fb4cf886595b9d;hp=68892fc2280f69e67ab666982e37b4a6c3888ea8;hb=830125fad042fad35dc029b6eb57c8156ad7e176;hpb=515673c08f8718a237e90c2130a1f5294f966d6a diff --git a/radiant/brushscript.cpp b/radiant/brushscript.cpp index 68892fc2..359fd299 100644 --- a/radiant/brushscript.cpp +++ b/radiant/brushscript.cpp @@ -1,31 +1,31 @@ /* -Copyright (C) 1999-2007 id Software, Inc. and contributors. -For a list of contributors, see the accompanying CONTRIBUTORS file. + Copyright (C) 1999-2007 id Software, Inc. and contributors. + For a list of contributors, see the accompanying CONTRIBUTORS file. -This file is part of GtkRadiant. + This file is part of GtkRadiant. -GtkRadiant 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. + GtkRadiant 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. -GtkRadiant 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. + GtkRadiant 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 GtkRadiant; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -*/ + You should have received a copy of the GNU General Public License + along with GtkRadiant; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ // BrushScript stuff // /*! -\todo is this still used / in working state? -should we cleanup and remove it for good -*/ + \todo is this still used / in working state? + should we cleanup and remove it for good + */ #include "stdafx.h" #include "gtkmisc.h" @@ -33,16 +33,16 @@ should we cleanup and remove it for good // struct SVariableDef { - CString m_strName; - CString m_strInput; - float m_fValue; + CString m_strName; + CString m_strInput; + float m_fValue; }; struct SVecVariableDef { - CString m_strName; - CString m_strInput; - vec3_t m_vValue; + CString m_strName; + CString m_strInput; + vec3_t m_vValue; }; @@ -65,101 +65,98 @@ bool g_bKeepGoing; SVariableDef g_Variables[MAX_VARIABLES]; SVecVariableDef g_VecVariables[MAX_VARIABLES]; -void InitForScriptRun() -{ - g_pHold1 = NULL; - g_pHold2 = NULL; - g_pHold3 = NULL; - g_bRotateAroundSelection = true; - g_nVariableCount = 0; - g_nVecVariableCount = 0; - g_nLoopCounter = 0; - g_bStartLoop = false; - g_pLooper = NULL; - g_bKeepGoing = true; +void InitForScriptRun(){ + g_pHold1 = NULL; + g_pHold2 = NULL; + g_pHold3 = NULL; + g_bRotateAroundSelection = true; + g_nVariableCount = 0; + g_nVecVariableCount = 0; + g_nLoopCounter = 0; + g_bStartLoop = false; + g_pLooper = NULL; + g_bKeepGoing = true; } -void AddVariable(const char* pName, float fValue, const char* pInput = NULL) -{ - if (g_nVariableCount < MAX_VARIABLES) - { - g_Variables[g_nVariableCount].m_strName = pName; - g_Variables[g_nVariableCount].m_strName.MakeLower(); - g_Variables[g_nVariableCount].m_fValue = fValue; - if (pInput) - g_Variables[g_nVariableCount].m_strInput = pInput; - g_nVariableCount++; - } - else - gtk_MessageBox(g_pParentWnd->m_pWidget, "Maximum script variable limit reached!"); +void AddVariable( const char* pName, float fValue, const char* pInput = NULL ){ + if ( g_nVariableCount < MAX_VARIABLES ) { + g_Variables[g_nVariableCount].m_strName = pName; + g_Variables[g_nVariableCount].m_strName.MakeLower(); + g_Variables[g_nVariableCount].m_fValue = fValue; + if ( pInput ) { + g_Variables[g_nVariableCount].m_strInput = pInput; + } + g_nVariableCount++; + } + else{ + gtk_MessageBox( g_pParentWnd->m_pWidget, "Maximum script variable limit reached!" ); + } } -float VariableValue(const char* pName) -{ - CString strName = pName; - strName.MakeLower(); - for (int n = 0; n < g_nVariableCount; n++) - { - if (strName == g_Variables[n].m_strName) - return g_Variables[n].m_fValue; - } - //strName.Format("Reference to non-existant varirable %s", pName); - //g_pParentWnd->MessageBox(strName); - return g_fDefault; +float VariableValue( const char* pName ){ + CString strName = pName; + strName.MakeLower(); + for ( int n = 0; n < g_nVariableCount; n++ ) + { + if ( strName == g_Variables[n].m_strName ) { + return g_Variables[n].m_fValue; + } + } + //strName.Format("Reference to non-existant varirable %s", pName); + //g_pParentWnd->MessageBox(strName); + return g_fDefault; } -void SetVariableValue(const char* pName, float fValue) -{ - CString strName = pName; - strName.MakeLower(); - for (int n = 0; n < g_nVariableCount; n++) - { - if (strName == g_Variables[n].m_strName) - g_Variables[n].m_fValue = fValue; - } +void SetVariableValue( const char* pName, float fValue ){ + CString strName = pName; + strName.MakeLower(); + for ( int n = 0; n < g_nVariableCount; n++ ) + { + if ( strName == g_Variables[n].m_strName ) { + g_Variables[n].m_fValue = fValue; + } + } } -void AddVectorVariable(const char* pName, const char* pInput = NULL) -{ - if (g_nVecVariableCount < MAX_VARIABLES) - { - g_VecVariables[g_nVecVariableCount].m_strName = pName; - g_VecVariables[g_nVecVariableCount].m_strName.MakeLower(); - if (pInput) - g_VecVariables[g_nVariableCount].m_strInput = pInput; - g_nVecVariableCount++; - } - else - gtk_MessageBox(g_pParentWnd->m_pWidget, "Maximum script variable limit reached!"); +void AddVectorVariable( const char* pName, const char* pInput = NULL ){ + if ( g_nVecVariableCount < MAX_VARIABLES ) { + g_VecVariables[g_nVecVariableCount].m_strName = pName; + g_VecVariables[g_nVecVariableCount].m_strName.MakeLower(); + if ( pInput ) { + g_VecVariables[g_nVariableCount].m_strInput = pInput; + } + g_nVecVariableCount++; + } + else{ + gtk_MessageBox( g_pParentWnd->m_pWidget, "Maximum script variable limit reached!" ); + } } -void VectorVariableValue(const char* pName, vec3_t& v) -{ - CString strName = pName; - strName.MakeLower(); - for (int n = 0; n < g_nVecVariableCount; n++) - { - if (strName == g_VecVariables[n].m_strName) - { - VectorCopy(g_VecVariables[n].m_vValue, v); - return; - } - } - strName.Format("Reference to non-existant variable %s", pName); - gtk_MessageBox(g_pParentWnd->m_pWidget, strName); +void VectorVariableValue( const char* pName, vec3_t& v ){ + CString strName = pName; + strName.MakeLower(); + for ( int n = 0; n < g_nVecVariableCount; n++ ) + { + if ( strName == g_VecVariables[n].m_strName ) { + VectorCopy( g_VecVariables[n].m_vValue, v ); + return; + } + } + strName.Format( "Reference to non-existant variable %s", pName ); + gtk_MessageBox( g_pParentWnd->m_pWidget, strName ); } -void SetVectorVariableValue(const char* pName, vec3_t v) -{ - CString strName = pName; - strName.MakeLower(); - for (int n = 0; n < g_nVecVariableCount; n++) - { - if (strName == g_VecVariables[n].m_strName) - VectorCopy(v, g_VecVariables[n].m_vValue); - } +void SetVectorVariableValue( const char* pName, vec3_t v ){ + CString strName = pName; + strName.MakeLower(); + for ( int n = 0; n < g_nVecVariableCount; n++ ) + { + if ( strName == g_VecVariables[n].m_strName ) { + VectorCopy( v, g_VecVariables[n].m_vValue ); + } + } } @@ -168,7 +165,7 @@ void SetVectorVariableValue(const char* pName, vec3_t v) // commands // -// _CopySelected(nHoldPos) +// _CopySelected(nHoldPos) // copies selected brush to hold spot 1, 2 or 3 // // _MoveSelected(x, y, z) @@ -193,506 +190,484 @@ void SetVectorVariableValue(const char* pName, vec3_t v) // inputs a list of values from the user // -typedef void (PFNScript)(char*&); +typedef void ( PFNScript )( char*& ); struct SBrushScript { - const char* m_pName; - PFNScript* m_pProc; + const char* m_pName; + PFNScript* m_pProc; }; -const char* GetParam(char*& pBuffer) -{ - static CString strParam; - bool bStringMode = false; - - while (*pBuffer != (char)NULL && isspace(*pBuffer)) // skip and whitespace - pBuffer++; - - if (*pBuffer == '(') // if it's an opening paren, skip it - pBuffer++; - - if (*pBuffer == '\"') // string ? - { - pBuffer++; - bStringMode = true; - } - - strParam = ""; - - if (bStringMode) - { - while (*pBuffer != (char)NULL && *pBuffer != '\"') - strParam += *pBuffer++; - } - else - { - while (*pBuffer != (char)NULL && *pBuffer != ' ' && *pBuffer != ')' && *pBuffer != ',') - strParam += *pBuffer++; - } - - if (*pBuffer != (char)NULL) // skip last char - pBuffer++; - - if (strParam.GetLength() > 0) - { - if (strParam.GetAt(0) == '$') // ? variable name - { - float f = VariableValue(strParam); - if (f != g_fDefault) - strParam.Format("%f", f); - } - } - - return strParam; +const char* GetParam( char*& pBuffer ){ + static CString strParam; + bool bStringMode = false; + + while ( *pBuffer != (char)NULL && isspace( *pBuffer ) ) // skip and whitespace + pBuffer++; + + if ( *pBuffer == '(' ) { // if it's an opening paren, skip it + pBuffer++; + } + + if ( *pBuffer == '\"' ) { // string ? + pBuffer++; + bStringMode = true; + } + + strParam = ""; + + if ( bStringMode ) { + while ( *pBuffer != (char)NULL && *pBuffer != '\"' ) + strParam += *pBuffer++; + } + else + { + while ( *pBuffer != (char)NULL && *pBuffer != ' ' && *pBuffer != ')' && *pBuffer != ',' ) + strParam += *pBuffer++; + } + + if ( *pBuffer != (char)NULL ) { // skip last char + pBuffer++; + } + + if ( strParam.GetLength() > 0 ) { + if ( strParam.GetAt( 0 ) == '$' ) { // ? variable name + float f = VariableValue( strParam ); + if ( f != g_fDefault ) { + strParam.Format( "%f", f ); + } + } + } + + return strParam; } -brush_t* CopyBrush(brush_t* p) -{ - brush_t* pCopy = Brush_Clone(p); +brush_t* CopyBrush( brush_t* p ){ + brush_t* pCopy = Brush_Clone( p ); //Brush_AddToList (pCopy, &active_brushes); //Entity_LinkBrush (world_entity, pCopy); - Brush_Build(pCopy, false); + Brush_Build( pCopy, false ); - return pCopy; + return pCopy; } -void CopySelected(char*& pBuffer) -{ - // expects one param - CString strParam = GetParam(pBuffer); - int n = atoi(strParam); - - brush_t* pCopy = NULL; - if (selected_brushes.next != &selected_brushes && - selected_brushes.next->next == &selected_brushes) - pCopy = selected_brushes.next; - - if (pCopy) - { - if (n == 1) - { - //if (g_pHold1) - //Brush_Free(g_pHold1); - g_pHold1 = CopyBrush(pCopy); - } - else if (n == 2) - { - //if (g_pHold2) - //Brush_Free(g_pHold2); - g_pHold2 = CopyBrush(pCopy); - } - else - { - //if (g_pHold3) - //Brush_Free(g_pHold3); - g_pHold3 = CopyBrush(pCopy); - } - } +void CopySelected( char*& pBuffer ){ + // expects one param + CString strParam = GetParam( pBuffer ); + int n = atoi( strParam ); + + brush_t* pCopy = NULL; + if ( selected_brushes.next != &selected_brushes && + selected_brushes.next->next == &selected_brushes ) { + pCopy = selected_brushes.next; + } + + if ( pCopy ) { + if ( n == 1 ) { + //if (g_pHold1) + //Brush_Free(g_pHold1); + g_pHold1 = CopyBrush( pCopy ); + } + else if ( n == 2 ) { + //if (g_pHold2) + //Brush_Free(g_pHold2); + g_pHold2 = CopyBrush( pCopy ); + } + else + { + //if (g_pHold3) + //Brush_Free(g_pHold3); + g_pHold3 = CopyBrush( pCopy ); + } + } } -void MoveSelected(char*& pBuffer) -{ - vec3_t v; - CString strParam = GetParam(pBuffer); - v[0] = atof(strParam); - strParam = GetParam(pBuffer); - v[1] = atof(strParam); - strParam = GetParam(pBuffer); - v[2] = atof(strParam); - Select_Move(v, false); - Sys_UpdateWindows(W_ALL); +void MoveSelected( char*& pBuffer ){ + vec3_t v; + CString strParam = GetParam( pBuffer ); + v[0] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[1] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[2] = atof( strParam ); + Select_Move( v, false ); + Sys_UpdateWindows( W_ALL ); } -void RotateSelected(char*& pBuffer) -{ - vec3_t v; - - if (g_bRotateAroundSelection) - { - Select_GetTrueMid(v); - VectorCopy(v, g_pParentWnd->ActiveXY()->RotateOrigin()); - } - - CString strParam = GetParam(pBuffer); - v[0] = atof(strParam); - strParam = GetParam(pBuffer); - v[1] = atof(strParam); - strParam = GetParam(pBuffer); - v[2] = atof(strParam); - for (int i = 0; i < 3; i++) - if (v[i] != 0.0) - Select_RotateAxis(i, v[i], false , true); - Sys_UpdateWindows(W_ALL); +void RotateSelected( char*& pBuffer ){ + vec3_t v; + + if ( g_bRotateAroundSelection ) { + Select_GetTrueMid( v ); + VectorCopy( v, g_pParentWnd->ActiveXY()->RotateOrigin() ); + } + + CString strParam = GetParam( pBuffer ); + v[0] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[1] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[2] = atof( strParam ); + for ( int i = 0; i < 3; i++ ) + if ( v[i] != 0.0 ) { + Select_RotateAxis( i, v[i], false, true ); + } + Sys_UpdateWindows( W_ALL ); } -void MoveHold(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - brush_t* pBrush = NULL; - int nHold = atoi(strParam); - if (nHold == 1) - pBrush = g_pHold1; - else if (nHold == 2) - pBrush = g_pHold2; - else - pBrush = g_pHold3; - - if (pBrush) - { - vec3_t v; - strParam = GetParam(pBuffer); - v[0] = atof(strParam); - strParam = GetParam(pBuffer); - v[1] = atof(strParam); - strParam = GetParam(pBuffer); - v[2] = atof(strParam); - Brush_Move (pBrush, v, false); - } +void MoveHold( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + brush_t* pBrush = NULL; + int nHold = atoi( strParam ); + if ( nHold == 1 ) { + pBrush = g_pHold1; + } + else if ( nHold == 2 ) { + pBrush = g_pHold2; + } + else{ + pBrush = g_pHold3; + } + + if ( pBrush ) { + vec3_t v; + strParam = GetParam( pBuffer ); + v[0] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[1] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[2] = atof( strParam ); + Brush_Move( pBrush, v, false ); + } } -void RotateHold(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - brush_t* pBrush = NULL; - int nHold = atoi(strParam); - if (nHold == 1) - pBrush = g_pHold1; - else if (nHold == 2) - pBrush = g_pHold2; - else - pBrush = g_pHold3; - - if (pBrush) - { - vec3_t v; - strParam = GetParam(pBuffer); - v[0] = atof(strParam); - strParam = GetParam(pBuffer); - v[1] = atof(strParam); - strParam = GetParam(pBuffer); - v[2] = atof(strParam); - for (int i = 0; i < 3; i++) - if (v[i] != 0.0) - Select_RotateAxis(i, v[i]); - } +void RotateHold( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + brush_t* pBrush = NULL; + int nHold = atoi( strParam ); + if ( nHold == 1 ) { + pBrush = g_pHold1; + } + else if ( nHold == 2 ) { + pBrush = g_pHold2; + } + else{ + pBrush = g_pHold3; + } + + if ( pBrush ) { + vec3_t v; + strParam = GetParam( pBuffer ); + v[0] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[1] = atof( strParam ); + strParam = GetParam( pBuffer ); + v[2] = atof( strParam ); + for ( int i = 0; i < 3; i++ ) + if ( v[i] != 0.0 ) { + Select_RotateAxis( i, v[i] ); + } + } } -void CopyToMap(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - brush_t* pBrush = NULL; - int nHold = atoi(strParam); - if (nHold == 1) - pBrush = g_pHold1; - else if (nHold == 2) - pBrush = g_pHold2; - else - pBrush = g_pHold3; - - if (pBrush) - { - Brush_AddToList(pBrush, &active_brushes); - Entity_LinkBrush (world_entity, pBrush); - Brush_Build(pBrush, false); - - Sys_UpdateWindows(W_ALL); - } +void CopyToMap( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + brush_t* pBrush = NULL; + int nHold = atoi( strParam ); + if ( nHold == 1 ) { + pBrush = g_pHold1; + } + else if ( nHold == 2 ) { + pBrush = g_pHold2; + } + else{ + pBrush = g_pHold3; + } + + if ( pBrush ) { + Brush_AddToList( pBrush, &active_brushes ); + Entity_LinkBrush( world_entity, pBrush ); + Brush_Build( pBrush, false ); + + Sys_UpdateWindows( W_ALL ); + } } -void CopyAndSelect(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - brush_t* pBrush = NULL; - int nHold = atoi(strParam); - if (nHold == 1) - pBrush = g_pHold1; - else if (nHold == 2) - pBrush = g_pHold2; - else - pBrush = g_pHold3; - - if (pBrush) - { - Select_Deselect(); - Brush_AddToList(pBrush, &active_brushes); - Entity_LinkBrush (world_entity, pBrush); - Brush_Build(pBrush, false); - - Select_Brush(pBrush); - Sys_UpdateWindows(W_ALL); - } +void CopyAndSelect( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + brush_t* pBrush = NULL; + int nHold = atoi( strParam ); + if ( nHold == 1 ) { + pBrush = g_pHold1; + } + else if ( nHold == 2 ) { + pBrush = g_pHold2; + } + else{ + pBrush = g_pHold3; + } + + if ( pBrush ) { + Select_Deselect(); + Brush_AddToList( pBrush, &active_brushes ); + Entity_LinkBrush( world_entity, pBrush ); + Brush_Build( pBrush, false ); + + Select_Brush( pBrush ); + Sys_UpdateWindows( W_ALL ); + } } -void Input(char*& pBuffer) -{ - bool bGo = false; - const char *fields[5] = { "", "", "", "", "" }; - float values[5]; - - for (int n = 0; n < g_nVariableCount; n++) - { - if (g_Variables[n].m_strInput.GetLength() > 0) - { - bGo = true; - if (n < 5) - { - switch (n) - { - case 0 : fields[1] = g_Variables[n].m_strInput.GetBuffer (); break; - case 1 : fields[2] = g_Variables[n].m_strInput.GetBuffer (); break; - case 2 : fields[3] = g_Variables[n].m_strInput.GetBuffer (); break; - case 3 : fields[4] = g_Variables[n].m_strInput.GetBuffer (); break; - case 4 : fields[5] = g_Variables[n].m_strInput.GetBuffer (); break; - } - } - } - } - - if (bGo) - { - if (DoBSInputDlg (fields, values) == IDOK) - { - for (int n = 0; n < g_nVariableCount; n++) - { - if (g_Variables[n].m_strInput.GetLength() > 0) - { - if (n < 5) - { - switch (n) - { - case 0 : g_Variables[n].m_fValue = values[1]; break; - case 1 : g_Variables[n].m_fValue = values[2]; break; - case 2 : g_Variables[n].m_fValue = values[3]; break; - case 3 : g_Variables[n].m_fValue = values[4]; break; - case 4 : g_Variables[n].m_fValue = values[5]; break; - } - } - } - } - } - else g_bKeepGoing = false; - } +void Input( char*& pBuffer ){ + bool bGo = false; + const char *fields[5] = { "", "", "", "", "" }; + float values[5]; + + for ( int n = 0; n < g_nVariableCount; n++ ) + { + if ( g_Variables[n].m_strInput.GetLength() > 0 ) { + bGo = true; + if ( n < 5 ) { + switch ( n ) + { + case 0: fields[1] = g_Variables[n].m_strInput.GetBuffer(); break; + case 1: fields[2] = g_Variables[n].m_strInput.GetBuffer(); break; + case 2: fields[3] = g_Variables[n].m_strInput.GetBuffer(); break; + case 3: fields[4] = g_Variables[n].m_strInput.GetBuffer(); break; + case 4: fields[5] = g_Variables[n].m_strInput.GetBuffer(); break; + } + } + } + } + + if ( bGo ) { + if ( DoBSInputDlg( fields, values ) == IDOK ) { + for ( int n = 0; n < g_nVariableCount; n++ ) + { + if ( g_Variables[n].m_strInput.GetLength() > 0 ) { + if ( n < 5 ) { + switch ( n ) + { + case 0: g_Variables[n].m_fValue = values[1]; break; + case 1: g_Variables[n].m_fValue = values[2]; break; + case 2: g_Variables[n].m_fValue = values[3]; break; + case 3: g_Variables[n].m_fValue = values[4]; break; + case 4: g_Variables[n].m_fValue = values[5]; break; + } + } + } + } + } + else{ g_bKeepGoing = false; } + } } bool g_bWaiting; -void _3DPointDone(bool b, int n) -{ - g_bWaiting = false; +void _3DPointDone( bool b, int n ){ + g_bWaiting = false; } -void _3DPointInput(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - CString strParam2 = GetParam(pBuffer); - ShowInfoDialog(strParam2); - AddVectorVariable(strParam, strParam2); - g_bWaiting = true; - AcquirePath(2, &_3DPointDone); - while (g_bWaiting) - gtk_main_iteration (); - HideInfoDialog(); - SetVectorVariableValue(strParam, g_PathPoints[0]); +void _3DPointInput( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + CString strParam2 = GetParam( pBuffer ); + ShowInfoDialog( strParam2 ); + AddVectorVariable( strParam, strParam2 ); + g_bWaiting = true; + AcquirePath( 2, &_3DPointDone ); + while ( g_bWaiting ) + gtk_main_iteration(); + HideInfoDialog(); + SetVectorVariableValue( strParam, g_PathPoints[0] ); } -void SetRotateOrigin(char*& pBuffer) -{ - vec3_t v; - CString strParam = GetParam(pBuffer); - VectorVariableValue(strParam, v); - VectorCopy(v, g_pParentWnd->ActiveXY()->RotateOrigin()); - g_bRotateAroundSelection = false; +void SetRotateOrigin( char*& pBuffer ){ + vec3_t v; + CString strParam = GetParam( pBuffer ); + VectorVariableValue( strParam, v ); + VectorCopy( v, g_pParentWnd->ActiveXY()->RotateOrigin() ); + g_bRotateAroundSelection = false; } -void InputVar(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - CString strParam2 = GetParam(pBuffer); - AddVariable(strParam, 0.0, strParam2); +void InputVar( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + CString strParam2 = GetParam( pBuffer ); + AddVariable( strParam, 0.0, strParam2 ); } -void LoopCount(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - g_nLoopCounter = atoi(strParam); - if (g_nLoopCounter == 0) - g_nLoopCounter = (int)VariableValue(strParam); - if (g_nLoopCounter > 0) - g_pLooper = pBuffer; +void LoopCount( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + g_nLoopCounter = atoi( strParam ); + if ( g_nLoopCounter == 0 ) { + g_nLoopCounter = (int)VariableValue( strParam ); + } + if ( g_nLoopCounter > 0 ) { + g_pLooper = pBuffer; + } } -void LoopRun(char*& pBuffer) -{ - if (g_bStartLoop == true) - { - g_nLoopCounter--; - if (g_nLoopCounter == 0) - { - g_bStartLoop = false; - GetParam(pBuffer); - } - else - pBuffer = g_pLooper; - } - else - { - if (g_pLooper && g_nLoopCounter > 0) - { - g_bStartLoop = true; - pBuffer = g_pLooper; - } - else - { - GetParam(pBuffer); - } - } +void LoopRun( char*& pBuffer ){ + if ( g_bStartLoop == true ) { + g_nLoopCounter--; + if ( g_nLoopCounter == 0 ) { + g_bStartLoop = false; + GetParam( pBuffer ); + } + else{ + pBuffer = g_pLooper; + } + } + else + { + if ( g_pLooper && g_nLoopCounter > 0 ) { + g_bStartLoop = true; + pBuffer = g_pLooper; + } + else + { + GetParam( pBuffer ); + } + } } -void ConfirmMessage(char*& pBuffer) -{ - CString strParam = GetParam(pBuffer); - if (gtk_MessageBox(g_pParentWnd->m_pWidget, strParam, "Script Info", MB_OKCANCEL) == IDCANCEL) - g_bKeepGoing = false; +void ConfirmMessage( char*& pBuffer ){ + CString strParam = GetParam( pBuffer ); + if ( gtk_MessageBox( g_pParentWnd->m_pWidget, strParam, "Script Info", MB_OKCANCEL ) == IDCANCEL ) { + g_bKeepGoing = false; + } } -void Spherize(char*& pBuffer) -{ - g_bScreenUpdates = false; - for (int n = 0; n < 120; n += 36) - { - for (int i = 0; i < 360; i += 36) - { - Select_RotateAxis(0, i, false , true); - CSG_Subtract(); - } - Select_RotateAxis(2, n, false , true); - } - g_bScreenUpdates = true; +void Spherize( char*& pBuffer ){ + g_bScreenUpdates = false; + for ( int n = 0; n < 120; n += 36 ) + { + for ( int i = 0; i < 360; i += 36 ) + { + Select_RotateAxis( 0, i, false, true ); + CSG_Subtract(); + } + Select_RotateAxis( 2, n, false, true ); + } + g_bScreenUpdates = true; } -void RunIt(char*& pBuffer); +void RunIt( char*& pBuffer ); SBrushScript g_ScriptCmds[] = { - {"_CopySelected", &CopySelected}, - {"_MoveSelected", &MoveSelected}, - {"_RotateSelected", &RotateSelected}, - {"_MoveHold", &MoveHold}, - {"_RotateHold", &RotateHold}, - {"_CopyToMap", &CopyToMap}, - {"_CopyAndSelect", &CopyAndSelect}, - {"_Input", &Input}, - {"_3DPointInput", &_3DPointInput}, - {"_SetRotateOrigin", &SetRotateOrigin}, - {"_InputVar", &InputVar}, - {"_LoopCount", &LoopCount}, - {"_LoopRun", &LoopRun}, - {"_ConfirmMessage", &ConfirmMessage}, - {"_Spherize", &Spherize}, - {"_RunScript", RunIt} + {"_CopySelected", &CopySelected}, + {"_MoveSelected", &MoveSelected}, + {"_RotateSelected", &RotateSelected}, + {"_MoveHold", &MoveHold}, + {"_RotateHold", &RotateHold}, + {"_CopyToMap", &CopyToMap}, + {"_CopyAndSelect", &CopyAndSelect}, + {"_Input", &Input}, + {"_3DPointInput", &_3DPointInput}, + {"_SetRotateOrigin", &SetRotateOrigin}, + {"_InputVar", &InputVar}, + {"_LoopCount", &LoopCount}, + {"_LoopRun", &LoopRun}, + {"_ConfirmMessage", &ConfirmMessage}, + {"_Spherize", &Spherize}, + {"_RunScript", RunIt} }; -const int g_nScriptCmdCount = sizeof(g_ScriptCmds) / sizeof(SBrushScript); +const int g_nScriptCmdCount = sizeof( g_ScriptCmds ) / sizeof( SBrushScript ); -void RunScript(char* pBuffer) -{ - g_pHold1 = NULL; - g_pHold2 = NULL; - g_pHold3 = NULL; - - while (g_bKeepGoing && pBuffer && *pBuffer) - { - while (*pBuffer != (char)NULL && *pBuffer != '_') - pBuffer++; - - char* pTemp = pBuffer; - int nLen = 0; - while (*pTemp != (char)NULL && *pTemp != '(') - { - pTemp++; - nLen++; - } - if (*pBuffer != (char)NULL) - { - bool bFound = false; - for (int i = 0; i < g_nScriptCmdCount; i++) - { - //if (strnicmp(g_ScriptCmds[i].m_pName, pBuffer, strlen(g_ScriptCmds[i].m_pName)) == 0) - if (strnicmp(g_ScriptCmds[i].m_pName, pBuffer, nLen) == 0) - { - pBuffer += strlen(g_ScriptCmds[i].m_pName); - g_ScriptCmds[i].m_pProc(pBuffer); - if (g_bStartLoop) - { - } - bFound = true; - break; - } - } - if (!bFound) - pBuffer++; - } - } +void RunScript( char* pBuffer ){ + g_pHold1 = NULL; + g_pHold2 = NULL; + g_pHold3 = NULL; + + while ( g_bKeepGoing && pBuffer && *pBuffer ) + { + while ( *pBuffer != (char)NULL && *pBuffer != '_' ) + pBuffer++; + + char* pTemp = pBuffer; + int nLen = 0; + while ( *pTemp != (char)NULL && *pTemp != '(' ) + { + pTemp++; + nLen++; + } + if ( *pBuffer != (char)NULL ) { + bool bFound = false; + for ( int i = 0; i < g_nScriptCmdCount; i++ ) + { + //if (strnicmp(g_ScriptCmds[i].m_pName, pBuffer, strlen(g_ScriptCmds[i].m_pName)) == 0) + if ( strnicmp( g_ScriptCmds[i].m_pName, pBuffer, nLen ) == 0 ) { + pBuffer += strlen( g_ScriptCmds[i].m_pName ); + g_ScriptCmds[i].m_pProc( pBuffer ); + if ( g_bStartLoop ) { + } + bFound = true; + break; + } + } + if ( !bFound ) { + pBuffer++; + } + } + } } -void RunScriptByName(char* pBuffer, bool bInit) -{ - if (bInit) - InitForScriptRun(); - char* pScript = new char[4096]; - CString strINI; - strINI = g_strGameToolsPath; - strINI += "/scripts.ini"; - CString strScript; - FILE *f; - - f = fopen (strINI.GetBuffer(), "rt"); - if (f != NULL) - { - char line[1024], *ptr; - - // read section names - while (fgets (line, 1024, f) != 0) - { - if (line[0] != '[') - continue; - - ptr = strchr (line, ']'); - *ptr = '\0'; - - if (strcmp (line, pScript) == 0) - { - while (fgets (line, 1024, f) != 0) - { - if ((strchr (line, '=') == NULL) || - strlen (line) == 0) - break; - strScript += line; - } - break; - } - } - fclose (f); - } - RunScript((char*)strScript.GetBuffer()); +void RunScriptByName( char* pBuffer, bool bInit ){ + if ( bInit ) { + InitForScriptRun(); + } + char* pScript = new char[4096]; + CString strINI; + strINI = g_strGameToolsPath; + strINI += "/scripts.ini"; + CString strScript; + FILE *f; + + f = fopen( strINI.GetBuffer(), "rt" ); + if ( f != NULL ) { + char line[1024], *ptr; + + // read section names + while ( fgets( line, 1024, f ) != 0 ) + { + if ( line[0] != '[' ) { + continue; + } + + ptr = strchr( line, ']' ); + *ptr = '\0'; + + if ( strcmp( line, pScript ) == 0 ) { + while ( fgets( line, 1024, f ) != 0 ) + { + if ( ( strchr( line, '=' ) == NULL ) || + strlen( line ) == 0 ) { + break; + } + strScript += line; + } + break; + } + } + fclose( f ); + } + RunScript( (char*)strScript.GetBuffer() ); } -void RunIt(char*& pBuffer) -{ - brush_t* p1 = g_pHold1; - brush_t* p2 = g_pHold2; - brush_t* p3 = g_pHold3; +void RunIt( char*& pBuffer ){ + brush_t* p1 = g_pHold1; + brush_t* p2 = g_pHold2; + brush_t* p3 = g_pHold3; - CString strParam = GetParam(pBuffer); - RunScriptByName((char*)strParam.GetBuffer(), false); + CString strParam = GetParam( pBuffer ); + RunScriptByName( (char*)strParam.GetBuffer(), false ); - g_pHold3 = p3; - g_pHold2 = p2; - g_pHold1 = p1; + g_pHold3 = p3; + g_pHold2 = p2; + g_pHold1 = p1; } -