public World(CommonResource resorces, GameOptions options, DoomGame game) { this.WorldEntity = EntityInfo.Create(this, EntityInfo.OfType <DoomEngine.Game.Entities.World>()); this.options = options; this.game = game; this.random = game != null ? game.Random : new DoomRandom(); this.map = new Map(resorces, this); this.thinkers = new Thinkers(this); this.specials = new Specials(this); this.thingAllocation = new ThingAllocation(this); this.thingMovement = new ThingMovement(this); this.thingInteraction = new ThingInteraction(this); this.mapCollision = new MapCollision(this); this.mapInteraction = new MapInteraction(this); this.pathTraversal = new PathTraversal(this); this.hitscan = new Hitscan(this); this.visibilityCheck = new VisibilityCheck(this); this.sectorAction = new SectorAction(this); this.playerBehavior = new PlayerBehavior(this); this.itemPickup = new ItemPickup(this); this.weaponBehavior = new WeaponBehavior(this); this.monsterBehavior = new MonsterBehavior(this); this.lightingChange = new LightingChange(this); this.autoMap = new AutoMap(this); this.cheat = new Cheat(this); options.IntermissionInfo.ParTime = 180; options.Player.KillCount = 0; options.Player.SecretCount = 0; options.Player.ItemCount = 0; // Initial height of view will be set by player think. options.Player.ViewZ = Fixed.Epsilon; this.totalKills = 0; this.totalItems = 0; this.totalSecrets = 0; this.LoadThings(); this.statusBar = new StatusBar(this); this.specials.SpawnSpecials(); this.levelTime = 0; this.doneFirstTic = false; this.secretExit = false; this.completed = false; this.validCount = 0; options.Music.StartMusic(Map.GetMapBgm(options), true); }
public World(CommonResource resorces, GameOptions options, DoomGame game) { this.options = options; this.game = game; if (game != null) { this.random = game.Random; } else { this.random = new DoomRandom(); } this.map = new Map(resorces, this); this.thinkers = new Thinkers(this); this.specials = new Specials(this); this.thingAllocation = new ThingAllocation(this); this.thingMovement = new ThingMovement(this); this.thingInteraction = new ThingInteraction(this); this.mapCollision = new MapCollision(this); this.mapInteraction = new MapInteraction(this); this.pathTraversal = new PathTraversal(this); this.hitscan = new Hitscan(this); this.visibilityCheck = new VisibilityCheck(this); this.sectorAction = new SectorAction(this); this.playerBehavior = new PlayerBehavior(this); this.itemPickup = new ItemPickup(this); this.weaponBehavior = new WeaponBehavior(this); this.monsterBehavior = new MonsterBehavior(this); this.lightingChange = new LightingChange(this); this.autoMap = new AutoMap(this); this.cheat = new Cheat(this); options.IntermissionInfo.TotalFrags = 0; options.IntermissionInfo.ParTime = 180; for (var i = 0; i < Player.MaxPlayerCount; i++) { options.Players[i].KillCount = 0; options.Players[i].SecretCount = 0; options.Players[i].ItemCount = 0; } // Initial height of view will be set by player think. options.Players[options.ConsolePlayer].ViewZ = Fixed.Epsilon; this.totalKills = 0; this.totalItems = 0; this.totalSecrets = 0; this.LoadThings(); this.statusBar = new StatusBar(this); // If deathmatch, randomly spawn the active players. if (options.Deathmatch != 0) { for (var i = 0; i < Player.MaxPlayerCount; i++) { if (options.Players[i].InGame) { options.Players[i].Mobj = null; this.thingAllocation.DeathMatchSpawnPlayer(i); } } } this.specials.SpawnSpecials(); this.levelTime = 0; this.doneFirstTic = false; this.secretExit = false; this.completed = false; this.validCount = 0; this.displayPlayer = options.ConsolePlayer; options.Music.StartMusic(Map.GetMapBgm(options), true); }