/* ================= CG_RegisterGraphics This function may execute for a couple of minutes with a slow disk. ================= */ static void CG_RegisterGraphics( void ) { gitem_t *backpack; int i; char items[MAX_ITEMS+1]; static char *sb_nums[11] = { "gfx/2d/numbers/zero_32b", "gfx/2d/numbers/one_32b", "gfx/2d/numbers/two_32b", "gfx/2d/numbers/three_32b", "gfx/2d/numbers/four_32b", "gfx/2d/numbers/five_32b", "gfx/2d/numbers/six_32b", "gfx/2d/numbers/seven_32b", "gfx/2d/numbers/eight_32b", "gfx/2d/numbers/nine_32b", "gfx/2d/numbers/minus_32b", }; // clear any references to old media memset( &cg.refdef, 0, sizeof( cg.refdef ) ); trap_R_ClearScene(); CG_LoadingString( cgs.mapname ); trap_R_LoadWorldMap( cgs.mapname ); // precache status bar pics CG_LoadingString( "game media" ); for ( i=0 ; i<11 ; i++) { cgs.media.numberShaders[i] = trap_R_RegisterShader( sb_nums[i] ); } cgs.media.botSkillShaders[0] = trap_R_RegisterShader( "menu/art/skill1.tga" ); cgs.media.botSkillShaders[1] = trap_R_RegisterShader( "menu/art/skill2.tga" ); cgs.media.botSkillShaders[2] = trap_R_RegisterShader( "menu/art/skill3.tga" ); cgs.media.botSkillShaders[3] = trap_R_RegisterShader( "menu/art/skill4.tga" ); cgs.media.botSkillShaders[4] = trap_R_RegisterShader( "menu/art/skill5.tga" ); cgs.media.viewBloodShader = trap_R_RegisterShader( "viewBloodBlend" ); cgs.media.deferShader = trap_R_RegisterShaderNoMip( "gfx/2d/defer.tga" ); cgs.media.scoreboardName = trap_R_RegisterShaderNoMip( "menu/tab/name.tga" ); cgs.media.scoreboardPing = trap_R_RegisterShaderNoMip( "menu/tab/ping.tga" ); cgs.media.scoreboardScore = trap_R_RegisterShaderNoMip( "menu/tab/score.tga" ); cgs.media.scoreboardTime = trap_R_RegisterShaderNoMip( "menu/tab/time.tga" ); cgs.media.objectivesOverlay = trap_R_RegisterShaderNoMip( CG_ConfigString(CS_OBJECTIVESOVERLAY) ); cgs.media.objectivesUpdated = trap_R_RegisterShaderNoMip( "menu/objectives/updated.tga" ); cgs.media.objectivesUpdatedSound = trap_S_RegisterSound( "sound/misc/objective_update_01.wav", qfalse ); cgs.media.deathImage = trap_R_RegisterShaderNoMip( "menu/art/level_complete5" ); cgs.media.scoreShow = trap_S_RegisterSound( "sound/weapons/rocket/rocklx1a.wav", qfalse ); cgs.media.finalScoreShow = trap_S_RegisterSound( "sound/weapons/rocket/rocklx1a.wav", qfalse ); cgs.media.smokePuffShader = trap_R_RegisterShader( "smokePuff" ); cgs.media.smokePuffRageProShader = trap_R_RegisterShader( "smokePuffRagePro" ); cgs.media.shotgunSmokePuffShader = trap_R_RegisterShader( "shotgunSmokePuff" ); cgs.media.plasmaBallShader = trap_R_RegisterShader( "sprites/plasma1" ); cgs.media.bloodTrailShader = trap_R_RegisterShader( "bloodTrail" ); cgs.media.lagometerShader = trap_R_RegisterShader("lagometer" ); cgs.media.connectionShader = trap_R_RegisterShader( "disconnected" ); cgs.media.waterBubbleShader = trap_R_RegisterShader( "waterBubble" ); cgs.media.tracerShader = trap_R_RegisterShader( "gfx/misc/tracer" ); cgs.media.selectShader = trap_R_RegisterShader( "gfx/2d/select" ); for ( i = 0 ; i < NUM_CROSSHAIRS ; i++ ) { cgs.media.crosshairShader[i] = trap_R_RegisterShader( va("gfx/2d/crosshair%c", 'a'+i) ); } cgs.media.backTileShader = trap_R_RegisterShader( "gfx/2d/backtile" ); cgs.media.noammoShader = trap_R_RegisterShader( "icons/noammo" ); // powerup shaders cgs.media.quadShader = trap_R_RegisterShader("powerups/quad" ); cgs.media.quadWeaponShader = trap_R_RegisterShader("powerups/quadWeapon" ); cgs.media.battleSuitShader = trap_R_RegisterShader("powerups/battleSuit" ); cgs.media.battleWeaponShader = trap_R_RegisterShader("powerups/battleWeapon" ); cgs.media.invisShader = trap_R_RegisterShader("powerups/invisibility" ); cgs.media.regenShader = trap_R_RegisterShader("powerups/regen" ); cgs.media.hastePuffShader = trap_R_RegisterShader("hasteSmokePuff" ); if ( cg_buildScript.integer ) { cgs.media.redCubeModel = trap_R_RegisterModel( "models/powerups/orb/r_orb.md3" ); cgs.media.blueCubeModel = trap_R_RegisterModel( "models/powerups/orb/b_orb.md3" ); cgs.media.redCubeIcon = trap_R_RegisterShader( "icons/skull_red" ); cgs.media.blueCubeIcon = trap_R_RegisterShader( "icons/skull_blue" ); } if ( cg_buildScript.integer ) { cgs.media.redFlagModel = trap_R_RegisterModel( "models/flags/r_flag.md3" ); cgs.media.blueFlagModel = trap_R_RegisterModel( "models/flags/b_flag.md3" ); cgs.media.redFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_red1" ); cgs.media.redFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_red2" ); cgs.media.redFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_red3" ); cgs.media.blueFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_blu1" ); cgs.media.blueFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_blu2" ); cgs.media.blueFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_blu3" ); } cgs.media.dustPuffShader = trap_R_RegisterShader("hasteSmokePuff" ); if ( CG_IsTeamGame() || cg_buildScript.integer ) { cgs.media.friendShader = trap_R_RegisterShader( "sprites/foe" ); cgs.media.redQuadShader = trap_R_RegisterShader("powerups/blueflag" ); cgs.media.teamStatusBar = trap_R_RegisterShader( "gfx/2d/colorbar.tga" ); } cgs.media.armorModel = trap_R_RegisterModel( "models/powerups/armor/armor_yel.md3" ); cgs.media.armorIcon = trap_R_RegisterShaderNoMip( "icons/iconr_yellow" ); cgs.media.machinegunBrassModel = trap_R_RegisterModel( "models/weapons2/shells/m_shell.md3" ); cgs.media.shotgunBrassModel = trap_R_RegisterModel( "models/weapons2/shells/s_shell.md3" ); cgs.media.gibAbdomen = trap_R_RegisterModel( "models/gibs/abdomen.md3" ); cgs.media.gibArm = trap_R_RegisterModel( "models/gibs/arm.md3" ); cgs.media.gibChest = trap_R_RegisterModel( "models/gibs/chest.md3" ); cgs.media.gibFist = trap_R_RegisterModel( "models/gibs/fist.md3" ); cgs.media.gibFoot = trap_R_RegisterModel( "models/gibs/foot.md3" ); cgs.media.gibForearm = trap_R_RegisterModel( "models/gibs/forearm.md3" ); cgs.media.gibIntestine = trap_R_RegisterModel( "models/gibs/intestine.md3" ); cgs.media.gibLeg = trap_R_RegisterModel( "models/gibs/leg.md3" ); cgs.media.gibSkull = trap_R_RegisterModel( "models/gibs/skull.md3" ); cgs.media.gibBrain = trap_R_RegisterModel( "models/gibs/brain.md3" ); cgs.media.debrislight1 = trap_R_RegisterModel( "models/debris/concrete_b1.md3" ); cgs.media.debrislight2 = trap_R_RegisterModel( "models/debris/concrete_b2.md3" ); cgs.media.debrislight3 = trap_R_RegisterModel( "models/debris/concrete_b3.md3" ); cgs.media.debrislight4 = trap_R_RegisterModel( "models/debris/concrete_b4.md3" ); cgs.media.debrislight5 = trap_R_RegisterModel( "models/debris/concrete_b5.md3" ); cgs.media.debrislight6 = trap_R_RegisterModel( "models/debris/concrete_b6.md3" ); cgs.media.debrislight7 = trap_R_RegisterModel( "models/debris/concrete_b7.md3" ); cgs.media.debrislight8 = trap_R_RegisterModel( "models/debris/concrete_b8.md3" ); cgs.media.debrisdark1 = trap_R_RegisterModel( "models/debris/concrete_d1.md3" ); cgs.media.debrisdark2 = trap_R_RegisterModel( "models/debris/concrete_d2.md3" ); cgs.media.debrisdark3 = trap_R_RegisterModel( "models/debris/concrete_d3.md3" ); cgs.media.debrisdark4 = trap_R_RegisterModel( "models/debris/concrete_d4.md3" ); cgs.media.debrisdark5 = trap_R_RegisterModel( "models/debris/concrete_d5.md3" ); cgs.media.debrisdark6 = trap_R_RegisterModel( "models/debris/concrete_d6.md3" ); cgs.media.debrisdark7 = trap_R_RegisterModel( "models/debris/concrete_d7.md3" ); cgs.media.debrisdark8 = trap_R_RegisterModel( "models/debris/concrete_d8.md3" ); cgs.media.debrislightlarge1 = trap_R_RegisterModel( "models/debris/concrete_b1_large.md3" ); cgs.media.debrislightlarge2 = trap_R_RegisterModel( "models/debris/concrete_b2_large.md3" ); cgs.media.debrislightlarge3 = trap_R_RegisterModel( "models/debris/concrete_b3_large.md3" ); cgs.media.debrisdarklarge1 = trap_R_RegisterModel( "models/debris/wood_b1.md3" ); cgs.media.debrisdarklarge2 = trap_R_RegisterModel( "models/debris/wood_b1.md3" ); cgs.media.debrisdarklarge3 = trap_R_RegisterModel( "models/debris/wood_b1.md3" ); cgs.media.debriswood1 = trap_R_RegisterModel( "models/debris/wood_b1.md3" ); cgs.media.debriswood2 = trap_R_RegisterModel( "models/debris/wood_b2.md3" ); cgs.media.debriswood3 = trap_R_RegisterModel( "models/debris/wood_b3.md3" ); cgs.media.debriswood4 = trap_R_RegisterModel( "models/debris/wood_b4.md3" ); cgs.media.debriswood5 = trap_R_RegisterModel( "models/debris/wood_b5.md3" ); cgs.media.debrisglass1 = trap_R_RegisterModel( "models/debris/glass_1.md3" ); cgs.media.debrisglass2 = trap_R_RegisterModel( "models/debris/glass_2.md3" ); cgs.media.debrisglass3 = trap_R_RegisterModel( "models/debris/glass_3.md3" ); cgs.media.debrisglass4 = trap_R_RegisterModel( "models/debris/glass_4.md3" ); cgs.media.debrisglass5 = trap_R_RegisterModel( "models/debris/glass_5.md3" ); cgs.media.debrisglasslarge1 = trap_R_RegisterModel( "models/debris/glass_1_large.md3" ); cgs.media.debrisglasslarge2 = trap_R_RegisterModel( "models/debris/glass_2_large.md3" ); cgs.media.debrisglasslarge3 = trap_R_RegisterModel( "models/debris/glass_3_large.md3" ); cgs.media.debrisglasslarge4 = trap_R_RegisterModel( "models/debris/glass_4_large.md3" ); cgs.media.debrisglasslarge5 = trap_R_RegisterModel( "models/debris/glass_5_large.md3" ); cgs.media.debrisstone1 = trap_R_RegisterModel( "models/debris/stone_1.md3" ); cgs.media.debrisstone2 = trap_R_RegisterModel( "models/debris/stone_2.md3" ); cgs.media.debrisstone3 = trap_R_RegisterModel( "models/debris/stone_3.md3" ); cgs.media.debrisstone4 = trap_R_RegisterModel( "models/debris/stone_4.md3" ); cgs.media.debrisstone5 = trap_R_RegisterModel( "models/debris/stone_5.md3" ); cgs.media.sparkShader = trap_R_RegisterShaderNoMip("spark"); cgs.media.smoke2 = trap_R_RegisterModel( "models/weapons2/shells/s_shell.md3" ); cgs.media.balloonShader = trap_R_RegisterShader( "sprites/balloon3" ); cgs.media.bloodExplosionShader = trap_R_RegisterShader( "bloodExplosion" ); cgs.media.bulletFlashModel = trap_R_RegisterModel("models/weaphits/bullet.md3"); cgs.media.ringFlashModel = trap_R_RegisterModel("models/weaphits/ring02.md3"); cgs.media.dishFlashModel = trap_R_RegisterModel("models/weaphits/boom01.md3"); cgs.media.teleportEffectModel = trap_R_RegisterModel( "models/misc/telep.md3" ); cgs.media.teleportEffectShader = trap_R_RegisterShader( "teleportEffect" ); cgs.media.invulnerabilityPowerupModel = trap_R_RegisterModel( "models/powerups/shield/shield.md3" ); cgs.media.medalImpressive = trap_R_RegisterShaderNoMip( "medal_impressive" ); cgs.media.medalExcellent = trap_R_RegisterShaderNoMip( "medal_excellent" ); cgs.media.medalGauntlet = trap_R_RegisterShaderNoMip( "medal_gauntlet" ); cgs.media.medalDefend = trap_R_RegisterShaderNoMip( "medal_defend" ); cgs.media.medalAssist = trap_R_RegisterShaderNoMip( "medal_assist" ); cgs.media.medalCapture = trap_R_RegisterShaderNoMip( "medal_capture" ); memset( cg_items, 0, sizeof( cg_items ) ); memset( cg_weapons, 0, sizeof( cg_weapons ) ); // only register the items that the server says we need strcpy( items, CG_ConfigString( CS_ITEMS) ); for ( i = 1 ; i < bg_numItems ; i++ ) { if ( items[ i ] == '1' || cg_buildScript.integer ) { CG_LoadingItem( i ); CG_RegisterItemVisuals( i ); } } // wall marks cgs.media.bulletMarkShader = trap_R_RegisterShader( "gfx/damage/bullet_mrk" ); cgs.media.burnMarkShader = trap_R_RegisterShader( "gfx/damage/burn_med_mrk" ); cgs.media.holeMarkShader = trap_R_RegisterShader( "gfx/damage/hole_lg_mrk" ); cgs.media.energyMarkShader = trap_R_RegisterShader( "gfx/damage/plasma_mrk" ); cgs.media.shadowMarkShader = trap_R_RegisterShader( "markShadow" ); cgs.media.wakeMarkShader = trap_R_RegisterShader( "wake" ); cgs.media.bloodMarkShader = trap_R_RegisterShader( "bloodMark" ); // paintball mode marks cgs.media.bulletMarkPaintShader = trap_R_RegisterShader( "gfx/damage/bullet_mrk_paint" ); cgs.media.burnMarkPaintShader = trap_R_RegisterShader( "gfx/damage/burn_med_mrk_paint" ); cgs.media.holeMarkPaintShader = trap_R_RegisterShader( "gfx/damage/hole_lg_mrk_paint" ); cgs.media.energyMarkPaintShader = trap_R_RegisterShader( "gfx/damage/plasma_mrk_paint" ); // register the inline models cgs.numInlineModels = trap_CM_NumInlineModels(); for ( i = 1 ; i < cgs.numInlineModels ; i++ ) { char name[10]; vec3_t mins, maxs; int j; Com_sprintf( name, sizeof(name), "*%i", i ); cgs.inlineDrawModel[i] = trap_R_RegisterModel( name ); trap_R_ModelBounds( cgs.inlineDrawModel[i], mins, maxs ); for ( j = 0 ; j < 3 ; j++ ) { cgs.inlineModelMidpoints[i][j] = mins[j] + 0.5 * ( maxs[j] - mins[j] ); } } // register all the server specified models for (i=1 ; i<MAX_MODELS ; i++) { const char *modelName; modelName = CG_ConfigString( CS_MODELS+i ); if ( !modelName[0] ) { break; } cgs.gameModels[i] = trap_R_RegisterModel( modelName ); } CG_ClearParticles (); /* for (i=1; i<MAX_PARTICLES_AREAS; i++) { { int rval; rval = CG_NewParticleArea ( CS_PARTICLES + i); if (!rval) break; } } */ }
/* ================= CG_RegisterGraphics This function may execute for a couple of minutes with a slow disk. ================= */ static void CG_RegisterGraphics( void ) { int i; static char *sb_nums[11] = { "interface/fonts/numbers/0", "interface/fonts/numbers/1", "interface/fonts/numbers/2", "interface/fonts/numbers/3", "interface/fonts/numbers/4", "interface/fonts/numbers/5", "interface/fonts/numbers/6", "interface/fonts/numbers/7", "interface/fonts/numbers/8", "interface/fonts/numbers/9", "interface/fonts/numbers/-", }; // clear any references to old media memset( &cg.refdef, 0, sizeof( cg.refdef ) ); trap_R_ClearScene(); CG_LoadingString( cgs.mapname ); trap_R_LoadWorldMap( cgs.mapname ); CG_LoadingString( "game media" ); for ( i=0 ; i<11 ; i++) { cgs.media.numberShaders[i] = trap_R_RegisterShader( sb_nums[i] ); } cgs.media.waterBubbleLargeShader = trap_R_RegisterShader( "waterBubbleLarge" ); cgs.media.waterBubbleMediumShader = trap_R_RegisterShader( "waterBubbleMedium" ); cgs.media.waterBubbleSmallShader = trap_R_RegisterShader( "waterBubbleSmall" ); cgs.media.waterBubbleTinyShader = trap_R_RegisterShader( "waterBubbleTiny" ); cgs.media.selectShader = trap_R_RegisterShader( "interface/hud/select.png" ); cgs.media.chatBubble = trap_R_RegisterShader( "chatBubble"); for ( i = 0 ; i < NUM_CROSSHAIRS ; i++ ) { cgs.media.crosshairShader[i] = trap_R_RegisterShader( va("crosshair%c", 'a'+i) ); } cgs.media.speedLineShader = trap_R_RegisterShaderNoMip("speedLines"); cgs.media.speedLineSpinShader = trap_R_RegisterShaderNoMip("speedLinesSpin"); cgs.media.globalCelLighting = trap_R_RegisterShader("GlobalCelLighting"); cgs.media.waterSplashSkin = trap_R_RegisterSkin( "effects/water/waterSplash.skin" ); cgs.media.waterSplashModel = trap_R_RegisterModel( "effects/water/waterSplash.md3" ); cgs.media.waterRippleSkin = trap_R_RegisterSkin( "effects/water/waterRipple.skin" ); cgs.media.waterRippleModel = trap_R_RegisterModel( "effects/water/waterRipple.md3" ); cgs.media.waterRippleSingleSkin = trap_R_RegisterSkin( "effects/water/waterRippleSingle.skin" ); cgs.media.waterRippleSingleModel = trap_R_RegisterModel( "effects/water/waterRippleSingle.md3" ); cgs.media.meleeSpeedEffectShader = trap_R_RegisterShader( "skills/energyBlast" ); cgs.media.meleePowerEffectShader = trap_R_RegisterShader( "shockwave" ); cgs.media.teleportEffectShader = trap_R_RegisterShader( "teleportEffect" ); cgs.media.boltEffectShader = trap_R_RegisterShader( "boltEffect" ); cgs.media.auraLightningSparks1 = trap_R_RegisterShader( "AuraLightningSparks1" ); cgs.media.auraLightningSparks2 = trap_R_RegisterShader( "AuraLightningSparks2" ); cgs.media.powerStruggleRaysEffectShader = trap_R_RegisterShader( "PowerStruggleRays" ); cgs.media.powerStruggleShockwaveEffectShader = trap_R_RegisterShader( "PowerStruggleShockwave" ); cgs.media.bfgLFGlare = trap_R_RegisterShader("bfgLFGlare"); cgs.media.bfgLFDisc = trap_R_RegisterShader("bfgLFDisc"); cgs.media.bfgLFRing = trap_R_RegisterShader("bfgLFRing"); cgs.media.bfgLFStar = trap_R_RegisterShader("bfgLFStar"); cgs.media.bfgLFLine = trap_R_RegisterShader("bfgLFLine"); memset( cg_weapons, 0, sizeof( cg_weapons ) ); cgs.media.wakeMarkShader = trap_R_RegisterShader( "wake" ); cgs.media.dirtPushShader = trap_R_RegisterShader( "DirtPush" ); cgs.media.dirtPushSkin = trap_R_RegisterSkin( "effects/shockwave/dirtPush.skin" ); cgs.media.dirtPushModel = trap_R_RegisterModel( "effects/shockwave/dirtPush.md3" ); cgs.media.hudShader = trap_R_RegisterShaderNoMip( "interface/hud/main.png" ); cgs.media.chatBackgroundShader = trap_R_RegisterShaderNoMip("chatBox"); cgs.media.markerAscendShader = trap_R_RegisterShaderNoMip( "interface/hud/markerAscend.png" ); cgs.media.markerDescendShader = trap_R_RegisterShaderNoMip( "interface/hud/markerDescend.png" ); cgs.media.breakLimitShader = trap_R_RegisterShaderNoMip( "breakLimit" ); cgs.media.RadarBlipShader = trap_R_RegisterShaderNoMip( "interface/sense/blip.png" ); cgs.media.RadarBlipTeamShader = trap_R_RegisterShaderNoMip( "interface/sense/blipteam.png" ); cgs.media.RadarBurstShader = trap_R_RegisterShaderNoMip( "interface/sense/burst.png" ); cgs.media.RadarWarningShader = trap_R_RegisterShaderNoMip( "interface/sense/warning.png" ); cgs.media.RadarMidpointShader = trap_R_RegisterShaderNoMip( "interface/sense/midpoint.png" ); // END ADDING // register the inline models cgs.numInlineModels = trap_CM_NumInlineModels(); for ( i = 1 ; i < cgs.numInlineModels ; i++ ) { char name[10]; vec3_t mins, maxs; int j; Com_sprintf( name, sizeof(name), "*%i", i ); cgs.inlineDrawModel[i] = trap_R_RegisterModel( name ); trap_R_ModelBounds( cgs.inlineDrawModel[i], mins, maxs, 0 ); for ( j = 0 ; j < 3 ; j++ ) { cgs.inlineModelMidpoints[i][j] = mins[j] + 0.5 * ( maxs[j] - mins[j] ); } } // register all the server specified models for (i=1 ; i<MAX_MODELS ; i++) { const char *modelName; modelName = CG_ConfigString( CS_MODELS+i ); if ( !modelName[0] ) { break; } cgs.gameModels[i] = trap_R_RegisterModel( modelName ); } CG_ClearParticles (); }
/* ================= CG_RegisterGraphics This function may execute for a couple of minutes with a slow disk. ================= */ static void CG_RegisterGraphics( void ) { int i; const char *str; // clear any references to old media memset( &cg.refdef, 0, sizeof( cg.refdef ) ); trap_R_ClearScene(); CG_LoadingString( cgs.mapname ); trap_R_LoadWorldMap( cgs.mapname ); // precache status bar pics CG_LoadingString( "game media" ); cgs.media.crosshairShader[0] = trap_R_RegisterShader( "gfx/2d/BLANK" ); cgs.media.crosshairShader[1] = trap_R_RegisterShader( "textures/hud/crosshair" ); cgs.media.crosshairShader[2] = trap_R_RegisterShader( "gfx/2d/crosshair" ); cgs.media.backTileShader = trap_R_RegisterShader( "gfx/2d/backtile" ); cgs.media.shadowMarkShader = trap_R_RegisterShader( "markShadow" ); cgs.media.wakeMarkShader = trap_R_RegisterShader( "wake" ); // su44: MoHAA zoom overlays cgs.media.zoomOverlayShader = trap_R_RegisterShader("textures/hud/zoomoverlay"); cgs.media.kar98TopOverlayShader = trap_R_RegisterShader("textures/hud/kartop.tga"); cgs.media.kar98BottomOverlayShader = trap_R_RegisterShader("textures/hud/karbottom.tga"); cgs.media.binocularsOverlayShader = trap_R_RegisterShader("textures/hud/binocularsoverlay"); // register the inline models cgs.numInlineModels = trap_CM_NumInlineModels(); for ( i = 1 ; i < cgs.numInlineModels ; i++ ) { char name[10]; vec3_t mins, maxs; int j; Com_sprintf( name, sizeof(name), "*%i", i ); cgs.inlineDrawModel[i] = trap_R_RegisterModel( name ); trap_R_ModelBounds( cgs.inlineDrawModel[i], mins, maxs ); for ( j = 0 ; j < 3 ; j++ ) { cgs.inlineModelMidpoints[i][j] = mins[j] + 0.5 * ( maxs[j] - mins[j] ); } } // register all the server specified models for (i=1 ; i<MAX_MODELS ; i++) { const char *modelName; modelName = CG_ConfigString( CS_MODELS+i ); if ( !modelName[0] ) { break; } cgs.gameModels[i] = trap_R_RegisterModel( modelName ); if( modelName[0] != '*') { cgs.gameTIKIs[i] = trap_TIKI_RegisterModel( modelName ); if(cgs.gameTIKIs[i] == 0) { CG_Printf("CG_RegisterGraphics: failed to load tiki file %s (%i)\n",modelName,i); } } } for (i=0; i<64; i++) { const char *itemName; itemName = CG_ConfigString( CS_WEAPONS+i ); if(itemName[0]) { CG_RegisterItemName(i, itemName); } } for( i = CS_RAIN_DENSITY; i != (CS_RAIN_NUMSHADERS+1); i++) { str = CG_ConfigString( i ); CG_RainCSUpdated(i,str); } str = CG_ConfigString( CS_FOGINFO ); sscanf(str, "%d %f %f %f %f", &cg.farplane_cull, &cg.farplane_distance, &cg.farplane_color[0], &cg.farplane_color[1], &cg.farplane_color[2]); CG_ClearParticles (); }