void CCustomDetector::Load(LPCSTR section) { inherited::Load (section); m_fRadius = pSettings->r_float(section,"radius"); if( pSettings->line_exist(section,"night_vision_particle") ) m_nightvision_particle = pSettings->r_string(section,"night_vision_particle"); u32 i = 1; string256 temp; //загрузить звуки для обозначения различных типов зон do { sprintf (temp, "zone_class_%d", i); if(pSettings->line_exist(section,temp)) { LPCSTR z_Class = pSettings->r_string(section,temp); CLASS_ID zone_cls = TEXT2CLSID(pSettings->r_string(z_Class,"class")); m_ZoneTypeMap.insert (std::make_pair(zone_cls,ZONE_TYPE())); ZONE_TYPE& zone_type = m_ZoneTypeMap[zone_cls]; sprintf (temp, "zone_min_freq_%d", i); zone_type.min_freq = pSettings->r_float(section,temp); sprintf (temp, "zone_max_freq_%d", i); zone_type.max_freq = pSettings->r_float(section,temp); R_ASSERT (zone_type.min_freq<zone_type.max_freq); sprintf (temp, "zone_sound_%d_", i); HUD_SOUND::LoadSound(section, temp ,zone_type.detect_snds , SOUND_TYPE_ITEM); sprintf (temp, "zone_map_location_%d", i); if( pSettings->line_exist(section,temp) ) zone_type.zone_map_location = pSettings->r_string(section,temp); ++i; } else break; } while(true); m_ef_detector_type = pSettings->r_u32(section,"ef_detector_type"); }
bool CMainMenu::ReloadUI() { if(m_startDialog) { if(m_startDialog->IsShown()) m_startDialog->HideDialog (); CleanInternals (); } DLL_Pure* dlg = NEW_INSTANCE(TEXT2CLSID("MAIN_MNU")); if(!dlg) { m_Flags.set (flActive|flNeedChangeCapture,FALSE); return false; } xr_delete (m_startDialog); m_startDialog = smart_cast<CUIDialogWnd*>(dlg); VERIFY (m_startDialog); m_startDialog->m_bWorkInPause= true; m_startDialog->ShowDialog (true); m_activatedScreenRatio = (float)Device.dwWidth/(float)Device.dwHeight > (UI_BASE_WIDTH/UI_BASE_HEIGHT+0.01f); return true; }
//////////////////////////////////////////////////////////////////////////// // CSE_Abstract //////////////////////////////////////////////////////////////////////////// CSE_Abstract::CSE_Abstract (LPCSTR caSection) { m_editor_flags.zero (); RespawnTime = 0; net_Ready = FALSE; ID = 0xffff; ID_Parent = 0xffff; ID_Phantom = 0xffff; owner = 0; s_gameid = 0; s_RP = 0xFE; // Use supplied coords s_flags.assign (0); s_name = caSection; s_name_replace = 0; //xr_strdup(""); o_Angle.set (0.f,0.f,0.f); o_Position.set (0.f,0.f,0.f); m_bALifeControl = false; m_wVersion = 0; m_script_version = 0; m_tClassID = TEXT2CLSID(pSettings->r_string(caSection,"class")); // m_spawn_probability = 1.f; m_spawn_flags.zero (); m_spawn_flags.set (flSpawnEnabled ,TRUE); m_spawn_flags.set (flSpawnOnSurgeOnly ,TRUE); m_spawn_flags.set (flSpawnSingleItemOnly ,TRUE); m_spawn_flags.set (flSpawnIfDestroyedOnly ,TRUE); m_spawn_flags.set (flSpawnInfiniteCount ,TRUE); // m_max_spawn_count = 1; // m_spawn_control = ""; // m_spawn_count = 0; // m_last_spawn_time = 0; // m_next_spawn_time = 0; // m_min_spawn_interval = 0; // m_max_spawn_interval = 0; m_ini_file = 0; if (pSettings->line_exist(caSection,"custom_data")) { string_path file_name; FS.update_path (file_name,"$game_config$",pSettings->r_string(caSection,"custom_data")); if (!FS.exist(file_name)) { Msg ("! cannot open config file %s",file_name); } else { IReader *reader = FS.r_open(file_name); VERIFY (reader); { int size = reader->length()*sizeof(char); LPSTR temp = (LPSTR)_alloca(size + 1); CopyMemory (temp,reader->pointer(),size); temp[size] = 0; m_ini_string = temp; } FS.r_close (reader); } } #ifndef AI_COMPILER m_script_clsid = object_factory().script_clsid(m_tClassID); #endif client_data.clear (); }
CLASS_ID CInifile::r_clsid( LPCSTR S, LPCSTR L) { LPCSTR C = r_string(S,L); return TEXT2CLSID(C); }
CLASS_ID game_GameState::getCLASS_ID(LPCSTR game_type_name, bool isServer) { if (!g_dedicated_server) { string_path S; FS.update_path (S,"$game_config$","script.ltx"); CInifile *l_tpIniFile = xr_new<CInifile>(S); R_ASSERT (l_tpIniFile); string256 I; strcpy(I,l_tpIniFile->r_string("common","game_type_clsid_factory")); luabind::functor<LPCSTR> result; R_ASSERT (ai().script_engine().functor(I,result)); shared_str clsid = result (game_type_name, isServer); xr_delete (l_tpIniFile); if(clsid.size()==0) Debug.fatal (DEBUG_INFO,"Unknown game type: %s",game_type_name); return (TEXT2CLSID(*clsid)); } if (isServer) { if (!xr_strcmp(game_type_name,"single")) return (TEXT2CLSID("SV_SINGL")); if (!xr_strcmp(game_type_name,"deathmatch")) return (TEXT2CLSID("SV_DM")); if (!xr_strcmp(game_type_name,"teamdeathmatch")) return (TEXT2CLSID("SV_TDM")); if (!xr_strcmp(game_type_name,"artefacthunt")) return (TEXT2CLSID("SV_AHUNT")); return (TEXT2CLSID("")); } if (!xr_strcmp(game_type_name,"single")) return (TEXT2CLSID("CL_SINGL")); if (!xr_strcmp(game_type_name,"deathmatch")) return (TEXT2CLSID("CL_DM")); if (!xr_strcmp(game_type_name,"teamdeathmatch")) return (TEXT2CLSID("CL_TDM")); if (!xr_strcmp(game_type_name,"artefacthunt")) return (TEXT2CLSID("CL_AHUNT")); return (TEXT2CLSID("")); }
//////////////////////////////////////////////////////////////////////////// // CSE_Abstract //////////////////////////////////////////////////////////////////////////// CSE_Abstract::CSE_Abstract (LPCSTR caSection) { m_editor_flags.zero (); RespawnTime = 0; net_Ready = FALSE; ID = 0xffff; ID_Parent = 0xffff; ID_Phantom = 0xffff; owner = 0; m_gameType.SetDefaults (); //. s_gameid = 0; s_RP = 0xFE; // Use supplied coords s_flags.assign (0); s_name = caSection; s_name_replace = 0; //xr_strdup(""); o_Angle.set (0.f,0.f,0.f); o_Position.set (0.f,0.f,0.f); m_bALifeControl = false; m_wVersion = 0; m_script_version = 0; m_tClassID = TEXT2CLSID(pSettings->r_string(caSection,"class")); // m_spawn_probability = 1.f; m_spawn_flags.zero (); m_spawn_flags.set (flSpawnEnabled ,TRUE); m_spawn_flags.set (flSpawnOnSurgeOnly ,TRUE); m_spawn_flags.set (flSpawnSingleItemOnly ,TRUE); m_spawn_flags.set (flSpawnIfDestroyedOnly ,TRUE); m_spawn_flags.set (flSpawnInfiniteCount ,TRUE); // m_max_spawn_count = 1; // m_spawn_control = ""; // m_spawn_count = 0; // m_last_spawn_time = 0; // m_next_spawn_time = 0; // m_min_spawn_interval = 0; // m_max_spawn_interval = 0; m_ini_file = 0; if (pSettings->line_exist(caSection,"custom_data")) { pcstr const raw_file_name = pSettings->r_string(caSection,"custom_data"); IReader const* config = 0; #ifdef XRGAME_EXPORTS if ( ai().get_alife() ) config = ai().alife().get_config( raw_file_name ); else #endif // #ifdef XRGAME_EXPORTS { string_path file_name; FS.update_path (file_name,"$game_config$", raw_file_name); if ( FS.exist(file_name) ) config = FS.r_open(file_name); } if ( config ) { int size = config->length()*sizeof(char); LPSTR temp = (LPSTR)_alloca(size + 1); CopyMemory (temp,config->pointer(),size); temp[size] = 0; m_ini_string = temp; #ifdef XRGAME_EXPORTS if ( NULL==ai().get_alife() ) #endif // #ifdef XRGAME_EXPORTS { IReader* _r = (IReader*)config; FS.r_close(_r); } } else Msg ( "! cannot open config file %s", raw_file_name ); } #ifndef AI_COMPILER m_script_clsid = object_factory().script_clsid(m_tClassID); #endif }
void CObjectFactory::register_classes () { #ifndef NO_XR_GAME // client entities add<CLevel> (CLSID_GAME_LEVEL ,"level"); add<CGamePersistent> (CLSID_GAME_PERSISTANT ,"game"); add<CHUDManager> (CLSID_HUDMANAGER ,"hud_manager"); //Server Game type #ifndef NO_SINGLE add<game_sv_Single> (CLSID_SV_GAME_SINGLE ,"game_sv_single"); #endif // #ifndef NO_SINGLE #ifndef BENCHMARK_BUILD add<game_sv_Deathmatch> (CLSID_SV_GAME_DEATHMATCH ,"game_sv_deathmatch"); add<game_sv_TeamDeathmatch> (CLSID_SV_GAME_TEAMDEATHMATCH ,"game_sv_team_deathmatch"); add<game_sv_ArtefactHunt> (CLSID_SV_GAME_ARTEFACTHUNT ,"game_sv_artefact_hunt"); add<game_sv_CaptureTheArtefact> (CLSID_SV_GAME_CAPTURETHEARTEFACT ,"game_sv_capture_the_artefact"); #endif // BENCHMARK_BUILD //Client Game type #ifndef NO_SINGLE add<game_cl_Single> (CLSID_CL_GAME_SINGLE ,"game_cl_single"); #endif // #ifndef NO_SINGLE #ifndef BENCHMARK_BUILD add<game_cl_Deathmatch> (CLSID_CL_GAME_DEATHMATCH ,"game_cl_deathmatch"); add<game_cl_TeamDeathmatch> (CLSID_CL_GAME_TEAMDEATHMATCH ,"game_cl_team_deathmatch"); add<game_cl_ArtefactHunt> (CLSID_CL_GAME_ARTEFACTHUNT ,"game_cl_artefact_hunt"); add<game_cl_CaptureTheArtefact> (CLSID_CL_GAME_CAPTURETHEARTEFACT ,"game_cl_capture_the_artefact"); #endif // BENCHMARK_BUILD add<CUIGameSP> (CLSID_GAME_UI_SINGLE ,"game_ui_single"); add<CUIGameDM> (CLSID_GAME_UI_DEATHMATCH ,"game_ui_deathmatch"); add<CUIGameTDM> (CLSID_GAME_UI_TEAMDEATHMATCH ,"game_ui_team_deathmatch"); add<CUIGameAHunt> (CLSID_GAME_UI_ARTEFACTHUNT ,"game_ui_artefact_hunt"); add<CUIGameCTA> (CLSID_GAME_UI_CAPTURETHEARTEFACT ,"game_ui_capture_the_artefact"); # ifndef NO_SINGLE ADD_MP(CActor,CActorMP,CSE_ALifeCreatureActor,CSE_ActorMP ,CLSID_OBJECT_ACTOR ,"actor"); # else // #ifndef NO_SINGLE ADD(CActorMP,CSE_ActorMP ,CLSID_OBJECT_ACTOR ,"actor"); # endif // #ifndef NO_SINGLE #else // NO_XR_GAME ADD(CActor ,CSE_ALifeCreatureActor ,CLSID_OBJECT_ACTOR ,"actor"); #endif // NO_XR_GAME // server entities #ifndef NO_SINGLE add<CSE_ALifeGroupTemplate<CSE_ALifeMonsterBase> > (CLSID_AI_FLESH_GROUP ,"flesh_group"); // add<CSE_SpawnGroup> (CLSID_AI_SPAWN_GROUP ,"spawn_group"); add<CSE_ALifeGraphPoint> (CLSID_AI_GRAPH ,"graph_point"); add<CSE_ALifeOnlineOfflineGroup> (CLSID_ONLINE_OFFLINE_GROUP ,"online_offline_group"); #endif // #ifndef NO_SINGLE // client and server entities ADD(CSpectator ,CSE_Spectator ,CLSID_SPECTATOR ,"spectator"); #ifndef NO_SINGLE ADD(CAI_Flesh ,CSE_ALifeMonsterBase ,CLSID_AI_FLESH ,"flesh"); ADD(CChimera ,CSE_ALifeMonsterBase ,CLSID_AI_CHIMERA ,"chimera"); ADD(CAI_Dog ,CSE_ALifeMonsterBase ,CLSID_AI_DOG_RED ,"dog_red"); ADD(CAI_Stalker ,CSE_ALifeHumanStalker ,CLSID_AI_STALKER ,"stalker"); ADD(CAI_Bloodsucker ,CSE_ALifeMonsterBase ,CLSID_AI_BLOODSUCKER ,"bloodsucker"); ADD(CAI_Boar ,CSE_ALifeMonsterBase ,CLSID_AI_BOAR ,"boar"); ADD(CAI_PseudoDog ,CSE_ALifeMonsterBase ,CLSID_AI_DOG_BLACK ,"dog_black"); ADD(CPsyDog ,CSE_ALifeMonsterBase ,CLSID_AI_DOG_PSY ,"psy_dog"); ADD(CPsyDogPhantom ,CSE_ALifePsyDogPhantom ,CLSID_AI_DOG_PSY_PHANTOM ,"psy_dog_phantom"); ADD(CBurer ,CSE_ALifeMonsterBase ,CLSID_AI_BURER ,"burer"); ADD(CPseudoGigant ,CSE_ALifeMonsterBase ,CLSID_AI_GIANT ,"pseudo_gigant"); ADD(CController ,CSE_ALifeMonsterBase ,CLSID_AI_CONTROLLER ,"controller"); ADD(CPoltergeist ,CSE_ALifeMonsterBase ,CLSID_AI_POLTERGEIST ,"poltergeist"); ADD(CZombie ,CSE_ALifeMonsterBase ,CLSID_AI_ZOMBIE ,"zombie"); ADD(CFracture ,CSE_ALifeMonsterBase ,CLSID_AI_FRACTURE ,"fracture"); ADD(CSnork ,CSE_ALifeMonsterBase ,CLSID_AI_SNORK ,"snork"); ADD(CCat ,CSE_ALifeMonsterBase ,CLSID_AI_CAT ,"cat"); ADD(CTushkano ,CSE_ALifeMonsterBase ,CLSID_AI_TUSHKANO ,"tushkano"); ADD(CPhantom ,CSE_ALifeCreaturePhantom ,CLSID_AI_PHANTOM ,"phantom"); // Trader ADD(CAI_Trader ,CSE_ALifeTrader ,CLSID_AI_TRADER ,"trader"); ADD(CAI_Crow ,CSE_ALifeCreatureCrow ,CLSID_AI_CROW ,"crow"); ADD(CAI_Rat ,CSE_ALifeMonsterRat ,CLSID_AI_RAT ,"rat"); ADD(CCar ,CSE_ALifeCar ,CLSID_CAR ,"car"); ADD(CHelicopter ,CSE_ALifeHelicopter ,CLSID_VEHICLE_HELICOPTER ,"helicopter"); #endif // #ifndef NO_SINGLE // Artefacts ADD(CElectricBall ,CSE_ALifeItemArtefact ,CLSID_AF_ELECTRIC_BALL ,"art_electric_ball"); ADD(CGraviArtefact ,CSE_ALifeItemArtefact ,CLSID_AF_GRAVI ,"art_gravi"); ADD(CGraviArtefact ,CSE_ALifeItemArtefact ,CLSID_ARTEFACT ,"artefact"); ADD(CtaGameArtefact ,CSE_ALifeItemArtefact ,CLSID_AF_CTA ,"art_cta"); // [8/15/2006] ADD(CWeaponMagazined ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_MAGAZINED ,"wpn_wmagaz"); // [8/15/2006] // [8/17/2006] ADD(CWeaponMagazinedWGrenade,CSE_ALifeItemWeaponMagazinedWGL,CLSID_OBJECT_W_MAGAZWGL ,"wpn_wmaggl"); // [8/17/2006] ADD(CWeaponFN2000 ,CSE_ALifeItemWeaponMagazinedWGL ,CLSID_OBJECT_W_FN2000 ,"wpn_fn2000"); ADD(CWeaponAK74 ,CSE_ALifeItemWeaponMagazinedWGL ,CLSID_OBJECT_W_AK74 ,"wpn_ak74"); ADD(CWeaponLR300 ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_LR300 ,"wpn_lr300"); ADD(CWeaponHPSA ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_HPSA ,"wpn_hpsa"); ADD(CWeaponPM ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_PM ,"wpn_pm"); ADD(CWeaponFORT ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_FORT ,"wpn_fort"); ADD(CWeaponBinoculars ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_BINOCULAR ,"wpn_binocular"); ADD(CWeaponShotgun ,CSE_ALifeItemWeaponShotGun ,CLSID_OBJECT_W_SHOTGUN ,"wpn_shotgun"); ADD(CWeaponSVD ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_SVD ,"wpn_svd"); ADD(CWeaponSVU ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_SVU ,"wpn_svu"); ADD(CWeaponRPG7 ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_RPG7 ,"wpn_rpg7"); ADD(CWeaponVal ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_VAL ,"wpn_val"); ADD(CWeaponVintorez ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_VINTOREZ ,"wpn_vintorez"); ADD(CWeaponWalther ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_WALTHER ,"wpn_walther"); ADD(CWeaponUSP45 ,CSE_ALifeItemWeaponMagazined ,CLSID_OBJECT_W_USP45 ,"wpn_usp45"); ADD(CWeaponGroza ,CSE_ALifeItemWeaponMagazinedWGL,CLSID_OBJECT_W_GROZA ,"wpn_groza"); ADD(CWeaponKnife ,CSE_ALifeItemWeapon ,CLSID_OBJECT_W_KNIFE ,"wpn_knife"); ADD(CWeaponBM16 ,CSE_ALifeItemWeaponShotGun ,CLSID_OBJECT_W_BM16 ,"wpn_bm16"); ADD(CWeaponRG6 ,CSE_ALifeItemWeaponShotGun ,CLSID_OBJECT_W_RG6 ,"wpn_rg6"); //----------------------------------------------------------------------------------------------------- ADD(CWeaponAmmo ,CSE_ALifeItemAmmo ,CLSID_OBJECT_AMMO ,"wpn_ammo"); ADD(CWeaponAmmo ,CSE_ALifeItemAmmo ,CLSID_OBJECT_A_VOG25 ,"wpn_ammo_vog25"); ADD(CWeaponAmmo ,CSE_ALifeItemAmmo ,CLSID_OBJECT_A_OG7B ,"wpn_ammo_og7b"); ADD(CWeaponAmmo ,CSE_ALifeItemAmmo ,CLSID_OBJECT_A_M209 ,"wpn_ammo_m209"); //----------------------------------------------------------------------------------------------------- //Weapons Add-on ADD(CScope ,CSE_ALifeItem ,CLSID_OBJECT_W_SCOPE ,"wpn_scope"); ADD(CSilencer ,CSE_ALifeItem ,CLSID_OBJECT_W_SILENCER ,"wpn_silencer"); ADD(CGrenadeLauncher ,CSE_ALifeItem ,CLSID_OBJECT_W_GLAUNCHER ,"wpn_grenade_launcher"); // Inventory #ifndef NO_SINGLE ADD(CBolt ,CSE_ALifeItemBolt ,CLSID_IITEM_BOLT ,"obj_bolt"); #endif // #ifndef NO_SINGLE ADD(CMedkit ,CSE_ALifeItem ,CLSID_IITEM_MEDKIT ,"obj_medkit"); ADD(CMedkit ,CSE_ALifeItem ,CLSID_IITEM_BANDAGE ,"obj_bandage"); ADD(CMedkit ,CSE_ALifeItem ,CLSID_IITEM_ANTIRAD ,"obj_antirad"); ADD(CFoodItem ,CSE_ALifeItem ,CLSID_IITEM_FOOD ,"obj_food"); ADD(CBottleItem ,CSE_ALifeItem ,CLSID_IITEM_BOTTLE ,"obj_bottle"); ADD(CExplosiveItem ,CSE_ALifeItemExplosive ,CLSID_IITEM_EXPLOSIVE ,"obj_explosive"); //Info Document ADD(CInfoDocument ,CSE_ALifeItemDocument ,CLSID_IITEM_DOCUMENT ,"obj_document"); ADD(CInventoryItemObject ,CSE_ALifeItem ,CLSID_IITEM_ATTACH ,"obj_attachable"); //Equipment outfit ADD(CStalkerOutfit ,CSE_ALifeItemCustomOutfit ,CLSID_EQUIPMENT_STALKER ,"equ_stalker"); ADD(CHelmet ,CSE_ALifeItem ,CLSID_EQUIPMENT_HELMET ,"helmet"); // Grenades ADD(CF1 ,CSE_ALifeItemGrenade ,CLSID_GRENADE_F1 ,"wpn_grenade_f1"); ADD(CRGD5 ,CSE_ALifeItemGrenade ,CLSID_GRENADE_RGD5 ,"wpn_grenade_rgd5"); // Rockets ADD(CExplosiveRocket ,CSE_Temporary ,CLSID_OBJECT_G_RPG7 ,"wpn_grenade_rpg7"); ADD(CExplosiveRocket ,CSE_Temporary ,CLSID_OBJECT_G_FAKE ,"wpn_grenade_fake"); //----------------------------------------------------------------------------------------------------------------- ADD(CMPPlayersBag ,CSE_ALifeItem ,CLSID_OBJECT_PLAYERS_BAG ,"mp_players_bag"); //----------------------------------------------------------------------------------------------------------------- // Zones ADD(CCustomZone ,CSE_ALifeCustomZone ,CLSID_ZONE ,"zone"); ADD(CMosquitoBald ,CSE_ALifeAnomalousZone ,CLSID_Z_MBALD ,"zone_mosquito_bald"); ADD(CMincer ,CSE_ALifeAnomalousZone ,CLSID_Z_MINCER ,"zone_mincer"); ADD(CMosquitoBald ,CSE_ALifeAnomalousZone ,CLSID_Z_ACIDF ,"zone_acid_fog"); ADD(CMincer ,CSE_ALifeAnomalousZone ,CLSID_Z_GALANT ,"zone_galantine"); ADD(CRadioactiveZone ,CSE_ALifeAnomalousZone ,CLSID_Z_RADIO ,"zone_radioactive"); ADD(CHairsZone ,CSE_ALifeZoneVisual ,CLSID_Z_BFUZZ ,"zone_bfuzz"); ADD(CHairsZone ,CSE_ALifeZoneVisual ,CLSID_Z_RUSTYH ,"zone_rusty_hair"); ADD(CMosquitoBald ,CSE_ALifeAnomalousZone ,CLSID_Z_DEAD ,"zone_dead"); #ifndef BENCHMARK_BUILD ADD(CLevelChanger ,CSE_ALifeLevelChanger ,CLSID_LEVEL_CHANGER ,"level_changer"); #endif // BENCHMARK_BUILD ADD(CScriptZone ,CSE_ALifeSpaceRestrictor ,CLSID_SCRIPT_ZONE ,"script_zone"); ADD(CSmartZone ,CSE_ALifeSmartZone ,CLSID_SMART_ZONE ,"smart_zone"); ADD(CTeamBaseZone ,CSE_ALifeTeamBaseZone ,CLSID_Z_TEAM_BASE ,"team_base_zone"); ADD(CTorridZone ,CSE_ALifeTorridZone ,CLSID_Z_TORRID ,"torrid_zone"); ADD(CSpaceRestrictor ,CSE_ALifeSpaceRestrictor ,CLSID_SPACE_RESTRICTOR ,"space_restrictor"); //. ADD(CAmebaZone ,CSE_ALifeZoneVisual ,CLSID_Z_AMEBA ,"ameba_zone"); ADD(CNoGravityZone ,CSE_ALifeAnomalousZone ,CLSID_Z_NOGRAVITY ,"nogravity_zone"); ADD(CZoneCampfire ,CSE_ALifeAnomalousZone ,CLSID_Z_CAMPFIRE ,"zone_campfire"); // Detectors ADD(CSimpleDetector ,CSE_ALifeItemDetector ,CLSID_DETECTOR_SIMPLE ,"device_detector_simple"); ADD(CAdvancedDetector ,CSE_ALifeItemDetector ,CLSID_DETECTOR_ADVANCED ,"device_detector_advanced"); ADD(CEliteDetector ,CSE_ALifeItemDetector ,CLSID_DETECTOR_ELITE ,"device_detector_elite"); ADD(CScientificDetector ,CSE_ALifeItemDetector ,CLSID_DETECTOR_SCIENTIFIC ,"device_detector_scientific"); // Devices ADD(CTorch ,CSE_ALifeItemTorch ,CLSID_DEVICE_TORCH ,"device_torch"); ADD(CPda ,CSE_ALifeItemPDA ,CLSID_DEVICE_PDA ,"device_pda"); // objects ADD(CProjector ,CSE_ALifeObjectProjector ,CLSID_OBJECT_PROJECTOR ,"projector"); ADD(CWeaponStatMgun ,CSE_ALifeStationaryMgun ,CLSID_OBJECT_W_STATMGUN ,"wpn_stat_mgun"); // ADD(CTrigger ,CSE_Trigger ,CLSID_OBJECT_TRIGGER ,"trigger"); // entity ADD(CHangingLamp ,CSE_ALifeObjectHangingLamp ,CLSID_OBJECT_HLAMP ,"hanging_lamp"); ADD(CPhysicObject ,CSE_ALifeObjectPhysic ,CLSID_OBJECT_PHYSIC ,"obj_physic"); ADD(CScriptObject ,CSE_ALifeDynamicObjectVisual ,CLSID_SCRIPT_OBJECT ,"script_object"); ADD(CBreakableObject ,CSE_ALifeObjectBreakable ,CLSID_OBJECT_BREAKABLE ,"obj_breakable"); ADD(CClimableObject ,CSE_ALifeObjectClimable ,CLSID_OBJECT_CLIMABLE ,"obj_climable"); ADD(CPhysicsSkeletonObject ,CSE_ALifePHSkeletonObject ,CLSID_PH_SKELETON_OBJECT ,"obj_phskeleton"); ADD(CDestroyablePhysicsObject,CSE_ALifeObjectPhysic ,CLSID_PHYSICS_DESTROYABLE ,"obj_phys_destroyable"); ADD(CInventoryBox ,CSE_ALifeInventoryBox ,CLSID_INVENTORY_BOX ,"inventory_box"); #ifndef NO_SINGLE ADD(smart_cover::object ,CSE_SmartCover ,TEXT2CLSID("SMRTCOVR") ,"smart_cover"); #endif // #ifndef NO_SINGLE #ifndef NO_XR_GAME // hack, for dedicated server only // because we do not have scripts // and script functionality is not // needed here if (!g_dedicated_server) return; ADD(CElectricBall ,CSE_ALifeItemArtefact ,TEXT2CLSID("SCRPTART") ,"artefact_s"); // ADD(CtaGameArtefact ,CSE_ALifeItemArtefact ,TEXT2CLSID("AF_CTA") ,"ctaartefact_s"); ADD(CTorch ,CSE_ALifeItemTorch ,TEXT2CLSID("TORCH_S") ,"device_torch_s"); ADD(CStalkerOutfit ,CSE_ALifeItemCustomOutfit ,TEXT2CLSID("E_STLK") ,"equ_stalker_s"); ADD(CScope ,CSE_ALifeItem ,TEXT2CLSID("WP_SCOPE") ,"wpn_scope_s"); ADD(CWeaponAK74 ,CSE_ALifeItemWeaponMagazinedWGL,TEXT2CLSID("WP_AK74") ,"wpn_ak74_s"); ADD(CWeaponLR300 ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_LR300") ,"wpn_lr300_s"); ADD(CWeaponBinoculars ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_BINOC") ,"wpn_binocular_s"); ADD(CWeaponBM16 ,CSE_ALifeItemWeaponShotGun ,TEXT2CLSID("WP_BM16") ,"wpn_bm16_s"); ADD(CWeaponGroza ,CSE_ALifeItemWeaponMagazinedWGL,TEXT2CLSID("WP_GROZA") ,"wpn_groza_s"); ADD(CWeaponSVD ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_SVD") ,"wpn_svd_s"); ADD(CWeaponHPSA ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_HPSA") ,"wpn_hpsa_s"); ADD(CWeaponKnife ,CSE_ALifeItemWeapon ,TEXT2CLSID("WP_KNIFE") ,"wpn_knife_s"); ADD(CWeaponPM ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_PM") ,"wpn_pm_s"); ADD(CWeaponRG6 ,CSE_ALifeItemWeaponShotGun ,TEXT2CLSID("WP_RG6") ,"wpn_rg6_s"); ADD(CWeaponRPG7 ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_RPG7") ,"wpn_rpg7_s"); ADD(CWeaponShotgun ,CSE_ALifeItemWeaponShotGun ,TEXT2CLSID("WP_SHOTG") ,"wpn_shotgun_s"); ADD(CWeaponSVU ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_SVU") ,"wpn_svu_s"); ADD(CWeaponUSP45 ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_USP45") ,"wpn_usp45_s"); ADD(CWeaponVal ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_VAL") ,"wpn_val_s"); ADD(CWeaponVintorez ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_VINT") ,"wpn_vintorez_s"); ADD(CWeaponWalther ,CSE_ALifeItemWeaponMagazined ,TEXT2CLSID("WP_WALTH") ,"wpn_walther_s"); ADD(CHairsZone ,CSE_ALifeZoneVisual ,TEXT2CLSID("ZS_BFUZZ") ,"zone_bfuzz_s"); ADD(CMosquitoBald ,CSE_ALifeAnomalousZone ,TEXT2CLSID("ZS_MBALD") ,"zone_mbald_s"); ADD(CMincer ,CSE_ALifeAnomalousZone ,TEXT2CLSID("ZS_GALAN") ,"zone_galant_s"); ADD(CMincer ,CSE_ALifeAnomalousZone ,TEXT2CLSID("ZS_MINCE") ,"zone_mincer_s"); ADD(CSpaceRestrictor ,CSE_ALifeSpaceRestrictor ,TEXT2CLSID("SPC_RS_S") ,"script_restr"); #endif // NO_XR_GAME }