home *** CD-ROM | disk | FTP | other *** search
- /*
- QuakeGUI V1.0 (12th March 2000) © Martin McKenzie
- marty@cadtech.demon.co.uk
- http://www.cadtech.demon.co.uk/
-
- Designed for the Amiga Quake port of:
- Frank Wille frank@phoenix.owl.de
- Steffen Häuser magicsn@birdland.es.bawue.de
-
-
- This code has been released to the public as a demonstration of using, amongst
- other things:
- StormWizard interface, ENV: variables, tooltypes, etc...
- No guarantee is given to the correctness or efficiency of the code.
-
- Future possible updates:
- 1. Add menus; this will allow the user to "save as" the current
- configuration as an icon for later use (rather than using WB to
- copy the icon).
- 2. Enhance the tooltype read/save code to preserve "newicons" data
- if present.
- */
-
-
- /*
- Includes
- */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <exec/memory.h>
- #include <dos/dos.h>
- #include <dos/dostags.h>
- #ifdef __STORM__
- #include <pragma/wizard_lib.h>
- #else
- #include <clib/wizard_protos.h>
- #include <pragmas/wizard_pragmas.h>
- #endif
- #include <workbench/workbench.h>
- #include <workbench/startup.h>
- #ifdef __STORM__
- #include <wbstartup.h>
- #endif
- #include <intuition/gadgetclass.h>
- #include <intuition/intuition.h>
- #include <libraries/wizard.h>
- #include <pragma/dos_lib.h>
- #include <pragma/exec_lib.h>
- #include <pragma/intuition_lib.h>
- #include <pragma/utility_lib.h>
- #include <pragma/wizard_lib.h>
- #include <clib/icon_protos.h>
- #include "quakegui.h"
-
- /*
- Defines
- */
- //#define GUI_Debug // Set to enable (some) debug info
-
- #define MaxNoTooltypes 50
- #define TooltypeLength 128
-
- #ifdef __STORM__
- #define Storm_FixToolType (unsigned char *const*)
- #else
- #define Storm_FixToolType
- #endif
-
-
- /*
- Function Prototypes
- */
- void my_main (struct WBArg *, ULONG);
- BOOL CheckShowGUI(struct WBArg *, BOOL *);
- void BuildArgString(BOOL, struct WBArg *);
- void InitGadgets(struct WBArg *);
- void DisableChunkyGads(void);
- void EnableChunkyGads(void);
- void StartGame(void);
- void ShowError(char *errormsg);
-
- /*
- Global Variables
- */
- // This structure is used for ENV: variable data
- struct msg {
- char *gfxmode;
- char *wb;
- char *pubscreenname;
- char *pip;
- char *pipscale;
- char *dbuf;
- char *oldstyle;
- char *cdunit;
- char *cddevice;
- } myptrs;
-
- // This structure is used for tooltype string data
- struct temp {
- char *showgui;
- char *quakename;
- char *defpsname;
- char *gfxname;
- char *gfxname1;
- char *gfxname2;
- char *gfxname3;
- char *wbwindow;
- char *pubscr;
- char *pubscrname;
- char *p96pip;
- char *p96resize;
- char *defpipscale;
- char *dbuf;
- char *tribuf;
- char *wpa8;
- char *particle;
- char *showparticle;
- char *dissnd;
- char *nocdaud;
- char *cdunit;
- char *cddevice;
- char *nomouse;
- char *mmuhack;
- char *nostdout;
- char *lc040;
- char *minmem;
- char *mem;
- char *surfcache;
- char *zonemem;
- char *dislan;
- char *disserial;
- char *distcp;
- char *disipx;
- char *ipxport;
- char *listen;
- char *dedicated;
- char *playback;
- char *record;
- char *rogue;
- char *hypnotic;
- char *gamedir;
- char *search;
- char *miscopts;
- } TTnames = {"SHOWGUI=","QUAKENAME=","workbench","GFXMODE=","CHUNKYPPC","CYBERGFX","AGAC2P",
- "WB=","PUBSCR=","PUBSCREENNAME=","PIP=","RESIZE=","1",
- "DBUF=","OLDSTYLE=","FORCEWPA8=","PARTICLE=","SHOWPARTICLE=",
- "NOSOUND=","NOCDAUDIO=","CDUNIT=","CDDEVICE=",
- "NOMOUSE=","HACK=","NOSTDOUT=","NO68KFPU=","MINMEM=","MEM=",
- "SURFCACHEMEM=","ZONEMEM=",
- "NOLAN=","NOSERIAL=","NOTCP=","NOIPX=","IPXPORT=","LISTEN=",
- "DEDICATED=",
- "PLAYBACK=","RECORD=","ROGUE=","HYPNOTIC=",
- "GAMEDIR=","SEARCHPATH=","MISCOPTIONS="};
-
- // This structure is used for error message data
- struct temp2 {
- char *winhan;
- char *lockscrn;
- char *winobj;
- char *openwin;
- char *iconlib;
- char *nolock;
- char *nowizlib;
- char *notemp;
- char *noGDO;
- char *noram;
- char *nofsize;
- char *nofile;
- } Errors = {"Failed to allocate window handle",
- "Failed to lock publicscreen",
- "Failed to create window objects",
- "Failed to open window",
- "Failed to open icon.library",
- "Failed to lock icon file",
- "Failed to open quakegui.wizard",
- "Failed to create temp file",
- "Failed to GetDiskObject",
- "Failed to Allocate RAM",
- "Failed to get filesize",
- "Failed to open temp file"};
-
-
- char buffer[100];
- char TrueFalse_buf[]="FALSE";
- UBYTE qfname[255];
- struct Gadget *gads[QUAKEWIN_GADGETS];
- struct Window *windowXX;
-
- static BPTR old_stdout = 0;
- static BPTR new_stdout = 0;
- static BPTR old_stdinp = 0;
- static BPTR new_stdinp = 0;
-
- LONG olddir = -1;
- struct Library *IconBase = NULL;
- APTR surface;
- ULONG StackSize = 300000L;
-
- /*
- Functions
- */
-
- // INIT_4... and EXIT_4... are used under StormC to setup a CON: window for stdio
- void INIT_4_MyOwnCout(void)
- {
- if (!((struct Process *) FindTask(NULL))->pr_CLI)
- {
- if ( (new_stdout = Open("CON:0/0/640/200/QuakeGUI/AUTO/WAIT", MODE_NEWFILE)) )
- old_stdout = SelectOutput(new_stdout);
-
- if ( (new_stdinp = Open("*", MODE_NEWFILE)) )
- old_stdinp = SelectInput(new_stdinp);
- }
- }
-
- void EXIT_4_MyOwnCout(void)
- {
- if (new_stdout)
- Close(SelectOutput(old_stdout));
-
- if (new_stdinp)
- Close(SelectInput(old_stdinp));
- }
-
- void wbmain(struct WBStartup *wb)
- {
- struct WBArg *wbarg;
- SHORT i;
- LONG oldWBdir = -1;
- BOOL ShowGUI, retval;
- // Put version string here so Storm doesnt optimize it out
- const char Version[] = "$VER: QuakeGUI 1.0 (12.3.2000) © Martin McKenzie\0";
-
- if(!(IconBase = OpenLibrary("icon.library",33)))
- {
- ShowError(Errors.iconlib);
- goto mywbexit;
- }
-
- if((wb->sm_ArgList->wa_Lock)&&(*wb->sm_ArgList->wa_Name))
- {
- oldWBdir = CurrentDir(wb->sm_ArgList->wa_Lock);
-
- if ((surface=WZ_OpenSurface("quakegui.wizard",0L,TAG_DONE)))
- {
- for(i=0, wbarg=wb->sm_ArgList;
- i < wb->sm_NumArgs;
- i++, wbarg++)
- {
- /* if there's a directory lock for this wbarg, CD there */
- olddir = -1;
- if((wbarg->wa_Lock)&&(*wbarg->wa_Name))
- olddir = CurrentDir(wbarg->wa_Lock);
-
- retval = CheckShowGUI(wbarg, &ShowGUI);
- if (retval == TRUE)
- my_main(wbarg, ShowGUI);
-
- if(olddir != -1)
- CurrentDir(olddir); /* CD back where we were */
- }
-
- WZ_CloseSurface(surface);
- } /* End WZ_OpenSurface... */
- else
- {
- ShowError(Errors.nowizlib);
- }
-
- if(oldWBdir != -1)
- CurrentDir(oldWBdir); /* CD back where we were */
- }
- else
- {
- ShowError(Errors.nolock);
- }
-
- mywbexit:
- ;
- }
-
- void main (int argc, char **argv)
- {
- printf("This program must be started from a quakeGUI icon.\n");
- }
-
- void my_main (struct WBArg *wbarg, ULONG ShowGUI)
- {
- int ok = TRUE;
- BOOL Flag, SaveTT;
- ULONG IntField;
- struct Screen *screen;
- struct NewWindow *newwin;
- struct WizardWindowHandle *winhandle;
- struct IntuiMessage *msg;
-
- myptrs.gfxmode = "quake1/gfxmode";
- myptrs.wb = "quake1/wb";
- myptrs.pubscreenname = "quake1/pubscreenname";
- myptrs.pip = "quake1/pip";
- myptrs.pipscale = "quake1/resize";
- myptrs.dbuf = "quake1/dbuf";
- myptrs.oldstyle = "quake1/oldstyle";
- myptrs.cdunit = "quake1/cdunit";
- myptrs.cddevice = "quake1/cddevice";
-
-
- screen=LockPubScreen(NULL);
- if (screen)
- {
- if ((winhandle=WZ_AllocWindowHandle(screen,0L,surface,TAG_DONE)))
- {
- if ((newwin=WZ_CreateWindowObj(winhandle,QUAKEWIN,WWH_GadgetArray,gads,
- WWH_GadgetArraySize,sizeof(gads),
- TAG_DONE)))
- {
- /* Set WizardWindow to minimum width and height */
- newwin->Width=newwin->MinWidth;
- newwin->Height=newwin->MinHeight;
- newwin->MaxHeight=newwin->MinHeight;
-
- InitGadgets(wbarg);
-
- if (!ShowGUI)
- {
- BuildArgString(FALSE,NULL);
- goto SkipGUI;
- }
-
- if ((windowXX=WZ_OpenWindow(winhandle,newwin,WA_AutoAdjust,TRUE,
- TAG_DONE)))
- {
- HelpControl(windowXX,HC_GADGETHELP);
-
- Flag=TRUE;
-
- do
- {
- WaitPort(windowXX->UserPort);
-
- if ((msg=(struct IntuiMessage *)GetMsg(windowXX->UserPort)))
- {
- switch(msg->Class)
- {
- case IDCMP_GADGETHELP:
- {
- if (msg->IAddress)
- {
- SetWindowTitles(windowXX,WZ_GadgetHelp(winhandle,msg->IAddress),(STRPTR)-1L);
- }
- else
- {
- SetWindowTitles(windowXX,"Quake GUI by Martin McKenzie",(STRPTR)-1L);
- }
- }
- break;
-
- case IDCMP_VANILLAKEY:
- {
- WZ_GadgetKey( winhandle, msg->Code, msg->Qualifier, TAG_DONE );
- }
- break;
-
- case IDCMP_IDCMPUPDATE:
- {
- switch(GetTagData(GA_ID,0,(struct TagItem *)msg->IAddress))
- {
- case QR_SAVE_BUT:
- {
- ok = TRUE;
- Flag = FALSE;
- SaveTT = TRUE;
- }
- break;
-
- case QR_USE_BUT:
- {
- ok = TRUE;
- Flag = FALSE;
- SaveTT = FALSE;
- }
- break;
-
- case QR_CANCEL_BUT:
- {
- ok = FALSE;
- Flag = FALSE;
- }
- break;
-
- case QU_GFXTYPE_CYC:
- {
- GetAttr(WCYCLEA_Active,gads[QU_GFXTYPE_CYC],(ULONG *) &IntField);
- if (IntField >= 1)
- {
- DisableChunkyGads();
- }
- else
- {
- EnableChunkyGads();
- }
- }
- break;
-
- } /* End switch */
- } /* End IDCMP_IDCMPUPDATE */
- break;
- } /* End Switch */
- ReplyMsg((struct Message *)msg);
- } /* End If msg=... */
- }
- while (Flag); /* End do */
-
- if ( ok == TRUE )
- {
- BuildArgString(SaveTT, wbarg);
- }
-
- WZ_CloseWindow(winhandle);
- } /* End WZ_OpenWindow... */
- else
- {
- ShowError(Errors.openwin);
- ok = FALSE;
- }
- } /* End WZ_CreateWindowObj... */
- else
- {
- ShowError(Errors.winobj);
- ok = FALSE;
- }
- SkipGUI:
- WZ_FreeWindowHandle(winhandle);
-
- // Start the game here after freeing up (most of) our resources
- if ( ok == TRUE )
- {
- StartGame();
- }
- } /* End WZ_AllocWindowHandle... */
- else
- {
- ShowError(Errors.winhan);
- ok = FALSE;
- }
- UnlockPubScreen(0L,screen);
- }
- else
- {
- ShowError(Errors.lockscrn);
- }
- }
-
- BOOL CheckShowGUI(struct WBArg *wbarg, BOOL *ShowGUI)
- {
- struct DiskObject *dobj;
- char **toolarray;
- char *buffer;
- int ret_int;
- BOOL success = FALSE;
-
- *ShowGUI = FALSE;
- if((*wbarg->wa_Name) && (dobj=GetDiskObject(wbarg->wa_Name)))
- {
- toolarray = (char **)dobj->do_ToolTypes;
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"SHOWGUI"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- *ShowGUI = TRUE;
- }
- else
- {
- *ShowGUI = FALSE;
- }
- }
-
- FreeDiskObject(dobj);
- success = TRUE;
- }
- #ifdef GUI_Debug
- else
- if(!(*wbarg->wa_Name))
- printf(" Must be a disk or drawer icon\n");
- else
- printf(" Can't find any DiskObject (icon) for this WBArg\n");
- #endif
- return(success);
- }
-
-
- void BuildArgString(BOOL SaveTT, struct WBArg *wbarg)
- {
- FILE *fp;
- ULONG IntField, IntField2, IntField3, IntField4, IntField5, len;
- ULONG ttype_count, SaveTT_count;
- char CycleBuffer[10];
- char **oldttypes;
- char **newtt;
- struct DiskObject *diskObj = NULL;
- BOOL success;
-
- fp = fopen ("t:qguitemp","w");
- if (!fp)
- {
- ShowError(Errors.notemp);
- goto BailOut;
- }
-
- ttype_count = 44L; // 1 tooltype per GUI item (need to dynamically size this...)
- SaveTT_count = 0L;
-
- if (SaveTT)
- {
- if((*wbarg->wa_Name) && (diskObj=GetDiskObject(wbarg->wa_Name)))
- {
- oldttypes = diskObj->do_ToolTypes;
-
- newtt = (char**)AllocVec((ttype_count + 1)* 4, MEMF_CLEAR | MEMF_ANY);
- if (!newtt)
- {
- ShowError(Errors.noram);
- }
- }
- else
- {
- ShowError(Errors.noGDO);
- SaveTT = FALSE;
- }
- }
-
- // SaveStdTtypes(); /* Toolpri, stack, donotwait... */
- // if FindTooltype finds it in the old icon, copy and paste it into the new one
-
- IntField = 1L;
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.showgui);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.showgui, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
-
- if (*qfname)
- {
- fprintf(fp, qfname);
- len = strlen(qfname);
- }
- else
- {
- fprintf(fp, "quakeWOS");
- len = 8L;
- }
- if (SaveTT)
- {
- len += strlen(TTnames.quakename);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- strncpy(newtt[SaveTT_count], TTnames.quakename, len);
- if (*qfname)
- {
- strcat(newtt[SaveTT_count], qfname);
- }
- else
- {
- strcat(newtt[SaveTT_count], "quakeWOS");
- }
- SaveTT_count++;
- }
- }
-
- GetAttr(WCYCLEA_Active, gads[QU_GFXTYPE_CYC],(ULONG *) &IntField);
- switch (IntField)
- {
- case 0: // This option is handled with an ENV: var!
- {
- strcpy(CycleBuffer,"CHUNKYPPC");
- success = SetVar ((STRPTR)myptrs.gfxmode,(STRPTR)&CycleBuffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- len = strlen(TTnames.gfxname1);
- }
- break;
-
- case 1:
- {
- fprintf(fp," -cgfx");
- len = strlen(TTnames.gfxname2);
- }
- break;
-
- case 2:
- {
- fprintf(fp," -aga");
- len = strlen(TTnames.gfxname3);
- }
- break;
- }
- if (SaveTT)
- {
- len += strlen(TTnames.gfxname);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- strncpy(newtt[SaveTT_count], TTnames.gfxname, len);
- switch (IntField)
- {
- case 0:
- {
- strcat(newtt[SaveTT_count], TTnames.gfxname1);
- }
- break;
-
- case 1:
- {
- strcat(newtt[SaveTT_count], TTnames.gfxname2);
- }
- break;
-
- case 2:
- {
- strcat(newtt[SaveTT_count], TTnames.gfxname3);
- }
- break;
- }
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_WBWINDOW_TICK],(ULONG *) &IntField);
- sprintf(buffer,"%ld",IntField);
- success = SetVar ((STRPTR)myptrs.wb,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.wbwindow);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.wbwindow, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_PUBSCREEN_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- sprintf(buffer,"%ld",IntField);
- success = SetVar ((STRPTR)myptrs.wb,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
-
- GetAttr(WSTRINGA_String, gads[QU_PUBSCREEN_STR],(ULONG *) &IntField2);
- len = sprintf(buffer,"%s",IntField2);
- // if the string is blank, fill it with a default name
- if (len == 0)
- sprintf(buffer,"%s",TTnames.defpsname);
- success = SetVar ((STRPTR)myptrs.pubscreenname,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- }
- else
- { // required so that the "SaveTT" code can work for both true/false cases...
- GetAttr(WSTRINGA_String, gads[QU_PUBSCREEN_STR],(ULONG *) &IntField2);
- len = sprintf(buffer,"%s",IntField2);
- if (len == 0)
- sprintf(buffer,"%s",TTnames.defpsname);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.pubscr);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.pubscr, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = strlen(buffer);
- len += strlen(TTnames.pubscrname);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.pubscrname, buffer);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_P96PIP_TICK],(ULONG *) &IntField);
- sprintf(buffer,"%ld",IntField);
- success = SetVar ((STRPTR)myptrs.pip,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- if (IntField == 1)
- {
- GetAttr(WSTRINGA_String, gads[QU_PIPSCALE_STR],(ULONG *) &IntField2);
- len = sprintf(buffer,"%s",IntField2);
- // if the string is blank, fill it with a default value
- if (len == 0)
- sprintf(buffer,"%s",TTnames.defpipscale);
- success = SetVar ((STRPTR)myptrs.pipscale,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- }
- else
- { // required so that the "SaveTT" code can work for both true/false cases...
- GetAttr(WSTRINGA_String, gads[QU_PIPSCALE_STR],(ULONG *) &IntField2);
- len = sprintf(buffer,"%s",IntField2);
- if (len == 0)
- sprintf(buffer,"%s",TTnames.defpipscale);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.p96pip);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.p96pip, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = strlen(buffer);
- len += strlen(TTnames.p96resize);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.p96resize, buffer);
- SaveTT_count++;
- }
- }
-
- IntField2 = 0;
- GetAttr(WCHECKBOXA_Checked, gads[QU_DBLBUF_TICK],(ULONG *) &IntField);
- sprintf(buffer,"%ld",IntField);
- success = SetVar ((STRPTR)myptrs.dbuf,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- success = SetVar ((STRPTR)myptrs.oldstyle,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- if (!IntField)
- {
- GetAttr(WCHECKBOXA_Checked, gads[QU_TRIBUF_TICK],(ULONG *) &IntField2);
- sprintf(buffer,"%ld",IntField2);
- success = SetVar ((STRPTR)myptrs.dbuf,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- IntField = 0;
- sprintf(buffer,"%ld",IntField);
- success = SetVar ((STRPTR)myptrs.oldstyle,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.dbuf);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.dbuf, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = sprintf(TrueFalse_buf,"%s",(IntField2 == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.tribuf);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.tribuf, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_WPA8_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -forcewpa8");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.wpa8);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.wpa8, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- // If paticles enabled (and value > 0), add parameter to list.
- GetAttr(WCHECKBOXA_Checked, gads[QU_PART_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- GetAttr(WINTEGERA_Long, gads[QU_PARTICLE_INT],(ULONG *) &IntField2);
- if (IntField2 != 0)
- {
- fprintf(fp," -particle=%ld",IntField2);
- }
- }
- else
- {
- fprintf(fp," -particle=%ld",0L);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.showparticle);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.showparticle, TrueFalse_buf);
- SaveTT_count++;
- }
-
- if (IntField == 0)
- {
- GetAttr(WINTEGERA_Long, gads[QU_PARTICLE_INT],(ULONG *) &IntField2);
- }
- len = sprintf(buffer,"%ld",IntField2);
- len += strlen(TTnames.particle);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.particle, buffer);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLESND_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -nosound");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.dissnd);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.dissnd, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLECD_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -nocdaudio");
- }
- else
- {
- GetAttr(WINTEGERA_Long, gads[QU_CDUNIT_INT],(ULONG *) &IntField2);
- sprintf(buffer,"%ld",IntField2);
- success = SetVar ((STRPTR)myptrs.cdunit,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
-
- GetAttr(WSTRINGA_String, gads[QU_DEVICE_STR],(ULONG *) &IntField3);
- sprintf(buffer,"%s",IntField3);
- success = SetVar ((STRPTR)myptrs.cddevice,(STRPTR)&buffer,-1L,(ULONG)GVF_GLOBAL_ONLY);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.nocdaud);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.nocdaud, TrueFalse_buf);
- SaveTT_count++;
- }
-
- if (IntField)
- {
- GetAttr(WINTEGERA_Long, gads[QU_CDUNIT_INT],(ULONG *) &IntField2);
- GetAttr(WSTRINGA_String, gads[QU_DEVICE_STR],(ULONG *) &IntField3);
- }
-
- sprintf(buffer,"%ld",IntField2);
- len = sprintf(buffer,"%ld",IntField2);
- len += strlen(TTnames.cdunit);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.cdunit, buffer);
- SaveTT_count++;
- }
-
- sprintf(buffer,"%s",IntField3);
- len = sprintf(buffer,"%s",IntField3);
- len += strlen(TTnames.cddevice);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.cddevice, buffer);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_USEMOUSE_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -nomouse");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.nomouse);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.nomouse, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_MMUHACK_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -hack");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.mmuhack);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.mmuhack, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_STDOUT_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -nostdout");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.nostdout);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.nostdout, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_LC040_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -no68kfpu");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.lc040);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.lc040, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_MINMEM_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -minmem");
- }
- else
- {
- GetAttr(WINTEGERA_Long, gads[QU_MEMORY_INT],(ULONG *) &IntField2);
- fprintf(fp," -mem=%ld",IntField2);
-
- GetAttr(WINTEGERA_Long, gads[QU_SURFCACHEMEM_INT],(ULONG *) &IntField3);
- if (IntField3 != 0)
- {
- fprintf(fp," -surfcachemem=%ld",IntField3);
- }
-
- GetAttr(WINTEGERA_Long, gads[QU_ZONEMEM_INT],(ULONG *) &IntField4);
- if (IntField4 != 0)
- {
- fprintf(fp," -zonemem=%ld",IntField4);
- }
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.minmem);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.minmem, TrueFalse_buf);
- SaveTT_count++;
- }
-
- if (IntField)
- {
- GetAttr(WINTEGERA_Long, gads[QU_MEMORY_INT],(ULONG *) &IntField2);
- GetAttr(WINTEGERA_Long, gads[QU_SURFCACHEMEM_INT],(ULONG *) &IntField3);
- GetAttr(WINTEGERA_Long, gads[QU_ZONEMEM_INT],(ULONG *) &IntField4);
- }
-
- len = sprintf(buffer,"%ld",IntField2);
- len += strlen(TTnames.mem);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.mem, buffer);
- SaveTT_count++;
- }
-
- len = sprintf(buffer,"%ld",IntField3);
- len += strlen(TTnames.surfcache);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.surfcache, buffer);
- SaveTT_count++;
- }
-
- len = sprintf(buffer,"%ld",IntField4);
- len += strlen(TTnames.zonemem);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.zonemem, buffer);
- SaveTT_count++;
- }
- }
-
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLELAN_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -nolan");
- }
- else
- {
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLESER_TICK],(ULONG *) &IntField2);
- if (IntField == 1)
- {
- fprintf(fp," -noserial");
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLETCP_TICK],(ULONG *) &IntField3);
- if (IntField == 1)
- {
- fprintf(fp," -notcp");
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLEIPX_TICK],(ULONG *) &IntField4);
- if (IntField == 1)
- {
- fprintf(fp," -noipx");
- }
-
- GetAttr(WINTEGERA_Long, gads[QU_IPXPORT_INT],(ULONG *) &IntField5);
- fprintf(fp," -ipxport=%ld",IntField);
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.dislan);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.dislan, TrueFalse_buf);
- SaveTT_count++;
- }
-
- if (IntField)
- {
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLESER_TICK],(ULONG *) &IntField2);
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLETCP_TICK],(ULONG *) &IntField3);
- GetAttr(WCHECKBOXA_Checked, gads[QU_DISABLEIPX_TICK],(ULONG *) &IntField4);
- GetAttr(WINTEGERA_Long, gads[QU_IPXPORT_INT],(ULONG *) &IntField5);
- }
-
- len = sprintf(TrueFalse_buf,"%s",(IntField2 == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.disserial);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.disserial, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = sprintf(TrueFalse_buf,"%s",(IntField3 == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.distcp);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.distcp, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = sprintf(TrueFalse_buf,"%s",(IntField4 == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.disipx);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.disipx, TrueFalse_buf);
- SaveTT_count++;
- }
-
- len = sprintf(buffer,"%ld",IntField5);
- len += strlen(TTnames.ipxport);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.ipxport, buffer);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_ENABLELISTEN_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -listen");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.listen);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.listen, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_ENABLEDEDICATED_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -dedicated");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.dedicated);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.dedicated, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_PLAYBACKMODE_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -playback");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.playback);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.playback, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_RECORDMODE_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -record");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.record);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.record, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_ROGUE_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -rogue");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.rogue);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.rogue, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_HYPNOTIC_TICK],(ULONG *) &IntField);
- if (IntField == 1)
- {
- fprintf(fp," -hypnotic");
- }
- if (SaveTT)
- {
- len = sprintf(TrueFalse_buf,"%s",(IntField == 1 ? "TRUE" : "FALSE"));
- len += strlen(TTnames.hypnotic);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.hypnotic, TrueFalse_buf);
- SaveTT_count++;
- }
- }
-
-
- /* Only write these options if the string > 0 characters */
- GetAttr(WSTRINGA_String, gads[QU_GAMEDIR_STR],(ULONG *) &IntField);
- if (strlen ((const char *)IntField))
- {
- fprintf(fp," -game %s",IntField);
- }
- if (SaveTT)
- {
- len = sprintf(buffer,"%s",IntField);
- if (len)
- {
- len += strlen(TTnames.gamedir);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.gamedir, buffer);
- SaveTT_count++;
- }
- }
- }
-
- GetAttr(WSTRINGA_String, gads[QU_GAMESEARCH_STR],(ULONG *) &IntField);
- if (strlen ((const char *)IntField))
- {
- fprintf(fp," -path %s",IntField);
- }
- if (SaveTT)
- {
- len = sprintf(buffer,"%s",IntField);
- if (len)
- {
- len += strlen(TTnames.search);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.search, buffer);
- SaveTT_count++;
- }
- }
- }
-
- GetAttr(WSTRINGA_String, gads[QU_GAMEMISC_STR],(ULONG *) &IntField);
- if (strlen ((const char *)IntField))
- {
- fprintf(fp," %s",IntField);
- }
- if (SaveTT)
- {
- len = sprintf(buffer,"%s",IntField);
- if (len)
- {
- len += strlen(TTnames.miscopts);
- if(newtt[SaveTT_count] = (char*)AllocVec(len+1, MEMF_CLEAR | MEMF_ANY))
- {
- sprintf(newtt[SaveTT_count],"%s%s",TTnames.miscopts, buffer);
- SaveTT_count++;
- }
- }
- }
-
-
- if (SaveTT)
- {
- SaveTT_count++;
- newtt[SaveTT_count] = 0;
-
- diskObj->do_ToolTypes = newtt;
- PutDiskObject(wbarg->wa_Name, diskObj);
- diskObj->do_ToolTypes = oldttypes;
-
- FreeDiskObject(diskObj);
- }
-
- fclose (fp);
- BailOut:
- ;
- }
-
-
- void InitGadgets(struct WBArg *wbarg)
- {
- ULONG gfxmode_cyc, StackTT;
- LONG ret_long;
- int ret_int;
- BOOL BoolValue, DisableGad;
- BOOL DisablePubStr, TriBufOk;
-
- struct DiskObject *dobj;
- char **toolarray;
- char *buffer;
-
-
- DisableGad = FALSE;
-
- if((*wbarg->wa_Name) && (dobj=GetDiskObject(wbarg->wa_Name)))
- {
- toolarray = (char **)dobj->do_ToolTypes;
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"QUAKENAME"))
- {
- strcpy((char *)qfname,buffer);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"STACK"))
- {
- StackTT = atol(buffer);
- if (StackTT)
- {
- StackSize = StackTT;
- }
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"GFXMODE"))
- {
- ret_int = strcmp(buffer,"CHUNKYPPC");
- if (ret_int == 0)
- {
- gfxmode_cyc = 0L;
- }
- else
- {
- ret_int = strcmp(buffer,"CYBERGFX");
- if (ret_int == 0)
- {
- gfxmode_cyc = 1L;
- DisableGad = TRUE;
- }
- else
- {
- ret_int = strcmp(buffer,"AGAC2P");
- if (ret_int == 0)
- {
- gfxmode_cyc = 2L;
- DisableGad = TRUE;
- }
- }
- }
- SetGadgetAttrs(gads[QU_GFXTYPE_CYC],0L,0L,WCYCLEA_Active,(ULONG)gfxmode_cyc,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"FORCEWPA8"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_WPA8_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"SHOWPARTICLE"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- SetGadgetAttrs(gads[QU_PARTICLE_INT],0L,0L,GA_Disabled,TRUE,
- TAG_DONE);
- }
- SetGadgetAttrs(gads[QU_PART_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"PARTICLE"))
- {
- // change this to atol ??
- ret_int = atoi(buffer);
- SetGadgetAttrs(gads[QU_PARTICLE_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_int,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"WB"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_WBWINDOW_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- else
- {
- SetGadgetAttrs(gads[QU_WBWINDOW_TICK],0L,0L, GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- DisablePubStr = FALSE;
- if(buffer=FindToolType(Storm_FixToolType toolarray,"PUBSCR"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- DisablePubStr = TRUE;
- }
-
- if (DisableGad == TRUE)
- {
- SetGadgetAttrs(gads[QU_PUBSCREEN_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- else
- {
- SetGadgetAttrs(gads[QU_PUBSCREEN_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"PUBSCREENNAME"))
- {
- SetGadgetAttrs(gads[QU_PUBSCREEN_STR],0L,0L,WSTRINGA_String,buffer,
- GA_Disabled,(ULONG)DisablePubStr,
- TAG_DONE);
-
- if (DisableGad == TRUE)
- {
- SetGadgetAttrs(gads[QU_PUBSCREEN_STR],0L,0L,GA_Disabled,(ULONG)TRUE,
- TAG_DONE);
- }
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"RESIZE"))
- {
- SetGadgetAttrs(gads[QU_PIPSCALE_STR],0L,0L,WSTRINGA_String,buffer,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"PIP"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
-
- if (DisableGad == TRUE)
- {
- SetGadgetAttrs(gads[QU_P96PIP_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- else
- {
- SetGadgetAttrs(gads[QU_P96PIP_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_PIPSCALE_STR],0L,0L,GA_Disabled,(ULONG)FALSE,
- TAG_DONE);
- }
- }
-
- TriBufOk = FALSE;
- if(buffer=FindToolType(Storm_FixToolType toolarray,"DBUF"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- TriBufOk = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_TRIBUF_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- else
- {
- SetGadgetAttrs(gads[QU_TRIBUF_TICK],0L,0L, GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"OLDSTYLE"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- if (TriBufOk == TRUE)
- {
- SetGadgetAttrs(gads[QU_TRIBUF_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)FALSE,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DBLBUF_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
- else
- {
- SetGadgetAttrs(gads[QU_DBLBUF_TICK],0L,0L, GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOSOUND"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLESND_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- DisableGad = FALSE;
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOCDAUDIO"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- DisableGad = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLECD_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"CDUNIT"))
- {
- ret_int = atoi(buffer);
- SetGadgetAttrs(gads[QU_CDUNIT_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_int,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"CDDEVICE"))
- {
- SetGadgetAttrs(gads[QU_DEVICE_STR],0L,0L,WSTRINGA_String,buffer,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOMOUSE"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_USEMOUSE_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"HACK"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_MMUHACK_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOSTDOUT"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_STDOUT_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NO68KFPU"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_LC040_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- DisableGad = FALSE;
- if(buffer=FindToolType(Storm_FixToolType toolarray,"MINMEM"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- DisableGad = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_MINMEM_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"MEM"))
- {
- ret_long = atol(buffer);
- SetGadgetAttrs(gads[QU_MEMORY_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_long,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"SURFCACHEMEM"))
- {
- ret_long = atol(buffer);
- SetGadgetAttrs(gads[QU_SURFCACHEMEM_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_long,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"ZONEMEM"))
- {
- ret_long = atol(buffer);
- SetGadgetAttrs(gads[QU_ZONEMEM_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_long,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- DisableGad = FALSE;
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOLAN"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- DisableGad = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLELAN_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOSERIAL"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLESER_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOTCP"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLETCP_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"NOIPX"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_DISABLEIPX_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"IPXPORT"))
- {
- ret_long = atol(buffer);
- SetGadgetAttrs(gads[QU_IPXPORT_INT],0L,0L,WINTEGERA_Long,(ULONG)ret_long,
- GA_Disabled,(ULONG)DisableGad,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"LISTEN"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_ENABLELISTEN_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"DEDICATED"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_ENABLEDEDICATED_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"PLAYBACK"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_PLAYBACKMODE_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"RECORD"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_RECORDMODE_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"ROGUE"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_ROGUE_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"HYPNOTIC"))
- {
- ret_int = strcmp(buffer,"TRUE");
- if (ret_int == 0)
- {
- BoolValue = TRUE;
- }
- else
- {
- BoolValue = FALSE;
- }
- SetGadgetAttrs(gads[QU_HYPNOTIC_TICK],0L,0L,WCHECKBOXA_Checked,(ULONG)BoolValue,
- TAG_DONE);
- }
-
- /* We require to dynamically allocate RAM for this, rather than use a 100 byte buffer. What if
- these strings are longer than 100 bytes?... */
- if(buffer=FindToolType(Storm_FixToolType toolarray,"GAMEDIR"))
- {
- SetGadgetAttrs(gads[QU_GAMEDIR_STR],0L,0L,WSTRINGA_String,buffer,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"SEARCHPATH"))
- {
- SetGadgetAttrs(gads[QU_GAMESEARCH_STR],0L,0L,WSTRINGA_String,buffer,
- TAG_DONE);
- }
-
- if(buffer=FindToolType(Storm_FixToolType toolarray,"MISCOPTIONS"))
- {
- SetGadgetAttrs(gads[QU_GAMEMISC_STR],0L,0L,WSTRINGA_String,buffer,
- TAG_DONE);
- }
-
- }
- else
- {
- ShowError(Errors.noGDO);
- }
- }
-
- void DisableChunkyGads(void)
- {
- SetGadgetAttrs(gads[QU_WBWINDOW_TICK],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_PUBSCREEN_TICK],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_PUBSCREEN_STR],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_P96PIP_TICK],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_DBLBUF_TICK],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_TRIBUF_TICK],windowXX,0L,GA_Disabled,TRUE,
- TAG_DONE);
- }
-
-
- void EnableChunkyGads(void)
- {
- ULONG IntField;
-
- SetGadgetAttrs(gads[QU_WBWINDOW_TICK],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_PUBSCREEN_TICK],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
-
- GetAttr(WCHECKBOXA_Checked, gads[QU_PUBSCREEN_TICK],(ULONG *) &IntField);
- if (IntField == TRUE)
- {
- SetGadgetAttrs(gads[QU_PUBSCREEN_STR],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
- }
- SetGadgetAttrs(gads[QU_P96PIP_TICK],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_DBLBUF_TICK],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
- SetGadgetAttrs(gads[QU_TRIBUF_TICK],windowXX,0L,GA_Disabled,FALSE,
- TAG_DONE);
- }
-
- void StartGame(void)
- {
- FILE *fp;
- char *file_name="t:qguitemp";
- char *mem_ptr;
- struct FileInfoBlock *My_fib;
-
- BPTR MyFileLock;
- LONG Filesize = 0;
-
- // One way of detecting a filesize.
- My_fib = AllocDosObject(DOS_FIB,NULL);
- MyFileLock = Lock((STRPTR)file_name,ACCESS_READ);
- if (MyFileLock != 0)
- {
- if (Examine(MyFileLock,My_fib))
- {
- Filesize = My_fib->fib_Size;
- }
- UnLock(MyFileLock);
- }
- FreeDosObject(DOS_FIB,My_fib);
-
- if (Filesize)
- {
- mem_ptr = AllocVec(Filesize+1, MEMF_CLEAR | MEMF_ANY);
- if (mem_ptr)
- {
- fp = fopen (file_name,"r");
- if (fp)
- {
- fread(mem_ptr, Filesize, 1, fp);
- mem_ptr[Filesize] = 0;
-
- SystemTags(mem_ptr,
- SYS_Input, new_stdout,
- SYS_Output, NULL,
- NP_StackSize, StackSize,
- TAG_DONE);
- fclose(fp);
- }
- else
- {
- ShowError(Errors.nofile);
- }
- FreeVec(mem_ptr);
- }
- else
- {
- ShowError(Errors.noram);
- }
- }
- else
- {
- ShowError(Errors.nofsize);
- }
- }
-
- void ShowError(char *errormsg)
- {
- static struct EasyStruct es = {
- sizeof(struct EasyStruct),
- 0,
- "QuakeGUI",
- NULL,
- NULL
- };
-
- es.es_TextFormat = errormsg;
- es.es_GadgetFormat = "OK";
- EasyRequestArgs(NULL, &es, 0, (&errormsg)+1);
- }
-