]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/brushscript.cpp
fix warning: array subscript is above array bounds
[xonotic/netradiant.git] / radiant / brushscript.cpp
index 68892fc2280f69e67ab666982e37b4a6c3888ea8..d056b56b52c24a6f53db3aaa1252af9cba4f2667 100644 (file)
@@ -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,470 @@ 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 < 5 && n < g_nVariableCount; n++ )
+       {
+               if ( g_Variables[n].m_strInput.GetLength() > 0 ) {
+                       bGo = true;
+                       fields[n] = g_Variables[n].m_strInput.GetBuffer();
+               }
+       }
+
+       if ( !bGo ) {
+               return;
+       }
+
+       if ( DoBSInputDlg( fields, values ) != IDOK ) {
+               g_bKeepGoing = false;
+               return;
+       }
+
+       for ( int n = 0; n < 5 && n < g_nVariableCount; n++ )
+       {
+               if ( g_Variables[n].m_strInput.GetLength() > 0 ) {
+                       g_Variables[n].m_fValue = values[n];
+               }
+       }
 }
 
 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;
 }
-