/* * XMapEdit, the XPilot Map Editor. Copyright (C) 1993 by * * Aaron Averill * * This program 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. * * This program 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 this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * Modifications to XMapEdit * 1996: * Robert Templeman * 1997: * William Docter * * $Id: forms.c,v 5.2 2001/05/20 14:10:39 millerjl Exp $ */ #include "main.h" /***************************************************************************/ /* BuildMapwinForm */ /* Arguments : */ /* Purpose : */ /***************************************************************************/ void BuildMapwinForm(void) { int w,h,y; w = (TOOLSWIDTH-20)/4; h = w*.6; /* RTT 5x6 multibutton */ T_FormMultiButton(mapwin,"drawicon_select",10,5,TOOLSWIDTH-20, (int)((TOOLSWIDTH-20)*0.8*1.75),5,7,"",&drawicon,1); y = (TOOLSWIDTH-20)*0.8*1.75+10; /* RTT *1.2 was *.8 */ T_FormMultiButton(mapwin,"drawmode_select",10,y,TOOLSWIDTH-20,h,3,1, "Draw;Line;Select",&drawmode,0); y += h+5; T_FormButton(mapwin,"load",10,y,w-1,h-1,"Load",LoadPrompt); T_FormButton(mapwin,"save",10+w,y,w-1,h-1,"Save",SavePrompt); T_FormButton(mapwin,"new",10+w*2,y,w-1,h-1,"New",NewMap); T_FormButton(mapwin,"quit",10+w*3,y,w-1,h-1,"Quit", ExitApplication); T_FormButton(mapwin,"cut",10,y+h,w-1,h-1,"Cut",CutMapArea); T_FormButton(mapwin,"copy",10+w*1,y+h,w-1,h-1,"Copy", CopyMapArea); T_FormButton(mapwin,"paste",10+w*2,y+h,w-1,h-1,"Paste", PasteMapArea); T_FormButton(mapwin,"undo",10+w*3,y+h,w-1,h-1,"Undo", Undo); T_FormButton(mapwin,"round",10,y+h*2,w-1,h-1,"Round", RoundMapArea); T_FormButton(mapwin,"fill",10+w*1,y+h*2,w-1,h-1,"Fill", FillMapArea); T_FormHoldButton(mapwin,"grow",10+w*2,y+h*2,w-1,h-1,"Grow",GrowMapArea); T_FormButton(mapwin,"neg",10+w*3,y+h*2,w-1,h-1,"Neg.", NegativeMapArea); T_FormButton(mapwin,"preferences",10,y+3*h,w-1,h-1, "Prefs",OpenPreferencesPopup); T_FormButton(mapwin,"help",10+w,y+3*h,w-1,h-1, "Help",OpenHelpPopup); T_FormButton(mapwin,"zoom_in",10+w*2,y+3*h,w-1,h-1,"Z", ZoomIn); T_FormButton(mapwin,"zoom_out",10+w*3,y+3*h,w-1,h-1,"z", ZoomOut); T_FormStringEntry(mapwin,"map_name",5,TOOLSHEIGHT-TOOLSWIDTH-90, TOOLSWIDTH-10,20,0,-20,"Map Name:",map.mapName,sizeof(max_str_t)-1,NULL); T_FormStringEntry(mapwin,"map_author",5,TOOLSHEIGHT-TOOLSWIDTH-50, TOOLSWIDTH-10,20,0,-20,"Map Author:",map.mapAuthor, sizeof(max_str_t)-1,NULL); T_FormStringEntry(mapwin,"map_width",(int)(TOOLSWIDTH/2-45), TOOLSHEIGHT-TOOLSWIDTH-25, 40,20,-50,0,"Width:", map.width_str, 3, ResizeWidth); T_FormStringEntry(mapwin,"map_height",(int)(TOOLSWIDTH-45), TOOLSHEIGHT-TOOLSWIDTH-25,40,20,-50,0,"Height:", map.height_str, 3, ResizeHeight); } /***************************************************************************/ /* BuildPrefsForm */ /* Arguments : */ /* Purpose : */ /***************************************************************************/ void BuildPrefsForm(void) { int w,h,t,i; T_FormButton(prefwin,"close_prefs",10,PREFSEL_HEIGHT-10-PREF_BTN_HEIGHT, PREF_BTN_WIDTH,PREF_BTN_HEIGHT,"Close",FormCloseHandler); /* preference fields */ w = (PREFSEL_WIDTH-20); h = PREF_BTN_HEIGHT+2; t = (PREF_BTN_HEIGHT-20)/2; T_FormButton(prefwin,"MapInfo",10,10,w-1,h-1,"Map Info",OpenMapInfoPopup); T_FormButton(prefwin,"Robots",10,10+h,w-1,h-1,"Robots, Bounce...",OpenRobotsPopup); T_FormButton(prefwin,"Visibility",10,10+h*2,w-1,h-1,"Visibility, Teams...",OpenVisibilityPopup); T_FormButton(prefwin,"Cannons",10,10+h*3,w-1,h-1,"Cannons, Mines, Missiles...",OpenCannonsPopup); T_FormButton(prefwin,"Rounds",10,10+h*4,w-1,h-1,"Rounds, Connection...",OpenRoundsPopup); T_FormButton(prefwin,"InitItems",10,10+h*5,w-1,h-1,"Initial Items",OpenInitItemsPopup); T_FormButton(prefwin,"MaxItems",10,10+h*6,w-1,h-1,"Max. Items",OpenMaxItemsPopup); T_FormButton(prefwin,"Probs",10,10+h*7,w-1,h-1,"Probabilities",OpenProbsPopup); T_FormButton(prefwin,"Scoring",10,10+h*8,w-1,h-1,"Scoring",OpenScoringPopup); mapinfo = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Map Info"); robots = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Robots, Bounce..."); visibility = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Visibility, Teams..."); cannons = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Cannons, Mines, Missiles..."); rounds = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Rounds, Connection..."); inititems = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Initial Items"); maxitems = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Max. Items"); probs = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Probabilities"); scoring = T_PopupCreate(PREF_X, PREF_Y, PREF_WIDTH, PREF_HEIGHT, "Scoring"); for (i = 0; i <= 8; i++) BuildPrefsSheet(i); } /***************************************************************************/ /* BuildPrefsSheet */ /* Arguments : */ /* Purpose : */ /***************************************************************************/ void BuildPrefsSheet(int num) { int w,h,t,i; char *tmpstr=NULL; Window *temp=NULL; switch (num){ case 0: temp = &mapinfo; break; case 1: temp = &robots; break; case 2: temp = &visibility; break; case 3: temp = &cannons; break; case 4: temp = &rounds; break; case 5: temp = &inititems; break; case 6: temp = &maxitems; break; case 7: temp = &probs; break; case 8: temp = &scoring; break; } T_FormButton(*temp,"close_prefs",10,PREF_HEIGHT-10-PREF_BTN_HEIGHT, PREF_BTN_WIDTH,PREF_BTN_HEIGHT,"Close",FormCloseHandler); /* preference fields */ w = (PREF_WIDTH-60)/6; h = PREF_BTN_HEIGHT+2; t = (PREF_BTN_HEIGHT-20)/2; for (i=0; i