123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- /*
- Copyright (C) 2004-2005 Michael Liebscher <johnnycanuck@users.sourceforge.net>
- Copyright (C) 1997-2001 Id Software, Inc.
- 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.
- */
- /*
- * unix_main.c: UNIX interface to application.
- *
- * Author: Michael Liebscher <johnnycanuck@users.sourceforge.net>
- *
- * Acknowledgement:
- * This code was derived from Quake II, and was originally
- * written by Id Software, Inc.
- *
- */
- #include "../wolfiphone.h"
- cvar_t *controlScheme;
- cvar_t *sensitivity;
- cvar_t *stickSize;
- cvar_t *stickTurnBase;
- cvar_t *stickTurnScale;
- cvar_t *stickMoveBase;
- cvar_t *stickMoveScale;
- cvar_t *stickDeadBand;
- cvar_t *tiltTurn;
- cvar_t *tiltMove;
- cvar_t *tiltDeadBand;
- cvar_t *tiltAverages;
- cvar_t *tiltFire;
- cvar_t *music;
- cvar_t *showTilt;
- cvar_t *cropSprites;
- cvar_t *blends;
- cvar_t *gunFrame;
- cvar_t *slowAI;
- W32 sys_frame_time;
- void Sys_Error( const char *format, ... )
- {
- va_list argptr;
- char string[ 1024 ];
- va_start( argptr, format );
- (void)vsnprintf( string, sizeof( string ), format, argptr );
- va_end( argptr );
- fprintf( stderr, "Error: %s\n", string );
- _exit( 1 );
- }
- void Sys_Quit (void)
- {
- _exit( 0 );
- }
- void Sys_SendKeyEvents (void)
- {
- }
- char *Sys_GetClipboardData( void )
- {
- return NULL;
- }
- void Reset_f() {
- memset( ¤tMap, 0, sizeof( currentMap ) );
- currentMap.skill = 1;
- cvar_vars = NULL; // don't write any cvars to the config file
- iphoneShutdown();
- }
- /*
- ==================
- iphoneStartup
-
- ==================
- */
- void iphoneStartup() {
- int i;
- char *s;
- int start = Sys_Milliseconds();
-
- z_chain.next = z_chain.prev = &z_chain;
-
- InitImmediateModeGL();
-
- // Prepare enough of the subsystems to handle
- // cvar and command buffer management.
- COM_InitArgv( 0, NULL ); // FIXME: get args...
-
- Cmd_Init();
- Cvar_Init();
- Con_Init();
- FS_InitFilesystem();
-
- // We need to add the early commands twice, because
- // a basedir or cddir needs to be set before execing
- // config files, but we want other parms to override
- // the settings of the config files.
- Cbuf_AddEarlyCommands( false );
- Cbuf_Execute();
-
- R_Init();
- Cmd_AddCommand( "reset", Reset_f );
- developer = Cvar_Get( "developer", "0", CVAR_INIT );
- logfile_active = Cvar_Get( "logfile", "0", CVAR_INIT );
-
- s = va( "%s %s %s %s %s %s", APP_VERSION, RELEASENAME, CPUSTRING, __DATE__, __TIME__, BUILDSTRING );
- Cvar_Get( "version", s, CVAR_SERVERINFO | CVAR_NOSET );
-
- Con_Init();
-
- Sound_Init();
-
- Game_Init(); // game and player init
-
- Cbuf_AddText( "exec config.cfg\n" );
- Cbuf_AddEarlyCommands( true );
- Cbuf_Execute();
- // add + commands from command line
- Cbuf_AddLateCommands();
- Cbuf_Execute();
-
- for ( i = 0 ; i < 10 ; i++ ) {
- char name[64];
- sprintf( name, "iphone/font/%i.tga", i );
- numberPics[i] = TM_FindTexture( name, TT_Pic );
- }
-
- Com_Printf( "\n====== Application Initialized ======\n\n" );
-
- Sound_Activate( true );
- consoleActive = 0;
-
- controlScheme = Cvar_Get( "controlScheme", "0", CVAR_ARCHIVE );
- sensitivity = Cvar_Get( "sensitivity", "0.3", CVAR_ARCHIVE );
-
- stickSize = Cvar_Get( "stickSize", "120", CVAR_ARCHIVE );
- stickTurnBase = Cvar_Get( "stickTurnBase", "300", CVAR_ARCHIVE );
- stickTurnScale = Cvar_Get( "stickTurnScale", "500", CVAR_ARCHIVE );
- stickMoveBase = Cvar_Get( "stickMoveBase", "3000", CVAR_ARCHIVE );
- stickMoveScale = Cvar_Get( "stickMoveScale", "5000", CVAR_ARCHIVE );
- stickDeadBand = Cvar_Get( "stickDeadBand", "0.2", CVAR_ARCHIVE );
- tiltTurn = Cvar_Get( "tiltTurn", "0", CVAR_ARCHIVE );
- tiltMove = Cvar_Get( "tiltMove", "0", CVAR_ARCHIVE );
- tiltFire = Cvar_Get( "tiltFire", "0", CVAR_ARCHIVE );
- music = Cvar_Get( "music", "1", CVAR_ARCHIVE );
- tiltDeadBand = Cvar_Get( "tiltDeadBand", "0.08", CVAR_ARCHIVE );
- tiltAverages = Cvar_Get( "tiltAverages", "3", CVAR_ARCHIVE );
- cropSprites = Cvar_Get( "cropSprites", "1", 0 );
- showTilt = Cvar_Get( "showTilt", "-1", 0 );
- blends = Cvar_Get( "blends", "1", 0 );
- gunFrame = Cvar_Get( "gunFrame", "0", 0 );
- slowAI = Cvar_Get( "slowAI", "0", 0 );
-
- // these should get overwritten by LoadTheGame
- currentMap.skill = 1;
- currentMap.episode = 0;
-
- if ( !LoadTheGame() ) {
- memset( currentMap.mapFlags, 0,sizeof( currentMap.mapFlags ) );
- PL_NewGame( &Player );
- iphoneStartMap( 0, 0, 1 );
- }
-
- // always start at main menu
- menuState = IPM_MAIN;
-
- Com_Printf( "startup time: %i msec\n", Sys_Milliseconds() - start );
- }
- /*
- ==================
- iphoneWriteConfig
-
- ==================
- */
- void iphoneWriteConfig( void ) {
- FILE *fp;
- char path[ MAX_OSPATH];
- cvar_t *var;
- char buffer[1024];
-
- my_snprintf( path, sizeof( path ), "%s/config.cfg", iphoneDocDirectory );
- fp = fopen( path, "w" );
- if( ! fp ) {
- Com_Printf( "Could not write config.cfg.\n" );
- return;
- }
-
- // write out commands to set the archived cvars
- for( var = cvar_vars ; var ; var = var->next ) {
- if( var->flags & CVAR_ARCHIVE ) {
- my_snprintf( buffer, sizeof( buffer ), "set %s \"%s\"\n", var->name, var->string );
- fprintf( fp, "%s", buffer );
- Com_Printf( "%s", buffer );
- }
- }
-
- fclose( fp );
- }
- /*
- ==================
- iphoneShutdown
-
- Save the game at this position
- ==================
- */
- void iphoneShutdown() {
- Sound_StopAllSounds();
- Sound_StopBGTrack();
- iphoneWriteConfig();
- SaveTheGame();
- exit( 0 );
- }
|