/* ================= CG_RegisterWeapon ================= */ void CG_RegisterWeapon( int weaponNum ) { weaponInfo_t *weaponInfo; char path[ MAX_QPATH ]; vec3_t mins, maxs; int i; if( weaponNum <= WP_NONE || weaponNum >= WP_NUM_WEAPONS ) { CG_Error( "CG_RegisterWeapon: out of range: %d", weaponNum ); return; } weaponInfo = &cg_weapons[ weaponNum ]; if( weaponInfo->registered ) { CG_Printf( "CG_RegisterWeapon: already registered: (%d) %s\n", weaponNum, BG_Weapon( weaponNum )->name ); return; } weaponInfo->registered = qtrue; if( !BG_Weapon( weaponNum )->name[ 0 ] ) CG_Error( "Couldn't find weapon %i", weaponNum ); Com_sprintf( path, MAX_QPATH, "models/weapons/%s/weapon.cfg", BG_Weapon( weaponNum )->name ); weaponInfo->humanName = BG_Weapon( weaponNum )->humanName; if( !CG_ParseWeaponFile( path, weaponInfo ) ) Com_Printf( S_COLOR_RED "ERROR: failed to parse %s\n", path ); // calc midpoint for rotation trap_R_ModelBounds( weaponInfo->weaponModel, mins, maxs ); for( i = 0 ; i < 3 ; i++ ) weaponInfo->weaponMidpoint[ i ] = mins[ i ] + 0.5 * ( maxs[ i ] - mins[ i ] ); }
/* ================= CG_RegisterWeapon ================= */ void CG_RegisterWeapon( int weaponNum ) { weaponInfo_t *weaponInfo; char path[ MAX_QPATH ]; vec3_t mins, maxs; int i; weaponInfo = &cg_weapons[ weaponNum ]; if( weaponNum == 0 ) return; if( weaponInfo->registered ) return; memset( weaponInfo, 0, sizeof( *weaponInfo ) ); weaponInfo->registered = qtrue; if( !BG_FindNameForWeapon( weaponNum ) ) CG_Error( "Couldn't find weapon %i", weaponNum ); Com_sprintf( path, MAX_QPATH, "models/weapons/%s/weapon.cfg", BG_FindNameForWeapon( weaponNum ) ); weaponInfo->humanName = BG_FindHumanNameForWeapon( weaponNum ); if( !CG_ParseWeaponFile( path, weaponInfo ) ) Com_Printf( S_COLOR_RED "ERROR: failed to parse %s\n", path ); // calc midpoint for rotation trap_R_ModelBounds( weaponInfo->weaponModel, mins, maxs ); for( i = 0 ; i < 3 ; i++ ) weaponInfo->weaponMidpoint[ i ] = mins[ i ] + 0.5 * ( maxs[ i ] - mins[ i ] ); //FIXME: for( i = WPM_NONE + 1; i < WPM_NUM_WEAPONMODES; i++ ) weaponInfo->wim[ i ].loopFireSound = qfalse; }