void LoadedNPC::Load(int progress_start,int progress_interval) { Set_Progress_Bar_Position(progress_start); if (filename) { npc_rif = avp_load_rif_non_env(filename); if (INVALID_RIFFHANDLE != npc_rif) { #if MaxImageGroups>1 for (img_group=FIRST_FREE_IMAGE_GROUP; image_groups.contains(img_group); ++img_group) ; GLOBALASSERT(img_group<MaxImageGroups); image_groups.add_entry(img_group); SetCurrentImageGroup(img_group); // PROBLEM AT PRESENT, copy_rif_data changes this #endif Set_Progress_Bar_Position(progress_start+progress_interval/2); copy_rif_data(npc_rif,CCF_IMAGEGROUPSET + CCF_LOAD_AS_HIERARCHY_IF_EXISTS,progress_start+progress_interval/2,progress_interval/2); unload_rif(npc_rif); // doesnt destroy copied data } } }
void LoadRifFile() { char file_and_path[100]; int i = 0; Set_Progress_Bar_Position(PBAR_LEVEL_START); // clear the dir names for(i = 0; i < 100; i++) { file_and_path[i] = (char)0; EnvFileName[i] = (char)0; LevelDir[i] = (char)0; } // Set up the dirname for the Rif load catpathandextension(&file_and_path[0], (char *)&GameDataDirName[0]); catpathandextension(&file_and_path[0], Env_List[AvP.CurrentEnv]->main); /* root of the file name,smae as dir*/ catpathandextension(&file_and_path[0], (char *)&FileNameExtension[0]); /* extension*/ env_rif = avp_load_rif((const char*)&file_and_path[0]); Set_Progress_Bar_Position(PBAR_LEVEL_START+PBAR_LEVEL_INTERVAL*.4); if(INVALID_RIFFHANDLE == env_rif) { finiObjects(); exit(0x3421); }; #if MaxImageGroups>1 SetCurrentImageGroup(2); // FOR ENV #endif copy_rif_data(env_rif,CCF_ENVIRONMENT,PBAR_LEVEL_START+PBAR_LEVEL_INTERVAL*.4,PBAR_LEVEL_INTERVAL*.6); //setup_shading_tables(); }
void InitCharacter() { /*** RWH cleans up the character initialisation it would be nice if this can be called when we load up a game of a different character ***/ // load charcater specific rif and sounds if(player_rif != INVALID_RIFFHANDLE) { // we already have a player loaded - delete the bastard avp_undo_rif_load(player_rif); } if(alien_weapon_rif != INVALID_RIFFHANDLE) { // we already have a player loaded - delete the bastard avp_undo_rif_load(alien_weapon_rif); } if(marine_weapon_rif != INVALID_RIFFHANDLE) { // we already have a player loaded - delete the bastard avp_undo_rif_load(marine_weapon_rif); } if(predator_weapon_rif != INVALID_RIFFHANDLE) { // we already have a player loaded - delete the bastard avp_undo_rif_load(predator_weapon_rif); } #if MaxImageGroups==1 InitialiseTextures(); #else SetCurrentImageGroup(0); DeallocateCurrentImages(); #endif //Start_Progress_Bar(); //Set_Progress_Bar_Position(PBAR_HUD_START); switch(AvP.Network) { case I_No_Network: { // set up the standard single player game switch(AvP.PlayerType) { case I_Marine: { marine_weapon_rif = avp_load_rif("avp_huds/marwep.rif"); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25); player_rif = avp_load_rif("avp_huds/marine.rif"); break; } case I_Predator: { predator_weapon_rif = avp_load_rif("avp_huds/pred_hud.rif"); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25); player_rif = avp_load_rif("avp_huds/predator.rif"); break; } case I_Alien: { #if ALIEN_DEMO alien_weapon_rif = avp_load_rif("alienavp_huds/alien_hud.rif"); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25); player_rif = avp_load_rif("alienavp_huds/alien.rif"); #else alien_weapon_rif = avp_load_rif("avp_huds/alien_hud.rif"); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25); player_rif = avp_load_rif("avp_huds/alien.rif"); #endif break; } default: { GLOBALASSERT(2<1); } } break; } default: { // set up a multiplayer game - here becuse we might end // up with a cooperative game //load all weapon rifs marine_weapon_rif = avp_load_rif("avp_huds/marwep.rif"); predator_weapon_rif = avp_load_rif("avp_huds/pred_hud.rif"); alien_weapon_rif = avp_load_rif("avp_huds/alien_hud.rif"); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.25); player_rif = avp_load_rif("avp_huds/multip.rif"); } } //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.5); #if MaxImageGroups>1 SetCurrentImageGroup(0); #endif copy_rif_data(player_rif,CCF_IMAGEGROUPSET,PBAR_HUD_START+PBAR_HUD_INTERVAL*.5,PBAR_HUD_INTERVAL*.25); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL*.75); if(alien_weapon_rif!=INVALID_RIFFHANDLE) copy_rif_data(alien_weapon_rif,CCF_LOAD_AS_HIERARCHY_IF_EXISTS|CCF_IMAGEGROUPSET|CCF_DONT_INITIALISE_TEXTURES,PBAR_HUD_START+PBAR_HUD_INTERVAL*.5,PBAR_HUD_INTERVAL*.25); if(marine_weapon_rif!=INVALID_RIFFHANDLE) copy_rif_data(marine_weapon_rif,CCF_LOAD_AS_HIERARCHY_IF_EXISTS|CCF_IMAGEGROUPSET|CCF_DONT_INITIALISE_TEXTURES,PBAR_HUD_START+PBAR_HUD_INTERVAL*.5,PBAR_HUD_INTERVAL*.25); if(predator_weapon_rif!=INVALID_RIFFHANDLE) copy_rif_data(predator_weapon_rif,CCF_LOAD_AS_HIERARCHY_IF_EXISTS|CCF_IMAGEGROUPSET|CCF_DONT_INITIALISE_TEXTURES,PBAR_HUD_START+PBAR_HUD_INTERVAL*.5,PBAR_HUD_INTERVAL*.25); //Set_Progress_Bar_Position(PBAR_HUD_START+PBAR_HUD_INTERVAL); copy_chunks_from_environment(0); /*KJL************************************* * Setup generic data for weapons etc * *************************************KJL*/ InitialiseEquipment(); InitHUD(); }