/* Copyright (C) 1994-1995 Apogee Software, Ltd. 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _rt_menu_private #define _rt_menu_private //****************************************************************************** // // Private Header for RT_MENU.C // //****************************************************************************** #include "rt_in.h" // // Specific Menu defines // #define BORDCOLOR 0x29 #define BORD2COLOR 0x23 #define DEACTIVE 0x2b #define BKGDCOLOR 0x2d #define STRIPE 0x2c #define SENSITIVE 60 #define CENTER SENSITIVE*2 #define MENU_X 32 #define MENU_Y 16 #define MENU_W 235 #define MENU_H 14*9+4 #define LSM_X 180 //32 #define LSM_Y 16 #define LSM_W 80 //176 #define LSM_H 10*14+8 #define LSA_X 96 #define LSA_Y 80 #define LSA_W 130 #define LSA_H 42 #define SM_X 32 #define SM_Y 52 #define SM_W 252 #define SM_H 35 #define SM_Y1 20 #define SM_H1 4*14-9 #define SM_Y2 SM_Y1+5*14 #define SM_H2 4*14-9 #define SM_Y3 SM_Y2+5*14 #define SM_H3 3*14-9 #define CTL_X 19 #define CTL_Y 32 #define CTL_W 284 #define CTL_H 105 #define CST_X 20 #define CST_Y 43 #define CST_START 60 #define CST_SPC 60 #define TUF_X 0 #define TUF_Y 32 #define HLP_X 34 #define HLP_Y 63 #define HLP_W 264 #define HLP_H 51 #define MU_X 32 #define MU_Y 22 #define MU_W 252 #define MU_H 118 #define FX_X 32 #define FX_Y 16 #define FX_W 252 #define FX_H 130 #define MP_X 55//32 #define MP_Y 60 #define MP_W 252 #define MP_H 35 #define X1_X 55 #define X1_Y 25 #define X1_W 252 #define X2_X 55 #define X2_Y 65 #define X2_W 252 #define X2_H 35 #define X3_X 55 #define X3_Y 65 #define X3_W 252 #define X3_H 35 #define LEVSEL_X 32 #define LEVSEL_Y 22 #define LEVSEL_W 252 #define LEVSEL_H 118 #define MAXCUSTOM 12 #define STARTITEM newgame // // General defines // #define CP_SemiActive 4 #define CP_Highlight 5 #define OUTOFRANGE 100 #define ESCPRESSED -1 #define PAGEUP -2 #define PAGEDOWN -3 #define NOTAVAILABLECOLOR 7 #define NEXTPAGECOLOR 16 #define NORMALCOLOR 21 #define DIMMEDCOLOR 24 #define ACTIVECOLOR 241 #define HIGHLIGHTCOLOR 1 #define MouseInt 0x33 #define GAMESVD "There's already a game\n" \ "saved at this position.\n"\ "Overwrite?" #define COLOR 235 #define CUSTOMX 76 #define NUMSAVEGAMES 14 #define PWORDX 58 #define PWORDY 46 //#define PBOXX 68 #define PBOXX ( ( 288 - PBOXW ) / 2 ) #define PBOXY 71 #define PBOXW 115 #define PSTRW 110 #define PBOXH 12 #define QUICKSAVEBACKUP ("rottgamf.rot") //****************************************************************************** // // ENUMS // //****************************************************************************** typedef struct { int allowed[4]; } CustomCtrls; // FOR INPUT TYPES enum {MOUSE, JOYSTICK, KEYBOARDBTNS, KEYBOARDMOVE, SPECIAL1, SPECIAL2}; //****************************************************************************** // // GLOBALS // //****************************************************************************** static byte *ScanNames[] = // Scan code names with single chars { "?","?","1","2","3","4","5","6","7","8","9","0","-","+","?","?", "Q","W","E","R","T","Y","U","I","O","P","[","]","|","?","A","S", "D","F","G","H","J","K","L",";","\"","?","?","?","Z","X","C","V", "B","N","M",",",".","/","?","?","?","?","?","?","?","?","?","?", "?","?","?","?","?","?","?","?","\xf","?","-","\x15","5","\x11","+","?", "\x13","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?" }; static byte ExtScanCodes[] = // Scan codes with >1 char names { 1, 0xe, 0xf, 0x1d, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x57, 0x58, 0x46, 0x1c, 0x36, 0x37, 0x38, 0x47, 0x49, 0x4f, 0x51, 0x52, 0x53, 0x45, 0x48, 0x50, 0x4b, 0x4d, 0x00 }; static byte *ExtScanNames[] = // Names corresponding to ExtScanCodes { "Esc","BkSp","Tab","Ctrl","Space","CapLk","F1","F2","F3","F4", "F5","F6","F7","F8","F9","F10","F11","F12","SclLk","Enter","Shift", "PrtSc","Alt","Home","PgUp","End","PgDn","Ins","Del","NumLk","Up", "Down","Left","Right","" }; //****************************************************************************** // // PROTOTYPES // //****************************************************************************** void MouseSensitivity (void); void DoThreshold (void); byte * IN_GetScanName (ScanCode scan); void DisplayInfo (int which); void PrintLSEntry (int w); void DrawHalfStep (int x, int y); void DrawCtlScreen (void); void DrawCtlButtons (void); void DrawSoundMenu (void); void DrawCustomScreen (void); void DrawLoadSaveScreen (int loadsave); void DrawLoadSaveScreenAlt (int loadsave); void DrawMusicMenu (void); void DrawNewGame (void); void DrawNewGameDiff (int w); void DrawNewPlayerDiff (int w); void DrawFXMenu (void); void DrawFXButtons (void); void DrawCustomJoystick (void); void DrawCustomMouse (void); void DrawCustomSpecial (void); void DrawCustomMenu (void); void DrawPlayerMenu (void); void DoMainMenu (void); boolean CP_DisplayMsg (char *s, int number); void CP_EndGame (void); int CP_SaveGame (void); void CP_Control (void); void CP_Sound (void); void CP_ChangeView (void); void CP_DoubleClickSpeed( void ); void CP_ErrorMsg( char *title, char *error, int font ); void CP_Quit (int which); void CP_NewGame (void); void CP_Music (void); void CP_FX (void); void CP_MCports (void); void CP_FXMenu (void); void CP_Custom (void); void CP_Keyboard (void); void CP_Mouse (void); void CP_Joystick (void); void CP_Special (void); void CP_OrderInfo( void ); void DefineMouseBtns1 (void); void DefineMouseBtns2 (void); void DefineKeyBtns1 (void); void DefineKeyBtns2 (void); void DefineKeyMove1 (void); void DefineKeyMove2 (void); void DefineJoyBtns1 (void); void DefineJoyBtns2 (void); void DefineSpecialBtns1 (void); void DefineSpecialBtns2 (void); void DrawSTMenuBuf (int x, int y, int w, int h, boolean up); void MusicVolume (void); void FXVolume (void); void DefineKey( void ); void DefineJoyBtn( void ); void DefineMouseBtn( void ); void DrawControlMenu (void); void CP_ControlMenu (void); void DrawOptionsMenu (void); void DrawExtOptionsMenu (void); void CP_ExtOptionsMenu (void); void CP_OptionsMenu (void); void DrawOptionsButtons (void); void DrawExtOptionsButtons (void); void MenuFlipSpeed (void); void DrawDetailMenu (void); void CP_DetailMenu (void); void DrawBattleMenu (void); void CP_BattleMenu (void); void MCERROR (void); void DrawKeyboardMenu (void); void CP_KeyboardMenu (void); boolean SliderMenu( int *number, int upperbound, int lowerbound, int erasex, int erasey, int erasew, int numadjust, char *blockname, void (*routine) (int w), char *title, char *left, char *right ); void DrawF1Help (void); void CP_F1Help (void); void CP_ScreenSize( void ); void CP_ViolenceMenu (void); void DrawViolenceLevelMenu (void); void DrawViolenceLevelPWord (void); void DrawViolenceLevel (void); void CP_ViolenceLevel (void); void DrawPWMenu (void); void CP_PWMenu (void); void DrawBattleModes (void); void CP_BattleModes (void); void DrawBattleOptions (void); void CP_BattleOptions (void); void DrawGravityMenu (void); void CP_GravityOptions (void); void DrawSpeedMenu (void); void CP_SpeedOptions (void); void DrawAmmoPerWeaponMenu (void); void CP_AmmoPerWeaponOptions (void); void DrawHitPointsMenu (void); void CP_HitPointsOptions (void); void DrawSpawnControlMenu (void); void DrawSpawnControlButtons (void); void CP_SpawnControlOptions (void); void DrawLightLevelMenu (void); void CP_LightLevelOptions (void); void DrawPointGoalMenu (void); void CP_PointGoalOptions (void); void DrawDangerMenu (void); void CP_DangerOptions (void); void DrawTimeLimitMenu (void); void CP_TimeLimitOptions (void); void PrintBattleOption( boolean inmenu, int x, int y, char *text ); void CP_OnePlayerWarningMessage( void ); void DrawMultiPageCustomMenu( char *title, void ( *redrawfunc )( void ) ); #endif