double WaveLength;
double Hll, Hur, Vll, Vur;
double Z00, Z01, Z10, Z11;
-ELEMENT Vertex[( MAX_ROWS + 1 ) * ( MAX_ROWS + 1 )];
+ELEMENT Vertex[(MAX_ROWS + 1) * (MAX_ROWS + 1)];
int AddHints;
int ArghRad2;
int AutoOverwrite;
*/GtkWidget *g_pWndPreview;
GtkWidget *g_pPreviewWidget;
MYBITMAP gbmp;
-NODE *gNode = (NODE *)NULL;
-TRI *gTri = (TRI *)NULL;
+NODE *gNode = (NODE *) NULL;
+TRI *gTri = (TRI *) NULL;
int Game;
-bounding_box PlayerBox[NUMGAMES] = { {{-16., 16.}, {-16., 16.}, {-24., 32.}}, // Quake2
- {{-16., 16.}, {-16., 16.}, {-36., 36.}}, // Half-Life
- {{-16., 16.}, {-16., 16.}, {-32., 32.}}, // SiN
- {{-16., 16.}, {-16., 16.}, {-24., 32.}}, // Heretic2 (guess)
- {{-16., 16.}, {-16., 16.}, {-24., 32.}}, // KingPin (guess)
- {{-30., 30.}, {-30., 30.}, {-10.,160.}}, // Genesis3D (no idea)
- {{-16., 16.}, {-16., 16.}, {-24., 32.}}}; // Quake3 (not sure)
+bounding_box PlayerBox[NUMGAMES] = {{{-16., 16.}, {-16., 16.}, {-24., 32.}}, // Quake2
+ {{-16., 16.}, {-16., 16.}, {-36., 36.}}, // Half-Life
+ {{-16., 16.}, {-16., 16.}, {-32., 32.}}, // SiN
+ {{-16., 16.}, {-16., 16.}, {-24., 32.}}, // Heretic2 (guess)
+ {{-16., 16.}, {-16., 16.}, {-24., 32.}}, // KingPin (guess)
+ {{-30., 30.}, {-30., 30.}, {-10., 160.}}, // Genesis3D (no idea)
+ {{-16., 16.}, {-16., 16.}, {-24., 32.}}}; // Quake3 (not sure)
//char gszOutputDir[NUMGAMES][NAME_MAX];
//char gszTextureDir[NUMGAMES][NAME_MAX];
char Texture[NUMGAMES][3][64];
//int UsePak[NUMGAMES];
//char GameDir[NUMGAMES][NAME_MAX];
-char GameName[NUMGAMES][16] = {"Quake2", "Half-Life", "SiN", "Heretic2", "Kingpin", "Genesis3D", "Quake3" };
+char GameName[NUMGAMES][16] = {"Quake2", "Half-Life", "SiN", "Heretic2", "Kingpin", "Genesis3D", "Quake3"};
-bool GenSurfInit(){
- strcpy( gszVersion, "1.05" );
- strcpy( gszCaption, "GtkGenSurf" );
- if ( strlen( gszVersion ) ) {
- strcat( gszCaption, " v" );
- strcat( gszCaption, gszVersion );
- }
+bool GenSurfInit()
+{
+ strcpy(gszVersion, "1.05");
+ strcpy(gszCaption, "GtkGenSurf");
+ if (strlen(gszVersion)) {
+ strcat(gszCaption, " v");
+ strcat(gszCaption, gszVersion);
+ }
- strcpy( gszIni, g_FuncTable.m_pfnProfileGetDirectory() );
- strcat( gszIni, "gensurf.ini" );
+ strcpy(gszIni, g_FuncTable.m_pfnProfileGetDirectory());
+ strcat(gszIni, "gensurf.ini");
/*if (g_FuncTable.m_pfnReadProjectKey != NULL)
{
Game = QUAKE3;
}
else */
- Game = QUAKE3;
+ Game = QUAKE3;
- if ( g_pWnd == NULL ) {
- g_pWnd = create_main_dialog();
- }
+ if (g_pWnd == NULL) {
+ g_pWnd = create_main_dialog();
+ }
- ReadIniFile( gszIni );
+ ReadIniFile(gszIni);
- return true;
+ return true;
}
// Reads default values
#define OPTS_SECTION "Options"
-void ReadIniFile( const char *file ){
- char *Text;
- float x1,x2,x3,x4;
- int i;
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "Amplitude", "" );
- if ( strlen( Text ) ) {
- Amplitude = atof( Text );
- }
- else{
- Amplitude = 128;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "Roughness", "" );
- if ( strlen( Text ) ) {
- Roughness = atof( Text );
- }
- else{
- Roughness = 16;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "WaveLength", "" );
- if ( strlen( Text ) ) {
- WaveLength = atof( Text );
- }
- else{
- WaveLength = 1024;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "Extents", "" );
- if ( strlen( Text ) ) {
- sscanf( Text,"%f,%f,%f,%f",&x1,&x2,&x3,&x4 );
- Hll = x1;
- Vll = x2;
- Hur = x3;
- Vur = x4;
- }
- else
- {
- Hll = -512;
- Vll = -512;
- Hur = 512;
- Vur = 512;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "CornerValues", "" );
- if ( strlen( Text ) ) {
- sscanf( Text,"%f,%f,%f,%f",&x1,&x2,&x3,&x4 );
- Z00 = x1;
- Z01 = x2;
- Z10 = x3;
- Z11 = x4;
- }
- else
- {
- Z00 = 0.;
- Z01 = 0.;
- Z10 = 0.;
- Z11 = 0.;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION, "TextureOffset", "" );
- if ( strlen( Text ) ) {
- sscanf( Text,"%f,%f",&x1,&x2 );
- TexOffset[0] = x1;
- TexOffset[1] = x2;
- }
- else
- {
- TexOffset[0] = 0.;
- TexOffset[1] = 0.;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, OPTS_SECTION,"TextureScale","" );
- if ( strlen( Text ) ) {
- sscanf( Text,"%f,%f",&x1,&x2 );
- TexScale[0] = x1;
- TexScale[1] = x2;
- if ( TexScale[0] == 0. ) {
- TexScale[0] = 1.0;
- }
- if ( TexScale[1] == 0. ) {
- TexScale[1] = 1.0;
- }
- }
- else
- {
- TexScale[0] = 1.;
- TexScale[1] = 1.;
- }
-
- NH = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"NH",8 );
- NH = max( 1,min( NH,MAX_ROWS ) );
- NV = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"NV",8 );
- NV = max( 1,min( NV,MAX_ROWS ) );
+void ReadIniFile(const char *file)
+{
+ char *Text;
+ float x1, x2, x3, x4;
+ int i;
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "Amplitude", "");
+ if (strlen(Text)) {
+ Amplitude = atof(Text);
+ } else {
+ Amplitude = 128;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "Roughness", "");
+ if (strlen(Text)) {
+ Roughness = atof(Text);
+ } else {
+ Roughness = 16;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "WaveLength", "");
+ if (strlen(Text)) {
+ WaveLength = atof(Text);
+ } else {
+ WaveLength = 1024;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "Extents", "");
+ if (strlen(Text)) {
+ sscanf(Text, "%f,%f,%f,%f", &x1, &x2, &x3, &x4);
+ Hll = x1;
+ Vll = x2;
+ Hur = x3;
+ Vur = x4;
+ } else {
+ Hll = -512;
+ Vll = -512;
+ Hur = 512;
+ Vur = 512;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "CornerValues", "");
+ if (strlen(Text)) {
+ sscanf(Text, "%f,%f,%f,%f", &x1, &x2, &x3, &x4);
+ Z00 = x1;
+ Z01 = x2;
+ Z10 = x3;
+ Z11 = x4;
+ } else {
+ Z00 = 0.;
+ Z01 = 0.;
+ Z10 = 0.;
+ Z11 = 0.;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "TextureOffset", "");
+ if (strlen(Text)) {
+ sscanf(Text, "%f,%f", &x1, &x2);
+ TexOffset[0] = x1;
+ TexOffset[1] = x2;
+ } else {
+ TexOffset[0] = 0.;
+ TexOffset[1] = 0.;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, OPTS_SECTION, "TextureScale", "");
+ if (strlen(Text)) {
+ sscanf(Text, "%f,%f", &x1, &x2);
+ TexScale[0] = x1;
+ TexScale[1] = x2;
+ if (TexScale[0] == 0.) {
+ TexScale[0] = 1.0;
+ }
+ if (TexScale[1] == 0.) {
+ TexScale[1] = 1.0;
+ }
+ } else {
+ TexScale[0] = 1.;
+ TexScale[1] = 1.;
+ }
+
+ NH = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "NH", 8);
+ NH = max(1, min(NH, MAX_ROWS));
+ NV = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "NV", 8);
+ NV = max(1, min(NV, MAX_ROWS));
// Decimate = GetPrivateProfileInt(OPTS_SECTION,"Decimate",0,file);
// Decimate = max(0,min(Decimate,100));
- AddHints = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"AddHints",0 );
- ArghRad2 = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"ArghRad2",0 );
- AutoOverwrite = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"AutoOverwrite",0 );
- FixBorders = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"FixBorders",1 );
- HideBackFaces = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"HideBackFaces",0 );
- Plane = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"Plane",0 );
- Preview = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"Preview", 0 );
- Antialiasing = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"Antialiasing",0 ); // ^Fishman - Antializing for the preview window.
- RandomSeed = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"RandomSeed",1 );
- Skybox = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"Skybox",0 );
- UseDetail = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"UseDetail",0 );
- AddTerrainKey = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"AddTerrainKey",0 ); // ^Fishman - Add terrain key to func_group.
- UseLadder = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"UseLadder",0 );
- WaveType = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"WaveType",0 );
- vid_x = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"vid_x", 0 );
- vid_y = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"vid_y", 0 );
- view_x = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"view_x",0 );
- view_y = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"view_y",0 );
- view_cx = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"view_cx",0 );
- view_cy = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"view_cy",0 );
-
- UsePatches = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"UsePatches",0 );
-
- SlantAngle = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"SlantAngle",60 );
- GimpHints = g_FuncTable.m_pfnProfileLoadInt( file, OPTS_SECTION,"GimpHints",0 );
-
- for ( i = 0; i < NUMGAMES; i++ )
- {
- // strcpy (gszOutputDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"OutputDir",""));
- strcpy( Texture[i][0], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture", "" ) );
- strcpy( Texture[i][1], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture2", "" ) );
- strcpy( Texture[i][2], g_FuncTable.m_pfnProfileLoadString( file, GameName[i], "Texture3", "" ) );
- // strcpy (gszTextureDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"TextureDir",""));
- // UsePak[i] = GetPrivateProfileInt(GameName[i],"UsePak",0);
- // strcpy (pakfile[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"PakFile",""));
- // strcpy (lastpakfile[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"LastPakFile",""));
- // strcpy (GameDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"GameDir","\0"));
- }
- /*
- if(!strlen(gszTextureDir[QUAKE2]))
- strcpy(gszTextureDir[QUAKE2],"c:\\quake2\\baseq2\\textures\\");
- if(!strlen(gszTextureDir[KINGPIN]))
- strcpy(gszTextureDir[KINGPIN],"c:\\kingpin\\main\\textures\\");
- */
- if ( !strlen( Texture[QUAKE2][0] ) ) {
- strcpy( Texture[QUAKE2][0], "textures/e1u1/grass1_4" );
- }
- if ( !strlen( Texture[HALFLIFE][0] ) ) {
- strcpy( Texture[HALFLIFE][0], "textures/OUT_GRND1" );
- }
- if ( !strlen( Texture[SIN][0] ) ) {
- strcpy( Texture[SIN][0], "textures/generic/floor_organic/fl_grass" );
- }
- if ( !strlen( Texture[HERETIC2][0] ) ) {
- strcpy( Texture[HERETIC2][0], "textures/canyon/canyon05" );
- }
- if ( !strlen( Texture[KINGPIN][0] ) ) {
- strcpy( Texture[KINGPIN][0], "textures/bricks/s_sr_m3" );
- }
- if ( !strlen( Texture[GENESIS3D][0] ) ) {
- strcpy( Texture[GENESIS3D][0],"textures/rock13" );
- }
- if ( !strlen( Texture[QUAKE3][0] ) ) {
- strcpy( Texture[QUAKE3][0], "textures/organics/grass3" );
- }
- if ( !strlen( Texture[QUAKE3][1] ) ) {
- strcpy( Texture[QUAKE3][1], "textures/common/caulk" );
- }
- strcpy( gbmp.name, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","Filename","" ) );
-
-
- gbmp.colors = NULL;
- if ( strlen( gbmp.name ) ) {
- OpenBitmap();
- }
-
- strcpy( gbmp.defpath, g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","DefaultPath","" ) );
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","BlackValue","" );
- if ( strlen( Text ) ) {
- gbmp.black_value = atof( Text );
- }
- else{
- gbmp.black_value = 0;
- }
-
- Text = g_FuncTable.m_pfnProfileLoadString( file, "Bitmap","WhiteValue","" );
- if ( strlen( Text ) ) {
- gbmp.white_value = atof( Text );
- }
- else{
- gbmp.white_value = 256.;
- }
+ AddHints = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "AddHints", 0);
+ ArghRad2 = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "ArghRad2", 0);
+ AutoOverwrite = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "AutoOverwrite", 0);
+ FixBorders = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "FixBorders", 1);
+ HideBackFaces = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "HideBackFaces", 0);
+ Plane = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "Plane", 0);
+ Preview = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "Preview", 0);
+ Antialiasing = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "Antialiasing",
+ 0); // ^Fishman - Antializing for the preview window.
+ RandomSeed = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "RandomSeed", 1);
+ Skybox = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "Skybox", 0);
+ UseDetail = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "UseDetail", 0);
+ AddTerrainKey = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "AddTerrainKey",
+ 0); // ^Fishman - Add terrain key to func_group.
+ UseLadder = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "UseLadder", 0);
+ WaveType = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "WaveType", 0);
+ vid_x = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "vid_x", 0);
+ vid_y = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "vid_y", 0);
+ view_x = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "view_x", 0);
+ view_y = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "view_y", 0);
+ view_cx = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "view_cx", 0);
+ view_cy = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "view_cy", 0);
+
+ UsePatches = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "UsePatches", 0);
+
+ SlantAngle = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "SlantAngle", 60);
+ GimpHints = g_FuncTable.m_pfnProfileLoadInt(file, OPTS_SECTION, "GimpHints", 0);
+
+ for (i = 0; i < NUMGAMES; i++) {
+ // strcpy (gszOutputDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"OutputDir",""));
+ strcpy(Texture[i][0], g_FuncTable.m_pfnProfileLoadString(file, GameName[i], "Texture", ""));
+ strcpy(Texture[i][1], g_FuncTable.m_pfnProfileLoadString(file, GameName[i], "Texture2", ""));
+ strcpy(Texture[i][2], g_FuncTable.m_pfnProfileLoadString(file, GameName[i], "Texture3", ""));
+ // strcpy (gszTextureDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"TextureDir",""));
+ // UsePak[i] = GetPrivateProfileInt(GameName[i],"UsePak",0);
+ // strcpy (pakfile[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"PakFile",""));
+ // strcpy (lastpakfile[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"LastPakFile",""));
+ // strcpy (GameDir[i], g_FuncTable.m_pfnProfileLoadString (file, GameName[i],"GameDir","\0"));
+ }
+ /*
+ if(!strlen(gszTextureDir[QUAKE2]))
+ strcpy(gszTextureDir[QUAKE2],"c:\\quake2\\baseq2\\textures\\");
+ if(!strlen(gszTextureDir[KINGPIN]))
+ strcpy(gszTextureDir[KINGPIN],"c:\\kingpin\\main\\textures\\");
+ */
+ if (!strlen(Texture[QUAKE2][0])) {
+ strcpy(Texture[QUAKE2][0], "textures/e1u1/grass1_4");
+ }
+ if (!strlen(Texture[HALFLIFE][0])) {
+ strcpy(Texture[HALFLIFE][0], "textures/OUT_GRND1");
+ }
+ if (!strlen(Texture[SIN][0])) {
+ strcpy(Texture[SIN][0], "textures/generic/floor_organic/fl_grass");
+ }
+ if (!strlen(Texture[HERETIC2][0])) {
+ strcpy(Texture[HERETIC2][0], "textures/canyon/canyon05");
+ }
+ if (!strlen(Texture[KINGPIN][0])) {
+ strcpy(Texture[KINGPIN][0], "textures/bricks/s_sr_m3");
+ }
+ if (!strlen(Texture[GENESIS3D][0])) {
+ strcpy(Texture[GENESIS3D][0], "textures/rock13");
+ }
+ if (!strlen(Texture[QUAKE3][0])) {
+ strcpy(Texture[QUAKE3][0], "textures/organics/grass3");
+ }
+ if (!strlen(Texture[QUAKE3][1])) {
+ strcpy(Texture[QUAKE3][1], "textures/common/caulk");
+ }
+ strcpy(gbmp.name, g_FuncTable.m_pfnProfileLoadString(file, "Bitmap", "Filename", ""));
+
+
+ gbmp.colors = NULL;
+ if (strlen(gbmp.name)) {
+ OpenBitmap();
+ }
+
+ strcpy(gbmp.defpath, g_FuncTable.m_pfnProfileLoadString(file, "Bitmap", "DefaultPath", ""));
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, "Bitmap", "BlackValue", "");
+ if (strlen(Text)) {
+ gbmp.black_value = atof(Text);
+ } else {
+ gbmp.black_value = 0;
+ }
+
+ Text = g_FuncTable.m_pfnProfileLoadString(file, "Bitmap", "WhiteValue", "");
+ if (strlen(Text)) {
+ gbmp.white_value = atof(Text);
+ } else {
+ gbmp.white_value = 256.;
+ }
}
/*
FIXME: make this buffer size safe someday
============
*/
-char *va( const char *format, ... ){
- va_list argptr;
- static char string[1024];
+char *va(const char *format, ...)
+{
+ va_list argptr;
+ static char string[1024];
- va_start( argptr, format );
- vsprintf( string, format,argptr );
- va_end( argptr );
+ va_start(argptr, format);
+ vsprintf(string, format, argptr);
+ va_end(argptr);
- return string;
+ return string;
}
// Writes current values to INI file
-void WriteIniFile( const char *file ){
- int i;
-
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "Amplitude", va( "%g",Amplitude ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "Roughness", va( "%g",Roughness ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "WaveLength", va( "%g",WaveLength ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "Extents", va( "%g,%g,%g,%g",Hll,Vll,Hur,Vur ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "CornerValues", va( "%g,%g,%g,%g",Z00,Z01,Z10,Z11 ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "TextureOffset",va( "%g,%g",TexOffset[0],TexOffset[1] ) );
- g_FuncTable.m_pfnProfileSaveString( file, OPTS_SECTION, "TextureScale", va( "%g,%g",TexScale[0],TexScale[1] ) );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "NH", NH );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "NV", NV );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "AddHints", AddHints );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "ArghRad2", ArghRad2 );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "AutoOverwrite", AutoOverwrite );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "FixBorders", FixBorders );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "Plane", Plane );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "Preview", Preview );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "Antialiasing", Antialiasing ); // ^Fishman - Antializing for the preview window.
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "RandomSeed", RandomSeed );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "Skybox", Skybox );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "UseDetail", UseDetail );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "AddTerrainKey", AddTerrainKey ); // ^Fishman - Add terrain key to func_group.
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "UseLadder", UseLadder );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "WaveType", WaveType );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "vid_x", vid_x );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "vid_y", vid_y );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "view_x", view_x );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "view_y", view_y );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "view_cx", view_cx );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "view_cy", view_cy );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "UsePatches", UsePatches );
- g_FuncTable.m_pfnProfileSaveInt( file, OPTS_SECTION, "SlantAngle", SlantAngle );
- for ( i = 0; i < NUMGAMES; i++ )
- {
- g_FuncTable.m_pfnProfileSaveString( file, GameName[i], "Texture", Texture[i][0] );
- g_FuncTable.m_pfnProfileSaveString( file, GameName[i], "Texture2", Texture[i][1] );
- g_FuncTable.m_pfnProfileSaveString( file, GameName[i], "Texture3", Texture[i][2] );
- }
-
- g_FuncTable.m_pfnProfileSaveString( file, "Bitmap", "Filename", gbmp.name );
- g_FuncTable.m_pfnProfileSaveString( file, "Bitmap", "DefaultPath", gbmp.defpath );
- g_FuncTable.m_pfnProfileSaveString( file, "Bitmap", "BlackValue", va( "%g",gbmp.black_value ) );
- g_FuncTable.m_pfnProfileSaveString( file, "Bitmap", "WhiteValue", va( "%g",gbmp.white_value ) );
+void WriteIniFile(const char *file)
+{
+ int i;
+
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "Amplitude", va("%g", Amplitude));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "Roughness", va("%g", Roughness));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "WaveLength", va("%g", WaveLength));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "Extents", va("%g,%g,%g,%g", Hll, Vll, Hur, Vur));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "CornerValues", va("%g,%g,%g,%g", Z00, Z01, Z10, Z11));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "TextureOffset", va("%g,%g", TexOffset[0], TexOffset[1]));
+ g_FuncTable.m_pfnProfileSaveString(file, OPTS_SECTION, "TextureScale", va("%g,%g", TexScale[0], TexScale[1]));
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "NH", NH);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "NV", NV);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "AddHints", AddHints);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "ArghRad2", ArghRad2);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "AutoOverwrite", AutoOverwrite);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "FixBorders", FixBorders);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "Plane", Plane);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "Preview", Preview);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "Antialiasing",
+ Antialiasing); // ^Fishman - Antializing for the preview window.
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "RandomSeed", RandomSeed);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "Skybox", Skybox);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "UseDetail", UseDetail);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "AddTerrainKey",
+ AddTerrainKey); // ^Fishman - Add terrain key to func_group.
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "UseLadder", UseLadder);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "WaveType", WaveType);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "vid_x", vid_x);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "vid_y", vid_y);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "view_x", view_x);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "view_y", view_y);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "view_cx", view_cx);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "view_cy", view_cy);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "UsePatches", UsePatches);
+ g_FuncTable.m_pfnProfileSaveInt(file, OPTS_SECTION, "SlantAngle", SlantAngle);
+ for (i = 0; i < NUMGAMES; i++) {
+ g_FuncTable.m_pfnProfileSaveString(file, GameName[i], "Texture", Texture[i][0]);
+ g_FuncTable.m_pfnProfileSaveString(file, GameName[i], "Texture2", Texture[i][1]);
+ g_FuncTable.m_pfnProfileSaveString(file, GameName[i], "Texture3", Texture[i][2]);
+ }
+
+ g_FuncTable.m_pfnProfileSaveString(file, "Bitmap", "Filename", gbmp.name);
+ g_FuncTable.m_pfnProfileSaveString(file, "Bitmap", "DefaultPath", gbmp.defpath);
+ g_FuncTable.m_pfnProfileSaveString(file, "Bitmap", "BlackValue", va("%g", gbmp.black_value));
+ g_FuncTable.m_pfnProfileSaveString(file, "Bitmap", "WhiteValue", va("%g", gbmp.white_value));
//g_FuncTable.m_pfnProfileSaveString (file, "Formula", "Formula", ExcelFunc );
}
-void UpdatePreview( bool DataChange ){
- if ( g_pWndPreview && gtk_widget_get_visible( g_pWndPreview ) ) {
- if ( DataChange ) {
- GenerateXYZ();
- }
+void UpdatePreview(bool DataChange)
+{
+ if (g_pWndPreview && gtk_widget_get_visible(g_pWndPreview)) {
+ if (DataChange) {
+ GenerateXYZ();
+ }
- gtk_widget_draw( g_pPreviewWidget, NULL );
- }
+ gtk_widget_draw(g_pPreviewWidget, NULL);
+ }
}
-void SaveSetup( GtkWidget *parent ){
- const char *name = g_FuncTable.m_pfnFileDialog( parent, false, "Save GenSurf Settings",
- g_FuncTable.m_pfnProfileGetDirectory() );
-
- if ( name != NULL ) {
- char key[32], text[32];
- int i, j;
-
- WriteIniFile( name );
- g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"MapFile",gszMapFile );
- sprintf( text,"0x%04x",FileAppend );
- g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"Append",text );
- sprintf( text,"0x%04x",Decimate );
- g_FuncTable.m_pfnProfileSaveString( name, OPTS_SECTION,"Decimate",text );
- for ( i = 0; i <= NH; i++ )
- {
- for ( j = 0; j <= NV; j++ )
- {
- if ( xyz[i][j].fixed ) {
- sprintf( key,"I%dJ%d",i,j );
- sprintf( text,"%g %g %g", xyz[i][j].fixed_value, xyz[i][j].range, xyz[i][j].rate );
- g_FuncTable.m_pfnProfileSaveString( name, "FixedPoints",key,text );
- }
- }
- }
- }
+void SaveSetup(GtkWidget *parent)
+{
+ const char *name = g_FuncTable.m_pfnFileDialog(parent, false, "Save GenSurf Settings",
+ g_FuncTable.m_pfnProfileGetDirectory());
+
+ if (name != NULL) {
+ char key[32], text[32];
+ int i, j;
+
+ WriteIniFile(name);
+ g_FuncTable.m_pfnProfileSaveString(name, OPTS_SECTION, "MapFile", gszMapFile);
+ sprintf(text, "0x%04x", FileAppend);
+ g_FuncTable.m_pfnProfileSaveString(name, OPTS_SECTION, "Append", text);
+ sprintf(text, "0x%04x", Decimate);
+ g_FuncTable.m_pfnProfileSaveString(name, OPTS_SECTION, "Decimate", text);
+ for (i = 0; i <= NH; i++) {
+ for (j = 0; j <= NV; j++) {
+ if (xyz[i][j].fixed) {
+ sprintf(key, "I%dJ%d", i, j);
+ sprintf(text, "%g %g %g", xyz[i][j].fixed_value, xyz[i][j].range, xyz[i][j].rate);
+ g_FuncTable.m_pfnProfileSaveString(name, "FixedPoints", key, text);
+ }
+ }
+ }
+ }
}
-void OpenSetup( GtkWidget *parent, int UseDefaults ){
- const char *name;
- char key[32], *text;
- float value,range,rate;
- int i, j;
-
- if ( UseDefaults ) {
- name = g_strdup( "plugins/defaults.srf" ); // dummy string
- }
- else{
- name = g_FuncTable.m_pfnFileDialog( parent, true, "Open GenSurf Settings",
- g_FuncTable.m_pfnProfileGetDirectory() );
- }
-
- if ( name != NULL ) {
- ReadIniFile( name );
- Decimate = g_FuncTable.m_pfnProfileLoadInt( name, OPTS_SECTION,"Decimate",0 );
- Decimate = max( 0,min( Decimate,100 ) );
-
- for ( i = 0; i <= NH; i++ )
- {
- for ( j = 0; j <= NV; j++ )
- {
- sprintf( key,"I%dJ%d",i,j );
- text = g_FuncTable.m_pfnProfileLoadString( name, "FixedPoints", key, "" );
- if ( strlen( text ) ) {
- xyz[i][j].fixed = 1;
- xyz[i][j].rate = 0.;
- sscanf( text,"%g %g %g",&value,&range,&rate );
- xyz[i][j].fixed_value = value;
- xyz[i][j].range = range;
- xyz[i][j].rate = rate;
- }
- else{
- xyz[i][j].fixed = 0;
- }
- }
- }
- }
+void OpenSetup(GtkWidget *parent, int UseDefaults)
+{
+ const char *name;
+ char key[32], *text;
+ float value, range, rate;
+ int i, j;
+
+ if (UseDefaults) {
+ name = g_strdup("plugins/defaults.srf"); // dummy string
+ } else {
+ name = g_FuncTable.m_pfnFileDialog(parent, true, "Open GenSurf Settings",
+ g_FuncTable.m_pfnProfileGetDirectory());
+ }
+
+ if (name != NULL) {
+ ReadIniFile(name);
+ Decimate = g_FuncTable.m_pfnProfileLoadInt(name, OPTS_SECTION, "Decimate", 0);
+ Decimate = max(0, min(Decimate, 100));
+
+ for (i = 0; i <= NH; i++) {
+ for (j = 0; j <= NV; j++) {
+ sprintf(key, "I%dJ%d", i, j);
+ text = g_FuncTable.m_pfnProfileLoadString(name, "FixedPoints", key, "");
+ if (strlen(text)) {
+ xyz[i][j].fixed = 1;
+ xyz[i][j].rate = 0.;
+ sscanf(text, "%g %g %g", &value, &range, &rate);
+ xyz[i][j].fixed_value = value;
+ xyz[i][j].range = range;
+ xyz[i][j].rate = rate;
+ } else {
+ xyz[i][j].fixed = 0;
+ }
+ }
+ }
+ }
}