From f13cb58170af9cd74ac5ac92c9c35727dbeb58ce Mon Sep 17 00:00:00 2001 From: Danil Ko Date: Sun, 12 Sep 2021 22:05:23 -0700 Subject: [PATCH] https://github.com/danilko/topdown-2d-multiplayer/issues/14: Improve weapon UI and other display settings + deprecated code clean up --- GameStates.cs | 22 +- agents/AIAgent.tscn | 1 + agents/Agent.cs | 25 +- agents/Player.cs | 16 +- ai/AI.tscn | 1 + environments/Obstacle.cs | 4 +- godot.csproj | 1 + map/GameWorld.cs | 8 +- map/GameWorld.tscn | 15 +- map/SimulateGameWorld.cs | 1 + map/SimulateGameWorld.tscn | 2 +- network/Lobby.cs | 2 +- projectiles/Missle.cs | 4 +- singletons/audios/AudioManager.cs | 2 +- terrain/terrain_tiles.tres | 16 +- ui/EndGameScreen.cs | 2 +- ui/HUD.cs | 212 ++--------------- ui/HUD.tscn | 364 ++++-------------------------- ui/InventoryUI.cs | 19 ++ ui/MiniMap.tscn | 7 + ui/TitleScreen.tscn | 10 +- ui/WeaponControl.cs | 49 ++++ ui/WeaponControl.tscn | 70 ++++++ 23 files changed, 283 insertions(+), 570 deletions(-) create mode 100644 ui/WeaponControl.cs create mode 100644 ui/WeaponControl.tscn diff --git a/GameStates.cs b/GameStates.cs index f2f6610..4eeed2d 100644 --- a/GameStates.cs +++ b/GameStates.cs @@ -105,6 +105,8 @@ private void noSet(float rate) { } public void endGameScreen() { + // In menu, enable mouse + Input.SetMouseMode(Input.MouseMode.Visible); GetTree().ChangeScene(endResultScreen); } @@ -116,12 +118,16 @@ public void restart() public void EnterLobbyScreen() { + // In menu, enable mouse + Input.SetMouseMode(Input.MouseMode.Visible); current_level = 1; GetTree().ChangeScene(levels[current_level]); } public void EnterTitleScreen() { + // In menu, enable mouse + Input.SetMouseMode(Input.MouseMode.Visible); current_level = 0; GetTree().ChangeScene(levels[current_level]); } @@ -129,20 +135,8 @@ public void EnterTitleScreen() public void EnterNetworkLevel() { current_level = 2; + // In game, disable mouse + Input.SetMouseMode(Input.MouseMode.Hidden); GetTree().ChangeScene(levels[current_level]); } - - public void next_level() - { - current_level += 1; - if (current_level < levels.Length) - { - GetTree().ChangeScene(levels[current_level]); - } - else - { - restart(); - } - - } } diff --git a/agents/AIAgent.tscn b/agents/AIAgent.tscn index 968bcaf..cc1aafe 100644 --- a/agents/AIAgent.tscn +++ b/agents/AIAgent.tscn @@ -13,6 +13,7 @@ MaxSpeed = 300 MaxHealth = 100 RotationSpeed = 5.0 MaxEnergy = 100 +DetectionRadius = 2000.0 TurretSpeed = 10 DetectRadius = 2000.0 diff --git a/agents/Agent.cs b/agents/Agent.cs index 1cc1c26..d4ae479 100644 --- a/agents/Agent.cs +++ b/agents/Agent.cs @@ -179,7 +179,9 @@ public virtual void changeWeapon(int weaponIndex, Weapon.WeaponOrder weaponOrder // Caculate actual index base on availble weapon weaponIndex = weaponIndex % weapons.Count; - Weapon currentWeapon = ((Weapon)weapons[CurrentWeaponIndex[weaponOrder]]); + int originalWeaponIndex = CurrentWeaponIndex[weaponOrder]; + + Weapon currentWeapon = ((Weapon)weapons[originalWeaponIndex]); if (currentWeapon != null) { @@ -194,14 +196,23 @@ public virtual void changeWeapon(int weaponIndex, Weapon.WeaponOrder weaponOrder { ConnectWeapon(currentWeapon, weaponOrder); - EmitSignal(nameof(WeaponChangeSignal), CurrentInventory.GetItems()[CurrentInventory.GetEquipItemIndex(weaponOrder, weaponIndex)], weaponOrder); + // This is re-click, no need to submit signal + if(originalWeaponIndex != weaponIndex) + { + EmitSignal(nameof(WeaponChangeSignal), CurrentInventory.GetItems()[CurrentInventory.GetEquipItemIndex(weaponOrder, weaponIndex)], weaponOrder, weaponIndex); + } // Emit signal to update info currentWeapon.EmitSignal(nameof(Weapon.AmmoChangeSignal), currentWeapon.GetAmmo(), currentWeapon.GetMaxAmmo(), weaponOrder); } else { - EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder); + + // This is re-click, no need to submit signal + if(originalWeaponIndex != weaponIndex) + { + EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder, weaponIndex); + } } } @@ -296,24 +307,24 @@ public Node2D GetWeaponsHolder(Weapon.WeaponOrder weaponOrder) /** Unequip weapon at given weapon order's given index **/ - public void UnequipWeapon(Weapon.WeaponOrder weaponOrder, int index) + public void UnequipWeapon(Weapon.WeaponOrder weaponOrder, int weaponIndex) { Godot.Collections.Array weapons = GetWeapons(weaponOrder); - Weapon weapon = (Weapon)weapons[index]; + Weapon weapon = (Weapon)weapons[weaponIndex]; if (weapon != null) { Node2D weaponHolder = GetWeaponsHolder(weaponOrder); weaponHolder.RemoveChild(weapon); // Null the weapon - weapons[index] = null; + weapons[weaponIndex] = null; DisconnectWeapon(weapon, weaponOrder); // Empty out weapon weapon.Deinitialize(); } - EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder); + EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder, weaponIndex); } public void SetCurrentTeam(Team.TeamCode inputTeamCode) diff --git a/agents/Player.cs b/agents/Player.cs index 984a644..0fa9fd3 100644 --- a/agents/Player.cs +++ b/agents/Player.cs @@ -61,13 +61,13 @@ public void SetHUD(HUD hud, InventoryManager _inventoryManager) { ConnectWeapon(weapon, weaponOrder); - EmitSignal(nameof(WeaponChangeSignal), CurrentInventory.GetItems()[CurrentInventory.GetEquipItemIndex(weaponOrder, GetCurrentWeaponIndex(weaponOrder))], weaponOrder); + EmitSignal(nameof(WeaponChangeSignal), CurrentInventory.GetItems()[CurrentInventory.GetEquipItemIndex(weaponOrder, GetCurrentWeaponIndex(weaponOrder))], weaponOrder, index); // Emit signal to update info weapon.EmitSignal(nameof(Weapon.AmmoChangeSignal), weapon.GetAmmo(), weapon.GetMaxAmmo(), weaponOrder); } else { - EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder); + EmitSignal(nameof(WeaponChangeSignal), null, weaponOrder, index); } } @@ -88,7 +88,7 @@ public void SetHUD(HUD hud, InventoryManager _inventoryManager) // Setup Inventory UI - _inventoryUI = (InventoryUI)_hud.GetNode("controlGame/InventoryUI"); + _inventoryUI = (InventoryUI)_hud.GetNode("GameControl/InventoryUI"); _inventoryUI.Initialize(_inventoryManager, CurrentInventory); if (!_teamMapAI.IsConnected(nameof(TeamMapAI.TeamUnitUsageAmountChangeSignal), _hud, nameof(HUD.UpdateTeamUnitUsageAmount))) @@ -144,14 +144,8 @@ public void gatherInput(float delta) { if (Input.IsActionJustReleased("inventory")) { - if (!_inventoryUI.Visible) - { - _inventoryUI.PopupCentered(); - } - else - { - _inventoryUI.Hide(); - } + // Show UI if UI is not visible, and also hide UI if UI is already visible + _inventoryUI.Activate(! _inventoryUI.Visible); } diff --git a/ai/AI.tscn b/ai/AI.tscn index ec4823d..dd2fbac 100644 --- a/ai/AI.tscn +++ b/ai/AI.tscn @@ -11,6 +11,7 @@ one_shot = true autostart = true [node name="PathLine" type="Line2D" parent="."] +visible = false width = 2.0 default_color = Color( 1, 0.4, 0.498039, 1 ) diff --git a/environments/Obstacle.cs b/environments/Obstacle.cs index a2228b8..f804e37 100644 --- a/environments/Obstacle.cs +++ b/environments/Obstacle.cs @@ -97,8 +97,8 @@ public void explode() //remainParticles.GlobalPosition = this.GlobalPosition; //GetParent().GetParent().GetNode("RemainEffectManager").AddChild(remainParticles); - AudioManager audioManager = (AudioManager)GetNode("/root/AUDIOMANAGER"); - audioManager.playSoundEffect(explosionMusicClip); + //AudioManager audioManager = (AudioManager)GetNode("/root/AUDIOMANAGER"); + // audioManager.playSoundEffect(explosionMusicClip); } private void _OnExplosionAnimationFinished() diff --git a/godot.csproj b/godot.csproj index cf26df5..41334dc 100644 --- a/godot.csproj +++ b/godot.csproj @@ -59,6 +59,7 @@ + diff --git a/map/GameWorld.cs b/map/GameWorld.cs index 476d1c0..200de69 100644 --- a/map/GameWorld.cs +++ b/map/GameWorld.cs @@ -135,8 +135,6 @@ public override void _Ready() InitializeHUD(); - Input.SetCustomMouseCursor(GD.Load("res://assets/ui/blue_cross.png"), Input.CursorShape.Arrow, new Vector2(16, 16)); - _initializeNetwork(); _initailizeGameTimer(); } @@ -155,7 +153,7 @@ protected void InitializeCamera() protected void InitializeHUD() { _hud = (HUD)GetNode("HUD"); - _miniMap = (MiniMap)_hud.GetNode("controlGame/MiniMap"); + _miniMap = (MiniMap)_hud.GetNode("GameControl/MiniMap"); _popUpMessage = (PopUpMessage)_hud.GetNode("PopUpMessage"); _miniMap.Iniitialize(CapaturableBaseManager); @@ -189,12 +187,8 @@ private void _initializeNetwork() // Update network flow this.Connect(nameof(NeworkRateUpdateSignal), _hud, "_onNetworkRateUpdate"); this.Connect(nameof(PlayerDefeatedSignal), _hud, nameof(HUD.OnPlayerDefeated)); - this.Connect(nameof(Network.PlayerListChangedSignal), _hud, "onPlayerListChanged"); this.Connect(nameof(WaitingPeriodSignal), _hud, "_onUpdateTimer"); this.Connect(nameof(PlayerCreateSignal), _hud, nameof(HUD.OnPlayerCreated)); - - // Update playerlist - EmitSignal(nameof(Network.PlayerListChangedSignal)); } private void _initailizeGameTimer() diff --git a/map/GameWorld.tscn b/map/GameWorld.tscn index 3c2b3f9..ed7389b 100644 --- a/map/GameWorld.tscn +++ b/map/GameWorld.tscn @@ -34,8 +34,17 @@ modulate = Color( 0.572549, 0.611765, 0.65098, 1 ) light_mask = -2147483647 tile_set = ExtResource( 1 ) cell_size = Vector2( 128, 128 ) +show_collision = true format = 1 -tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 1, 0, 8, 1, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 1, 0, 13, 1, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 7, 0, 23, 21, 0, 24, 21, 0, 25, 45, 0, 26, 21, 0, 27, 21, 0, 28, 45, 0, 29, 45, 0, 30, 45, 0, 31, 45, 0, 32, 45, 0, 33, 45, 0, 34, 45, 0, 35, 45, 0, 36, 45, 0, 37, 45, 0, 38, 45, 0, 39, 45, 0, 40, 45, 0, 41, 45, 0, 42, 45, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 1, 0, 65544, 1, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 1, 0, 65549, 1, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 7, 0, 65559, 21, 0, 65560, 21, 0, 65561, 45, 0, 65562, 21, 0, 65563, 21, 0, 65564, 45, 0, 65565, 45, 0, 65566, 45, 0, 65567, 45, 0, 65568, 45, 0, 65569, 45, 0, 65570, 45, 0, 65571, 45, 0, 65572, 45, 0, 65573, 45, 0, 65574, 45, 0, 65575, 45, 0, 65576, 45, 0, 65577, 45, 0, 65578, 45, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 1, 0, 131080, 1, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 1, 0, 131085, 1, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 0, 0, 131094, 7, 0, 131095, 21, 0, 131096, 21, 0, 131097, 45, 0, 131098, 21, 0, 131099, 21, 0, 131100, 45, 0, 131101, 45, 0, 131102, 45, 0, 131103, 45, 0, 131104, 45, 0, 131105, 45, 0, 131106, 45, 0, 131107, 45, 0, 131108, 45, 0, 131109, 45, 0, 131110, 45, 0, 131111, 45, 0, 131112, 45, 0, 131113, 45, 0, 131114, 45, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 1, 0, 196616, 1, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 1, 0, 196621, 1, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 196625, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 7, 0, 196631, 21, 0, 196632, 21, 0, 196633, 45, 0, 196634, 21, 0, 196635, 21, 0, 196636, 45, 0, 196637, 45, 0, 196638, 45, 0, 196639, 45, 0, 196640, 45, 0, 196641, 45, 0, 196642, 45, 0, 196643, 45, 0, 196644, 45, 0, 196645, 45, 0, 196646, 45, 0, 196647, 45, 0, 196648, 45, 0, 196649, 45, 0, 196650, 45, 0, 262144, 0, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 13, 0, 262151, 12, 0, 262152, 12, 0, 262153, 6, 0, 262154, 6, 0, 262155, 6, 0, 262156, 12, 0, 262157, 12, 0, 262158, 14, 0, 262159, 0, 0, 262160, 0, 0, 262161, 0, 0, 262162, 0, 0, 262163, 0, 0, 262164, 0, 0, 262165, 0, 0, 262166, 7, 0, 262167, 21, 0, 262168, 21, 0, 262169, 45, 0, 262170, 21, 0, 262171, 21, 0, 262172, 45, 0, 262173, 45, 0, 262174, 45, 0, 262175, 45, 0, 262176, 45, 0, 262177, 45, 0, 262178, 45, 0, 262179, 45, 0, 262180, 45, 0, 262181, 45, 0, 262182, 45, 0, 262183, 45, 0, 262184, 45, 0, 262185, 45, 0, 262186, 45, 0, 327680, 0, 0, 327681, 0, 0, 327682, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327686, 3, 0, 327687, 12, 0, 327688, 12, 0, 327689, 12, 0, 327690, 12, 0, 327691, 12, 0, 327692, 12, 0, 327693, 12, 0, 327694, 4, 0, 327695, 0, 0, 327696, 0, 0, 327697, 0, 0, 327698, 0, 0, 327699, 0, 0, 327700, 0, 0, 327701, 0, 0, 327702, 7, 0, 327703, 21, 0, 327704, 21, 0, 327705, 45, 0, 327706, 23, 0, 327707, 32, 0, 327708, 26, 0, 327709, 26, 0, 327710, 26, 0, 327711, 26, 0, 327712, 26, 0, 327713, 26, 0, 327714, 26, 0, 327715, 26, 0, 327716, 26, 0, 327717, 26, 0, 327718, 26, 0, 327719, 34, 0, 327720, 45, 0, 327721, 45, 0, 327722, 45, 0, 393216, 0, 0, 393217, 13, 0, 393218, 6, 0, 393219, 10, 0, 393220, 6, 0, 393221, 6, 0, 393222, 12, 0, 393223, 12, 0, 393224, 12, 0, 393225, 12, 0, 393226, 12, 0, 393227, 12, 0, 393228, 12, 0, 393229, 12, 0, 393230, 12, 0, 393231, 10, 0, 393232, 10, 0, 393233, 10, 0, 393234, 10, 0, 393235, 10, 0, 393236, 10, 0, 393237, 10, 0, 393238, 29, 0, 393239, 32, 0, 393240, 32, 0, 393241, 26, 0, 393242, 32, 0, 393243, 32, 0, 393244, 32, 0, 393245, 32, 0, 393246, 32, 0, 393247, 32, 0, 393248, 32, 0, 393249, 32, 0, 393250, 32, 0, 393251, 32, 0, 393252, 31, 0, 393253, 32, 0, 393254, 31, 0, 393255, 24, 0, 393256, 45, 0, 393257, 45, 0, 393258, 45, 0, 458752, 0, 0, 458753, 3, 0, 458754, 12, 0, 458755, 10, 0, 458756, 12, 0, 458757, 12, 0, 458758, 12, 0, 458759, 12, 0, 458760, 12, 0, 458761, 12, 0, 458762, 12, 0, 458763, 12, 0, 458764, 12, 0, 458765, 12, 0, 458766, 12, 0, 458767, 10, 0, 458768, 10, 0, 458769, 10, 0, 458770, 10, 0, 458771, 10, 0, 458772, 10, 0, 458773, 10, 0, 458774, 29, 0, 458775, 32, 0, 458776, 31, 0, 458777, 32, 0, 458778, 31, 0, 458779, 32, 0, 458780, 32, 0, 458781, 32, 0, 458782, 32, 0, 458783, 32, 0, 458784, 32, 0, 458785, 32, 0, 458786, 32, 0, 458787, 32, 0, 458788, 32, 0, 458789, 32, 0, 458790, 31, 0, 458791, 24, 0, 458792, 45, 0, 458793, 45, 0, 458794, 45, 0, 524288, 0, 0, 524289, 1, 0, 524290, 1, 0, 524291, 0, 0, 524292, 1, 0, 524293, 1, 0, 524294, 3, 0, 524295, 12, 0, 524296, 12, 0, 524297, 12, 0, 524298, 12, 0, 524299, 12, 0, 524300, 12, 0, 524301, 12, 0, 524302, 4, 0, 524303, 0, 0, 524304, 0, 0, 524305, 0, 0, 524306, 0, 0, 524307, 0, 0, 524308, 0, 0, 524309, 0, 0, 524310, 7, 0, 524311, 23, 0, 524312, 31, 0, 524313, 25, 0, 524314, 31, 0, 524315, 32, 0, 524316, 32, 0, 524317, 32, 0, 524318, 32, 0, 524319, 32, 0, 524320, 32, 0, 524321, 32, 0, 524322, 32, 0, 524323, 31, 0, 524324, 31, 0, 524325, 32, 0, 524326, 31, 0, 524327, 24, 0, 524328, 45, 0, 524329, 45, 0, 524330, 45, 0, 589824, 0, 0, 589825, 1, 0, 589826, 1, 0, 589827, 0, 0, 589828, 1, 0, 589829, 1, 0, 589830, 15, 0, 589831, 11, 0, 589832, 11, 0, 589833, 5, 0, 589834, 5, 0, 589835, 5, 0, 589836, 11, 0, 589837, 11, 0, 589838, 16, 0, 589839, 0, 0, 589840, 0, 0, 589841, 0, 0, 589842, 0, 0, 589843, 0, 0, 589844, 0, 0, 589845, 0, 0, 589846, 7, 0, 589847, 21, 0, 589848, 21, 0, 589849, 45, 0, 589850, 23, 0, 589851, 32, 0, 589852, 25, 0, 589853, 25, 0, 589854, 25, 0, 589855, 25, 0, 589856, 25, 0, 589857, 25, 0, 589858, 25, 0, 589859, 32, 0, 589860, 32, 0, 589861, 25, 0, 589862, 32, 0, 589863, 24, 0, 589864, 45, 0, 589865, 45, 0, 589866, 45, 0, 655360, 0, 0, 655361, 1, 0, 655362, 1, 0, 655363, 0, 0, 655364, 1, 0, 655365, 1, 0, 655366, 0, 0, 655367, 1, 0, 655368, 1, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 1, 0, 655373, 1, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655382, 7, 0, 655383, 21, 0, 655384, 21, 0, 655385, 45, 0, 655386, 43, 0, 655387, 21, 0, 655388, 45, 0, 655389, 45, 0, 655390, 45, 0, 655391, 45, 0, 655392, 45, 0, 655393, 45, 0, 655394, 45, 0, 655395, 21, 0, 655396, 44, 0, 655397, 45, 0, 655398, 21, 0, 655399, 21, 0, 655400, 45, 0, 655401, 45, 0, 655402, 45, 0, 720896, 0, 0, 720897, 1, 0, 720898, 1, 0, 720899, 0, 0, 720900, 1, 0, 720901, 1, 0, 720902, 0, 0, 720903, 1, 0, 720904, 1, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720908, 1, 0, 720909, 1, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 0, 0, 720914, 0, 0, 720915, 0, 0, 720916, 0, 0, 720917, 0, 0, 720918, 7, 0, 720919, 21, 0, 720920, 21, 0, 720921, 45, 0, 720922, 21, 0, 720923, 21, 0, 720924, 45, 0, 720925, 45, 0, 720926, 45, 0, 720927, 45, 0, 720928, 45, 0, 720929, 45, 0, 720930, 45, 0, 720931, 21, 0, 720932, 21, 0, 720933, 45, 0, 720934, 21, 0, 720935, 21, 0, 720936, 45, 0, 720937, 45, 0, 720938, 45, 0, 786432, 0, 0, 786433, 1, 0, 786434, 1, 0, 786435, 0, 0, 786436, 1, 0, 786437, 1, 0, 786438, 0, 0, 786439, 1, 0, 786440, 1, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 1, 0, 786445, 1, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786454, 7, 0, 786455, 21, 0, 786456, 21, 0, 786457, 45, 0, 786458, 21, 0, 786459, 21, 0, 786460, 45, 0, 786461, 45, 0, 786462, 45, 0, 786463, 45, 0, 786464, 45, 0, 786465, 45, 0, 786466, 45, 0, 786467, 21, 0, 786468, 44, 0, 786469, 45, 0, 786470, 21, 0, 786471, 21, 0, 786472, 45, 0, 786473, 45, 0, 786474, 45, 0, 851968, 0, 0, 851969, 1, 0, 851970, 1, 0, 851971, 0, 0, 851972, 1, 0, 851973, 1, 0, 851974, 0, 0, 851975, 1, 0, 851976, 1, 0, 851977, 0, 0, 851978, 0, 0, 851979, 0, 0, 851980, 1, 0, 851981, 1, 0, 851982, 0, 0, 851983, 0, 0, 851984, 0, 0, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 851988, 0, 0, 851989, 0, 0, 851990, 7, 0, 851991, 21, 0, 851992, 21, 0, 851993, 45, 0, 851994, 21, 0, 851995, 21, 0, 851996, 45, 0, 851997, 45, 0, 851998, 45, 0, 851999, 45, 0, 852000, 45, 0, 852001, 45, 0, 852002, 45, 0, 852003, 21, 0, 852004, 21, 0, 852005, 45, 0, 852006, 21, 0, 852007, 21, 0, 852008, 45, 0, 852009, 45, 0, 852010, 45, 0, 917504, 0, 0, 917505, 1, 0, 917506, 1, 0, 917507, 0, 0, 917508, 1, 0, 917509, 1, 0, 917510, 0, 0, 917511, 1, 0, 917512, 1, 0, 917513, 0, 0, 917514, 0, 0, 917515, 0, 0, 917516, 1, 0, 917517, 1, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 0, 0, 917522, 0, 0, 917523, 0, 0, 917524, 0, 0, 917525, 0, 0, 917526, 7, 0, 917527, 21, 0, 917528, 21, 0, 917529, 45, 0, 917530, 21, 0, 917531, 21, 0, 917532, 45, 0, 917533, 45, 0, 917534, 45, 0, 917535, 45, 0, 917536, 45, 0, 917537, 45, 0, 917538, 45, 0, 917539, 21, 0, 917540, 21, 0, 917541, 45, 0, 917542, 21, 0, 917543, 21, 0, 917544, 45, 0, 917545, 45, 0, 917546, 45, 0, 983040, 0, 0, 983041, 1, 0, 983042, 1, 0, 983043, 0, 0, 983044, 1, 0, 983045, 1, 0, 983046, 0, 0, 983047, 1, 0, 983048, 1, 0, 983049, 0, 0, 983050, 0, 0, 983051, 0, 0, 983052, 1, 0, 983053, 1, 0, 983054, 0, 0, 983055, 0, 0, 983056, 0, 0, 983057, 0, 0, 983058, 0, 0, 983059, 0, 0, 983060, 0, 0, 983061, 0, 0, 983062, 7, 0, 983063, 21, 0, 983064, 21, 0, 983065, 45, 0, 983066, 21, 0, 983067, 21, 0, 983068, 45, 0, 983069, 45, 0, 983070, 45, 0, 983071, 45, 0, 983072, 45, 0, 983073, 45, 0, 983074, 45, 0, 983075, 21, 0, 983076, 21, 0, 983077, 45, 0, 983078, 21, 0, 983079, 21, 0, 983080, 45, 0, 983081, 45, 0, 983082, 45, 0, 1048576, 0, 0, 1048577, 1, 0, 1048578, 1, 0, 1048579, 0, 0, 1048580, 1, 0, 1048581, 1, 0, 1048582, 0, 0, 1048583, 1, 0, 1048584, 1, 0, 1048585, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 1, 0, 1048589, 1, 0, 1048590, 0, 0, 1048591, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1048594, 0, 0, 1048595, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048598, 7, 0, 1048599, 21, 0, 1048600, 21, 0, 1048601, 45, 0, 1048602, 21, 0, 1048603, 21, 0, 1048604, 45, 0, 1048605, 45, 0, 1048606, 45, 0, 1048607, 45, 0, 1048608, 45, 0, 1048609, 45, 0, 1048610, 45, 0, 1048611, 21, 0, 1048612, 21, 0, 1048613, 45, 0, 1048614, 21, 0, 1048615, 21, 0, 1048616, 45, 0, 1048617, 45, 0, 1048618, 45, 0, 1114112, 0, 0, 1114113, 3, 0, 1114114, 12, 0, 1114115, 10, 0, 1114116, 12, 0, 1114117, 12, 0, 1114118, 10, 0, 1114119, 11, 0, 1114120, 11, 0, 1114121, 10, 0, 1114122, 10, 0, 1114123, 10, 0, 1114124, 11, 0, 1114125, 11, 0, 1114126, 10, 0, 1114127, 10, 0, 1114128, 10, 0, 1114129, 10, 0, 1114130, 10, 0, 1114131, 10, 0, 1114132, 10, 0, 1114133, 10, 0, 1114134, 29, 0, 1114135, 31, 0, 1114136, 31, 0, 1114137, 26, 0, 1114138, 31, 0, 1114139, 24, 0, 1114140, 45, 0, 1114141, 45, 0, 1114142, 45, 0, 1114143, 45, 0, 1114144, 45, 0, 1114145, 45, 0, 1114146, 45, 0, 1114147, 21, 0, 1114148, 21, 0, 1114149, 45, 0, 1114150, 21, 0, 1114151, 21, 0, 1114152, 45, 0, 1114153, 45, 0, 1114154, 45, 0, 1179648, 0, 0, 1179649, 3, 0, 1179650, 12, 0, 1179651, 10, 0, 1179652, 12, 0, 1179653, 12, 0, 1179654, 10, 0, 1179655, 11, 0, 1179656, 12, 0, 1179657, 10, 0, 1179658, 2, 0, 1179659, 10, 0, 1179660, 12, 0, 1179661, 11, 0, 1179662, 10, 0, 1179663, 10, 0, 1179664, 10, 0, 1179665, 10, 0, 1179666, 10, 0, 1179667, 10, 0, 1179668, 10, 0, 1179669, 10, 0, 1179670, 29, 0, 1179671, 31, 0, 1179672, 32, 0, 1179673, 25, 0, 1179674, 32, 0, 1179675, 24, 0, 1179676, 45, 0, 1179677, 45, 0, 1179678, 45, 0, 1179679, 45, 0, 1179680, 45, 0, 1179681, 45, 0, 1179682, 45, 0, 1179683, 21, 0, 1179684, 21, 0, 1179685, 45, 0, 1179686, 21, 0, 1179687, 21, 0, 1179688, 45, 0, 1179689, 45, 0, 1179690, 45, 0, 1245184, 0, 0, 1245185, 1, 0, 1245186, 1, 0, 1245187, 0, 0, 1245188, 1, 0, 1245189, 1, 0, 1245190, 0, 0, 1245191, 1, 0, 1245192, 1, 0, 1245193, 0, 0, 1245194, 0, 0, 1245195, 0, 0, 1245196, 1, 0, 1245197, 1, 0, 1245198, 0, 0, 1245199, 0, 0, 1245200, 0, 0, 1245201, 0, 0, 1245202, 0, 0, 1245203, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245206, 7, 0, 1245207, 21, 0, 1245208, 21, 0, 1245209, 45, 0, 1245210, 21, 0, 1245211, 21, 0, 1245212, 45, 0, 1245213, 45, 0, 1245214, 45, 0, 1245215, 45, 0, 1245216, 45, 0, 1245217, 45, 0, 1245218, 45, 0, 1245219, 21, 0, 1245220, 21, 0, 1245221, 45, 0, 1245222, 21, 0, 1245223, 21, 0, 1245224, 45, 0, 1245225, 45, 0, 1245226, 45, 0, 1310720, 0, 0, 1310721, 3, 0, 1310722, 11, 0, 1310723, 10, 0, 1310724, 5, 0, 1310725, 5, 0, 1310726, 10, 0, 1310727, 11, 0, 1310728, 11, 0, 1310729, 10, 0, 1310730, 2, 0, 1310731, 10, 0, 1310732, 11, 0, 1310733, 11, 0, 1310734, 10, 0, 1310735, 10, 0, 1310736, 10, 0, 1310737, 10, 0, 1310738, 10, 0, 1310739, 10, 0, 1310740, 10, 0, 1310741, 10, 0, 1310742, 29, 0, 1310743, 31, 0, 1310744, 31, 0, 1310745, 22, 0, 1310746, 31, 0, 1310747, 24, 0, 1310748, 45, 0, 1310749, 45, 0, 1310750, 45, 0, 1310751, 45, 0, 1310752, 45, 0, 1310753, 45, 0, 1310754, 45, 0, 1310755, 21, 0, 1310756, 21, 0, 1310757, 45, 0, 1310758, 21, 0, 1310759, 21, 0, 1310760, 45, 0, 1310761, 45, 0, 1310762, 45, 0, 1376256, 0, 0, 1376257, 15, 0, 1376258, 5, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 10, 0, 1376263, 11, 0, 1376264, 11, 0, 1376265, 10, 0, 1376266, 10, 0, 1376267, 10, 0, 1376268, 11, 0, 1376269, 11, 0, 1376270, 10, 0, 1376271, 10, 0, 1376272, 10, 0, 1376273, 10, 0, 1376274, 10, 0, 1376275, 10, 0, 1376276, 10, 0, 1376277, 10, 0, 1376278, 29, 0, 1376279, 25, 0, 1376280, 25, 0, 1376281, 30, 0, 1376282, 25, 0, 1376283, 36, 0, 1376284, 45, 0, 1376285, 45, 0, 1376286, 45, 0, 1376287, 45, 0, 1376288, 45, 0, 1376289, 45, 0, 1376290, 45, 0, 1376291, 21, 0, 1376292, 21, 0, 1376293, 45, 0, 1376294, 21, 0, 1376295, 21, 0, 1376296, 45, 0, 1376297, 45, 0, 1376298, 45, 0, 1441792, 0, 0, 1441793, 0, 0, 1441794, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 1, 0, 1441800, 1, 0, 1441801, 0, 0, 1441802, 0, 0, 1441803, 0, 0, 1441804, 1, 0, 1441805, 1, 0, 1441806, 0, 0, 1441807, 0, 0, 1441808, 0, 0, 1441809, 0, 0, 1441810, 0, 0, 1441811, 0, 0, 1441812, 0, 0, 1441813, 0, 0, 1441814, 7, 0, 1441815, 45, 0, 1441816, 45, 0, 1441817, 45, 0, 1441818, 45, 0, 1441819, 45, 0, 1441820, 45, 0, 1441821, 45, 0, 1441822, 45, 0, 1441823, 45, 0, 1441824, 45, 0, 1441825, 45, 0, 1441826, 45, 0, 1441827, 21, 0, 1441828, 21, 0, 1441829, 45, 0, 1441830, 21, 0, 1441831, 21, 0, 1441832, 45, 0, 1441833, 45, 0, 1441834, 45, 0, 1507328, 0, 0, 1507329, 0, 0, 1507330, 0, 0, 1507331, 0, 0, 1507332, 0, 0, 1507333, 0, 0, 1507334, 0, 0, 1507335, 1, 0, 1507336, 1, 0, 1507337, 0, 0, 1507338, 0, 0, 1507339, 0, 0, 1507340, 1, 0, 1507341, 1, 0, 1507342, 0, 0, 1507343, 0, 0, 1507344, 0, 0, 1507345, 0, 0, 1507346, 0, 0, 1507347, 0, 0, 1507348, 0, 0, 1507349, 0, 0, 1507350, 7, 0, 1507351, 45, 0, 1507352, 45, 0, 1507353, 45, 0, 1507354, 45, 0, 1507355, 45, 0, 1507356, 45, 0, 1507357, 45, 0, 1507358, 45, 0, 1507359, 45, 0, 1507360, 45, 0, 1507361, 45, 0, 1507362, 45, 0, 1507363, 21, 0, 1507364, 21, 0, 1507365, 45, 0, 1507366, 21, 0, 1507367, 21, 0, 1507368, 45, 0, 1507369, 45, 0, 1507370, 45, 0, 1572864, 0, 0, 1572865, 0, 0, 1572866, 0, 0, 1572867, 0, 0, 1572868, 0, 0, 1572869, 0, 0, 1572870, 0, 0, 1572871, 1, 0, 1572872, 1, 0, 1572873, 0, 0, 1572874, 0, 0, 1572875, 0, 0, 1572876, 1, 0, 1572877, 1, 0, 1572878, 0, 0, 1572879, 0, 0, 1572880, 0, 0, 1572881, 0, 0, 1572882, 0, 0, 1572883, 0, 0, 1572884, 0, 0, 1572885, 0, 0, 1572886, 7, 0, 1572887, 45, 0, 1572888, 45, 0, 1572889, 45, 0, 1572890, 45, 0, 1572891, 45, 0, 1572892, 45, 0, 1572893, 45, 0, 1572894, 45, 0, 1572895, 45, 0, 1572896, 45, 0, 1572897, 45, 0, 1572898, 45, 0, 1572899, 21, 0, 1572900, 21, 0, 1572901, 45, 0, 1572902, 21, 0, 1572903, 21, 0, 1572904, 45, 0, 1572905, 45, 0, 1572906, 45, 0, 1638400, 0, 0, 1638401, 0, 0, 1638402, 0, 0, 1638403, 0, 0, 1638404, 0, 0, 1638405, 0, 0, 1638406, 0, 0, 1638407, 1, 0, 1638408, 1, 0, 1638409, 0, 0, 1638410, 0, 0, 1638411, 0, 0, 1638412, 1, 0, 1638413, 1, 0, 1638414, 0, 0, 1638415, 0, 0, 1638416, 0, 0, 1638417, 0, 0, 1638418, 0, 0, 1638419, 0, 0, 1638420, 0, 0, 1638421, 0, 0, 1638422, 7, 0, 1638423, 45, 0, 1638424, 45, 0, 1638425, 45, 0, 1638426, 45, 0, 1638427, 45, 0, 1638428, 45, 0, 1638429, 45, 0, 1638430, 45, 0, 1638431, 45, 0, 1638432, 45, 0, 1638433, 45, 0, 1638434, 45, 0, 1638435, 21, 0, 1638436, 21, 0, 1638437, 45, 0, 1638438, 21, 0, 1638439, 21, 0, 1638440, 45, 0, 1638441, 45, 0, 1638442, 45, 0, 1703936, 0, 0, 1703937, 0, 0, 1703938, 0, 0, 1703939, 0, 0, 1703940, 0, 0, 1703941, 0, 0, 1703942, 0, 0, 1703943, 1, 0, 1703944, 1, 0, 1703945, 0, 0, 1703946, 0, 0, 1703947, 0, 0, 1703948, 1, 0, 1703949, 1, 0, 1703950, 0, 0, 1703951, 0, 0, 1703952, 0, 0, 1703953, 0, 0, 1703954, 0, 0, 1703955, 0, 0, 1703956, 0, 0, 1703957, 0, 0, 1703958, 7, 0, 1703959, 45, 0, 1703960, 45, 0, 1703961, 45, 0, 1703962, 45, 0, 1703963, 45, 0, 1703964, 45, 0, 1703965, 45, 0, 1703966, 45, 0, 1703967, 45, 0, 1703968, 45, 0, 1703969, 45, 0, 1703970, 45, 0, 1703971, 21, 0, 1703972, 21, 0, 1703973, 45, 0, 1703974, 21, 0, 1703975, 21, 0, 1703976, 45, 0, 1703977, 45, 0, 1703978, 45, 0, 1769472, 0, 0, 1769473, 0, 0, 1769474, 0, 0, 1769475, 0, 0, 1769476, 0, 0, 1769477, 0, 0, 1769478, 0, 0, 1769479, 1, 0, 1769480, 1, 0, 1769481, 0, 0, 1769482, 0, 0, 1769483, 0, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 0, 0, 1769487, 0, 0, 1769488, 0, 0, 1769489, 0, 0, 1769490, 0, 0, 1769491, 0, 0, 1769492, 0, 0, 1769493, 0, 0, 1769494, 7, 0, 1769495, 45, 0, 1769496, 45, 0, 1769497, 45, 0, 1769498, 45, 0, 1769499, 45, 0, 1769500, 45, 0, 1769501, 45, 0, 1769502, 45, 0, 1769503, 45, 0, 1769504, 45, 0, 1769505, 45, 0, 1769506, 45, 0, 1769507, 21, 0, 1769508, 21, 0, 1769509, 45, 0, 1769510, 21, 0, 1769511, 21, 0, 1769512, 45, 0, 1769513, 45, 0, 1769514, 45, 0, 1835008, 0, 0, 1835009, 0, 0, 1835010, 0, 0, 1835011, 0, 0, 1835012, 0, 0, 1835013, 0, 0, 1835014, 0, 0, 1835015, 3, 0, 1835016, 11, 0, 1835017, 6, 0, 1835018, 6, 0, 1835019, 6, 0, 1835020, 11, 0, 1835021, 11, 0, 1835022, 6, 0, 1835023, 14, 0, 1835024, 0, 0, 1835025, 0, 0, 1835026, 0, 0, 1835027, 0, 0, 1835028, 0, 0, 1835029, 0, 0, 1835030, 7, 0, 1835031, 45, 0, 1835032, 45, 0, 1835033, 45, 0, 1835034, 45, 0, 1835035, 45, 0, 1835036, 45, 0, 1835037, 45, 0, 1835038, 45, 0, 1835039, 45, 0, 1835040, 45, 0, 1835041, 45, 0, 1835042, 45, 0, 1835043, 23, 0, 1835044, 31, 0, 1835045, 26, 0, 1835046, 31, 0, 1835047, 24, 0, 1835048, 45, 0, 1835049, 45, 0, 1835050, 45, 0, 1900544, 0, 0, 1900545, 0, 0, 1900546, 0, 0, 1900547, 0, 0, 1900548, 0, 0, 1900549, 0, 0, 1900550, 0, 0, 1900551, 3, 0, 1900552, 11, 0, 1900553, 11, 0, 1900554, 11, 0, 1900555, 11, 0, 1900556, 11, 0, 1900557, 11, 0, 1900558, 11, 0, 1900559, 12, 0, 1900560, 2, 0, 1900561, 2, 0, 1900562, 2, 0, 1900563, 2, 0, 1900564, 2, 0, 1900565, 2, 0, 1900566, 29, 0, 1900567, 30, 0, 1900568, 30, 0, 1900569, 30, 0, 1900570, 30, 0, 1900571, 30, 0, 1900572, 30, 0, 1900573, 30, 0, 1900574, 30, 0, 1900575, 30, 0, 1900576, 30, 0, 1900577, 30, 0, 1900578, 30, 0, 1900579, 32, 0, 1900580, 32, 0, 1900581, 31, 0, 1900582, 32, 0, 1900583, 32, 0, 1900584, 30, 0, 1900585, 30, 0, 1900586, 30, 0, 1966080, 0, 0, 1966081, 0, 0, 1966082, 0, 0, 1966083, 0, 0, 1966084, 0, 0, 1966085, 0, 0, 1966086, 0, 0, 1966087, 3, 0, 1966088, 11, 0, 1966089, 11, 0, 1966090, 11, 0, 1966091, 11, 0, 1966092, 11, 0, 1966093, 11, 0, 1966094, 11, 0, 1966095, 12, 0, 1966096, 10, 0, 1966097, 10, 0, 1966098, 10, 0, 1966099, 10, 0, 1966100, 10, 0, 1966101, 10, 0, 1966102, 29, 0, 1966103, 22, 0, 1966104, 22, 0, 1966105, 22, 0, 1966106, 22, 0, 1966107, 22, 0, 1966108, 22, 0, 1966109, 22, 0, 1966110, 22, 0, 1966111, 22, 0, 1966112, 22, 0, 1966113, 22, 0, 1966114, 22, 0, 1966115, 32, 0, 1966116, 31, 0, 1966117, 31, 0, 1966118, 32, 0, 1966119, 31, 0, 1966120, 30, 0, 1966121, 30, 0, 1966122, 30, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031619, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 3, 0, 2031624, 11, 0, 2031625, 11, 0, 2031626, 11, 0, 2031627, 11, 0, 2031628, 11, 0, 2031629, 11, 0, 2031630, 11, 0, 2031631, 4, 0, 2031632, 0, 0, 2031633, 0, 0, 2031634, 0, 0, 2031635, 0, 0, 2031636, 0, 0, 2031637, 0, 0, 2031638, 7, 0, 2031639, 45, 0, 2031640, 45, 0, 2031641, 45, 0, 2031642, 45, 0, 2031643, 45, 0, 2031644, 45, 0, 2031645, 45, 0, 2031646, 45, 0, 2031647, 45, 0, 2031648, 45, 0, 2031649, 45, 0, 2031650, 45, 0, 2031651, 21, 0, 2031652, 31, 0, 2031653, 31, 0, 2031654, 31, 0, 2031655, 24, 0, 2031656, 45, 0, 2031657, 45, 0, 2031658, 45, 0, 2097152, 0, 0, 2097153, 0, 0, 2097154, 0, 0, 2097155, 0, 0, 2097156, 0, 0, 2097157, 0, 0, 2097158, 0, 0, 2097159, 3, 0, 2097160, 11, 0, 2097161, 11, 0, 2097162, 11, 0, 2097163, 11, 0, 2097164, 11, 0, 2097165, 11, 0, 2097166, 11, 0, 2097167, 12, 0, 2097168, 10, 0, 2097169, 10, 0, 2097170, 10, 0, 2097171, 10, 0, 2097172, 10, 0, 2097173, 10, 0, 2097174, 29, 0, 2097175, 22, 0, 2097176, 22, 0, 2097177, 22, 0, 2097178, 22, 0, 2097179, 22, 0, 2097180, 22, 0, 2097181, 22, 0, 2097182, 22, 0, 2097183, 22, 0, 2097184, 22, 0, 2097185, 22, 0, 2097186, 22, 0, 2097187, 32, 0, 2097188, 32, 0, 2097189, 31, 0, 2097190, 31, 0, 2097191, 32, 0, 2097192, 22, 0, 2097193, 22, 0, 2097194, 22, 0, 2162688, 0, 0, 2162689, 0, 0, 2162690, 0, 0, 2162691, 0, 0, 2162692, 0, 0, 2162693, 0, 0, 2162694, 0, 0, 2162695, 15, 0, 2162696, 5, 0, 2162697, 5, 0, 2162698, 5, 0, 2162699, 5, 0, 2162700, 5, 0, 2162701, 5, 0, 2162702, 5, 0, 2162703, 5, 0, 2162704, 2, 0, 2162705, 2, 0, 2162706, 2, 0, 2162707, 2, 0, 2162708, 2, 0, 2162709, 2, 0, 2162710, 29, 0, 2162711, 30, 0, 2162712, 30, 0, 2162713, 30, 0, 2162714, 30, 0, 2162715, 30, 0, 2162716, 30, 0, 2162717, 30, 0, 2162718, 30, 0, 2162719, 30, 0, 2162720, 30, 0, 2162721, 30, 0, 2162722, 30, 0, 2162723, 32, 0, 2162724, 32, 0, 2162725, 32, 0, 2162726, 32, 0, 2162727, 32, 0, 2162728, 30, 0, 2162729, 30, 0, 2162730, 30, 0, 2228224, 0, 0, 2228225, 0, 0, 2228226, 0, 0, 2228227, 0, 0, 2228228, 0, 0, 2228229, 0, 0, 2228230, 0, 0, 2228231, 0, 0, 2228232, 0, 0, 2228233, 0, 0, 2228234, 0, 0, 2228235, 0, 0, 2228236, 0, 0, 2228237, 0, 0, 2228238, 0, 0, 2228239, 0, 0, 2228240, 0, 0, 2228241, 0, 0, 2228242, 0, 0, 2228243, 0, 0, 2228244, 0, 0, 2228245, 0, 0, 2228246, 7, 0, 2228247, 45, 0, 2228248, 45, 0, 2228249, 45, 0, 2228250, 45, 0, 2228251, 45, 0, 2228252, 45, 0, 2228253, 45, 0, 2228254, 45, 0, 2228255, 45, 0, 2228256, 45, 0, 2228257, 45, 0, 2228258, 45, 0, 2228259, 23, 0, 2228260, 32, 0, 2228261, 31, 0, 2228262, 32, 0, 2228263, 24, 0, 2228264, 45, 0, 2228265, 45, 0, 2228266, 45, 0, 2293760, 0, 0, 2293761, 0, 0, 2293762, 0, 0, 2293763, 0, 0, 2293764, 0, 0, 2293765, 0, 0, 2293766, 0, 0, 2293767, 0, 0, 2293768, 0, 0, 2293769, 0, 0, 2293770, 0, 0, 2293771, 0, 0, 2293772, 0, 0, 2293773, 0, 0, 2293774, 0, 0, 2293775, 0, 0, 2293776, 0, 0, 2293777, 0, 0, 2293778, 0, 0, 2293779, 0, 0, 2293780, 0, 0, 2293781, 0, 0, 2293782, 7, 0, 2293783, 45, 0, 2293784, 45, 0, 2293785, 45, 0, 2293786, 45, 0, 2293787, 45, 0, 2293788, 45, 0, 2293789, 45, 0, 2293790, 45, 0, 2293791, 45, 0, 2293792, 45, 0, 2293793, 45, 0, 2293794, 45, 0, 2293795, 23, 0, 2293796, 32, 0, 2293797, 25, 0, 2293798, 32, 0, 2293799, 24, 0, 2293800, 45, 0, 2293801, 45, 0, 2293802, 45, 0, 2359296, 0, 0, 2359297, 0, 0, 2359298, 0, 0, 2359299, 0, 0, 2359300, 0, 0, 2359301, 0, 0, 2359302, 0, 0, 2359303, 0, 0, 2359304, 0, 0, 2359305, 0, 0, 2359306, 0, 0, 2359307, 0, 0, 2359308, 0, 0, 2359309, 0, 0, 2359310, 0, 0, 2359311, 0, 0, 2359312, 0, 0, 2359313, 0, 0, 2359314, 0, 0, 2359315, 0, 0, 2359316, 0, 0, 2359317, 0, 0, 2359318, 7, 0, 2359319, 45, 0, 2359320, 45, 0, 2359321, 45, 0, 2359322, 45, 0, 2359323, 45, 0, 2359324, 45, 0, 2359325, 45, 0, 2359326, 45, 0, 2359327, 45, 0, 2359328, 45, 0, 2359329, 45, 0, 2359330, 45, 0, 2359331, 21, 0, 2359332, 21, 0, 2359333, 45, 0, 2359334, 21, 0, 2359335, 21, 0, 2359336, 45, 0, 2359337, 45, 0, 2359338, 45, 0, 2424832, 0, 0, 2424833, 0, 0, 2424834, 0, 0, 2424835, 0, 0, 2424836, 0, 0, 2424837, 0, 0, 2424838, 0, 0, 2424839, 0, 0, 2424840, 0, 0, 2424841, 0, 0, 2424842, 0, 0, 2424843, 0, 0, 2424844, 0, 0, 2424845, 0, 0, 2424846, 0, 0, 2424847, 0, 0, 2424848, 0, 0, 2424849, 0, 0, 2424850, 0, 0, 2424851, 0, 0, 2424852, 0, 0, 2424853, 0, 0, 2424854, 7, 0, 2424855, 45, 0, 2424856, 45, 0, 2424857, 45, 0, 2424858, 45, 0, 2424859, 45, 0, 2424860, 45, 0, 2424861, 45, 0, 2424862, 45, 0, 2424863, 45, 0, 2424864, 45, 0, 2424865, 45, 0, 2424866, 45, 0, 2424867, 21, 0, 2424868, 21, 0, 2424869, 45, 0, 2424870, 21, 0, 2424871, 21, 0, 2424872, 45, 0, 2424873, 45, 0, 2424874, 45, 0, 2490368, 0, 0, 2490369, 0, 0, 2490370, 0, 0, 2490371, 0, 0, 2490372, 0, 0, 2490373, 0, 0, 2490374, 0, 0, 2490375, 0, 0, 2490376, 0, 0, 2490377, 0, 0, 2490378, 0, 0, 2490379, 0, 0, 2490380, 0, 0, 2490381, 0, 0, 2490382, 0, 0, 2490383, 0, 0, 2490384, 0, 0, 2490385, 0, 0, 2490386, 0, 0, 2490387, 0, 0, 2490388, 0, 0, 2490389, 0, 0, 2490390, 7, 0, 2490391, 45, 0, 2490392, 45, 0, 2490393, 45, 0, 2490394, 45, 0, 2490395, 45, 0, 2490396, 45, 0, 2490397, 45, 0, 2490398, 45, 0, 2490399, 45, 0, 2490400, 45, 0, 2490401, 45, 0, 2490402, 45, 0, 2490403, 21, 0, 2490404, 21, 0, 2490405, 45, 0, 2490406, 21, 0, 2490407, 21, 0, 2490408, 45, 0, 2490409, 45, 0, 2490410, 45, 0, 2555904, 0, 0, 2555905, 0, 0, 2555906, 0, 0, 2555907, 0, 0, 2555908, 0, 0, 2555909, 0, 0, 2555910, 0, 0, 2555911, 0, 0, 2555912, 0, 0, 2555913, 0, 0, 2555914, 0, 0, 2555915, 0, 0, 2555916, 0, 0, 2555917, 0, 0, 2555918, 0, 0, 2555919, 0, 0, 2555920, 0, 0, 2555921, 0, 0, 2555922, 0, 0, 2555923, 0, 0, 2555924, 0, 0, 2555925, 0, 0, 2555926, 7, 0, 2555927, 45, 0, 2555928, 45, 0, 2555929, 45, 0, 2555930, 45, 0, 2555931, 45, 0, 2555932, 45, 0, 2555933, 45, 0, 2555934, 45, 0, 2555935, 45, 0, 2555936, 45, 0, 2555937, 45, 0, 2555938, 45, 0, 2555939, 21, 0, 2555940, 21, 0, 2555941, 45, 0, 2555942, 21, 0, 2555943, 21, 0, 2555944, 45, 0, 2555945, 45, 0, 2555946, 45, 0, 2621440, 0, 0, 2621441, 0, 0, 2621442, 0, 0, 2621443, 0, 0, 2621444, 0, 0, 2621445, 0, 0, 2621446, 0, 0, 2621447, 0, 0, 2621448, 0, 0, 2621449, 0, 0, 2621450, 0, 0, 2621451, 0, 0, 2621452, 0, 0, 2621453, 0, 0, 2621454, 0, 0, 2621455, 0, 0, 2621456, 0, 0, 2621457, 0, 0, 2621458, 0, 0, 2621459, 0, 0, 2621460, 0, 0, 2621461, 0, 0, 2621462, 7, 0, 2621463, 45, 0, 2621464, 45, 0, 2621465, 45, 0, 2621466, 45, 0, 2621467, 45, 0, 2621468, 45, 0, 2621469, 45, 0, 2621470, 45, 0, 2621471, 45, 0, 2621472, 45, 0, 2621473, 45, 0, 2621474, 45, 0, 2621475, 21, 0, 2621476, 21, 0, 2621477, 45, 0, 2621478, 21, 0, 2621479, 21, 0, 2621480, 45, 0, 2621481, 45, 0, 2621482, 45, 0, 2686976, 0, 0, 2686977, 0, 0, 2686978, 0, 0, 2686979, 0, 0, 2686980, 0, 0, 2686981, 0, 0, 2686982, 0, 0, 2686983, 0, 0, 2686984, 0, 0, 2686985, 0, 0, 2686986, 0, 0, 2686987, 0, 0, 2686988, 0, 0, 2686989, 0, 0, 2686990, 0, 0, 2686991, 0, 0, 2686992, 0, 0, 2686993, 0, 0, 2686994, 0, 0, 2686995, 0, 0, 2686996, 0, 0, 2686997, 0, 0, 2686998, 7, 0, 2686999, 45, 0, 2687000, 45, 0, 2687001, 45, 0, 2687002, 45, 0, 2687003, 45, 0, 2687004, 45, 0, 2687005, 45, 0, 2687006, 45, 0, 2687007, 45, 0, 2687008, 45, 0, 2687009, 45, 0, 2687010, 45, 0, 2687011, 21, 0, 2687012, 21, 0, 2687013, 45, 0, 2687014, 21, 0, 2687015, 21, 0, 2687016, 45, 0, 2687017, 45, 0, 2687018, 45, 0, 2752512, 0, 0, 2752513, 0, 0, 2752514, 0, 0, 2752515, 0, 0, 2752516, 0, 0, 2752517, 0, 0, 2752518, 0, 0, 2752519, 0, 0, 2752520, 0, 0, 2752521, 0, 0, 2752522, 0, 0, 2752523, 0, 0, 2752524, 0, 0, 2752525, 0, 0, 2752526, 0, 0, 2752527, 0, 0, 2752528, 0, 0, 2752529, 0, 0, 2752530, 0, 0, 2752531, 0, 0, 2752532, 0, 0, 2752533, 0, 0, 2752534, 7, 0, 2752535, 45, 0, 2752536, 45, 0, 2752537, 45, 0, 2752538, 45, 0, 2752539, 45, 0, 2752540, 45, 0, 2752541, 45, 0, 2752542, 45, 0, 2752543, 45, 0, 2752544, 45, 0, 2752545, 45, 0, 2752546, 45, 0, 2752547, 21, 0, 2752548, 21, 0, 2752549, 45, 0, 2752550, 21, 0, 2752551, 21, 0, 2752552, 45, 0, 2752553, 45, 0, 2752554, 45, 0, 2752564, 0, 0, 2818048, 0, 0, 2818049, 0, 0, 2818050, 0, 0, 2818051, 0, 0, 2818052, 0, 0, 2818053, 0, 0, 2818054, 0, 0, 2818055, 0, 0, 2818056, 0, 0, 2818057, 0, 0, 2818058, 0, 0, 2818059, 0, 0, 2818060, 0, 0, 2818061, 0, 0, 2818062, 0, 0, 2818063, 0, 0, 2818064, 0, 0, 2818065, 0, 0, 2818066, 0, 0, 2818067, 0, 0, 2818068, 0, 0, 2818069, 0, 0, 2818070, 7, 0, 2818071, 45, 0, 2818072, 45, 0, 2818073, 45, 0, 2818074, 45, 0, 2818075, 45, 0, 2818076, 45, 0, 2818077, 45, 0, 2818078, 45, 0, 2818079, 45, 0, 2818080, 45, 0, 2818081, 45, 0, 2818082, 45, 0, 2818083, 21, 0, 2818084, 21, 0, 2818085, 45, 0, 2818086, 21, 0, 2818087, 21, 0, 2818088, 45, 0, 2818089, 45, 0, 2818090, 45, 0, 2883584, 0, 0, 2883585, 0, 0, 2883586, 0, 0, 2883587, 0, 0, 2883588, 0, 0, 2883589, 0, 0, 2883590, 0, 0, 2883591, 0, 0, 2883592, 0, 0, 2883593, 0, 0, 2883594, 0, 0, 2883595, 0, 0, 2883596, 0, 0, 2883597, 0, 0, 2883598, 0, 0, 2883599, 0, 0, 2883600, 0, 0, 2883601, 0, 0, 2883602, 0, 0, 2883603, 0, 0, 2883604, 0, 0, 2883605, 0, 0, 2883606, 7, 0, 2883607, 45, 0, 2883608, 45, 0, 2883609, 45, 0, 2883610, 45, 0, 2883611, 45, 0, 2883612, 45, 0, 2883613, 45, 0, 2883614, 45, 0, 2883615, 45, 0, 2883616, 45, 0, 2883617, 45, 0, 2883618, 45, 0, 2883619, 21, 0, 2883620, 21, 0, 2883621, 45, 0, 2883622, 21, 0, 2883623, 21, 0, 2883624, 45, 0, 2883625, 45, 0, 2883626, 45, 0, 2949120, 0, 0, 2949121, 0, 0, 2949122, 0, 0, 2949123, 0, 0, 2949124, 0, 0, 2949125, 0, 0, 2949126, 0, 0, 2949127, 0, 0, 2949128, 0, 0, 2949129, 0, 0, 2949130, 0, 0, 2949131, 0, 0, 2949132, 0, 0, 2949133, 0, 0, 2949134, 0, 0, 2949135, 0, 0, 2949136, 0, 0, 2949137, 0, 0, 2949138, 0, 0, 2949139, 0, 0, 2949140, 0, 0, 2949141, 0, 0, 2949142, 7, 0, 2949143, 45, 0, 2949144, 45, 0, 2949145, 45, 0, 2949146, 45, 0, 2949147, 45, 0, 2949148, 45, 0, 2949149, 45, 0, 2949150, 45, 0, 2949151, 45, 0, 2949152, 45, 0, 2949153, 45, 0, 2949154, 45, 0, 2949155, 21, 0, 2949156, 21, 0, 2949157, 45, 0, 2949158, 21, 0, 2949159, 21, 0, 2949160, 45, 0, 2949161, 45, 0, 2949162, 45, 0, 3014656, 0, 0, 3014657, 0, 0, 3014658, 0, 0, 3014659, 0, 0, 3014660, 0, 0, 3014661, 0, 0, 3014662, 0, 0, 3014663, 0, 0, 3014664, 0, 0, 3014665, 0, 0, 3014666, 0, 0, 3014667, 0, 0, 3014668, 0, 0, 3014669, 0, 0, 3014670, 0, 0, 3014671, 0, 0, 3014672, 0, 0, 3014673, 0, 0, 3014674, 0, 0, 3014675, 0, 0, 3014676, 0, 0, 3014677, 0, 0, 3014678, 7, 0, 3014679, 45, 0, 3014680, 45, 0, 3014681, 45, 0, 3014682, 45, 0, 3014683, 45, 0, 3014684, 45, 0, 3014685, 45, 0, 3014686, 45, 0, 3014687, 45, 0, 3014688, 45, 0, 3014689, 45, 0, 3014690, 45, 0, 3014691, 21, 0, 3014692, 21, 0, 3014693, 45, 0, 3014694, 21, 0, 3014695, 21, 0, 3014696, 45, 0, 3014697, 45, 0, 3014698, 45, 0 ) +tile_data = PoolIntArray( 0, 50, 0, 1, 50, 0, 2, 50, 0, 3, 50, 0, 4, 50, 0, 5, 50, 0, 6, 50, 0, 7, 50, 0, 8, 50, 0, 9, 50, 0, 10, 50, 0, 11, 50, 0, 12, 50, 0, 13, 50, 0, 14, 50, 0, 15, 50, 0, 16, 50, 0, 17, 50, 0, 18, 50, 0, 19, 50, 0, 20, 50, 0, 21, 50, 0, 22, 50, 0, 23, 50, 0, 24, 50, 0, 25, 50, 0, 26, 50, 0, 27, 50, 0, 28, 50, 0, 29, 50, 0, 30, 50, 0, 31, 50, 0, 32, 50, 0, 33, 50, 0, 34, 50, 0, 35, 50, 0, 36, 50, 0, 37, 50, 0, 38, 50, 0, 39, 50, 0, 40, 50, 0, 41, 50, 0, 42, 50, 0, 65536, 50, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 1, 0, 65544, 1, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 1, 0, 65549, 1, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 7, 0, 65559, 21, 0, 65560, 21, 0, 65561, 45, 0, 65562, 21, 0, 65563, 21, 0, 65564, 45, 0, 65565, 45, 0, 65566, 45, 0, 65567, 45, 0, 65568, 45, 0, 65569, 45, 0, 65570, 45, 0, 65571, 45, 0, 65572, 45, 0, 65573, 45, 0, 65574, 45, 0, 65575, 45, 0, 65576, 45, 0, 65577, 45, 0, 65578, 50, 0, 131072, 50, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 1, 0, 131080, 1, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 1, 0, 131085, 1, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 131090, 0, 0, 131091, 0, 0, 131092, 0, 0, 131093, 0, 0, 131094, 7, 0, 131095, 21, 0, 131096, 21, 0, 131097, 45, 0, 131098, 21, 0, 131099, 21, 0, 131100, 45, 0, 131101, 45, 0, 131102, 45, 0, 131103, 45, 0, 131104, 45, 0, 131105, 45, 0, 131106, 45, 0, 131107, 45, 0, 131108, 45, 0, 131109, 45, 0, 131110, 45, 0, 131111, 45, 0, 131112, 45, 0, 131113, 45, 0, 131114, 50, 0, 196608, 50, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 1, 0, 196616, 1, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 1, 0, 196621, 1, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 196625, 0, 0, 196626, 0, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 7, 0, 196631, 21, 0, 196632, 21, 0, 196633, 45, 0, 196634, 21, 0, 196635, 21, 0, 196636, 45, 0, 196637, 45, 0, 196638, 45, 0, 196639, 45, 0, 196640, 45, 0, 196641, 45, 0, 196642, 45, 0, 196643, 45, 0, 196644, 45, 0, 196645, 45, 0, 196646, 45, 0, 196647, 45, 0, 196648, 45, 0, 196649, 45, 0, 196650, 50, 0, 262144, 50, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 13, 0, 262151, 12, 0, 262152, 12, 0, 262153, 6, 0, 262154, 6, 0, 262155, 6, 0, 262156, 12, 0, 262157, 12, 0, 262158, 14, 0, 262159, 0, 0, 262160, 0, 0, 262161, 0, 0, 262162, 0, 0, 262163, 0, 0, 262164, 0, 0, 262165, 0, 0, 262166, 7, 0, 262167, 21, 0, 262168, 21, 0, 262169, 45, 0, 262170, 21, 0, 262171, 21, 0, 262172, 45, 0, 262173, 45, 0, 262174, 45, 0, 262175, 45, 0, 262176, 45, 0, 262177, 45, 0, 262178, 45, 0, 262179, 45, 0, 262180, 45, 0, 262181, 45, 0, 262182, 45, 0, 262183, 45, 0, 262184, 45, 0, 262185, 45, 0, 262186, 50, 0, 327680, 50, 0, 327681, 0, 0, 327682, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 0, 0, 327686, 3, 0, 327687, 12, 0, 327688, 12, 0, 327689, 12, 0, 327690, 12, 0, 327691, 12, 0, 327692, 12, 0, 327693, 12, 0, 327694, 4, 0, 327695, 0, 0, 327696, 0, 0, 327697, 0, 0, 327698, 0, 0, 327699, 0, 0, 327700, 0, 0, 327701, 0, 0, 327702, 7, 0, 327703, 21, 0, 327704, 21, 0, 327705, 45, 0, 327706, 23, 0, 327707, 32, 0, 327708, 26, 0, 327709, 26, 0, 327710, 26, 0, 327711, 26, 0, 327712, 26, 0, 327713, 26, 0, 327714, 26, 0, 327715, 26, 0, 327716, 26, 0, 327717, 26, 0, 327718, 26, 0, 327719, 34, 0, 327720, 45, 0, 327721, 45, 0, 327722, 50, 0, 393216, 50, 0, 393217, 13, 0, 393218, 6, 0, 393219, 10, 0, 393220, 6, 0, 393221, 6, 0, 393222, 12, 0, 393223, 12, 0, 393224, 12, 0, 393225, 12, 0, 393226, 12, 0, 393227, 12, 0, 393228, 12, 0, 393229, 12, 0, 393230, 12, 0, 393231, 10, 0, 393232, 10, 0, 393233, 10, 0, 393234, 10, 0, 393235, 10, 0, 393236, 10, 0, 393237, 10, 0, 393238, 29, 0, 393239, 32, 0, 393240, 32, 0, 393241, 26, 0, 393242, 32, 0, 393243, 32, 0, 393244, 32, 0, 393245, 32, 0, 393246, 32, 0, 393247, 32, 0, 393248, 32, 0, 393249, 32, 0, 393250, 32, 0, 393251, 32, 0, 393252, 31, 0, 393253, 32, 0, 393254, 31, 0, 393255, 24, 0, 393256, 45, 0, 393257, 45, 0, 393258, 50, 0, 458752, 50, 0, 458753, 3, 0, 458754, 12, 0, 458755, 10, 0, 458756, 12, 0, 458757, 12, 0, 458758, 12, 0, 458759, 12, 0, 458760, 12, 0, 458761, 12, 0, 458762, 12, 0, 458763, 12, 0, 458764, 12, 0, 458765, 12, 0, 458766, 12, 0, 458767, 10, 0, 458768, 10, 0, 458769, 10, 0, 458770, 10, 0, 458771, 10, 0, 458772, 10, 0, 458773, 10, 0, 458774, 29, 0, 458775, 32, 0, 458776, 31, 0, 458777, 32, 0, 458778, 31, 0, 458779, 32, 0, 458780, 32, 0, 458781, 32, 0, 458782, 32, 0, 458783, 32, 0, 458784, 32, 0, 458785, 32, 0, 458786, 32, 0, 458787, 32, 0, 458788, 32, 0, 458789, 32, 0, 458790, 31, 0, 458791, 24, 0, 458792, 45, 0, 458793, 45, 0, 458794, 50, 0, 524288, 50, 0, 524289, 1, 0, 524290, 1, 0, 524291, 0, 0, 524292, 1, 0, 524293, 1, 0, 524294, 3, 0, 524295, 12, 0, 524296, 12, 0, 524297, 12, 0, 524298, 12, 0, 524299, 12, 0, 524300, 12, 0, 524301, 12, 0, 524302, 4, 0, 524303, 0, 0, 524304, 0, 0, 524305, 0, 0, 524306, 0, 0, 524307, 0, 0, 524308, 0, 0, 524309, 0, 0, 524310, 7, 0, 524311, 23, 0, 524312, 31, 0, 524313, 25, 0, 524314, 31, 0, 524315, 32, 0, 524316, 32, 0, 524317, 32, 0, 524318, 32, 0, 524319, 32, 0, 524320, 32, 0, 524321, 32, 0, 524322, 32, 0, 524323, 31, 0, 524324, 31, 0, 524325, 32, 0, 524326, 31, 0, 524327, 24, 0, 524328, 45, 0, 524329, 45, 0, 524330, 50, 0, 589824, 50, 0, 589825, 1, 0, 589826, 1, 0, 589827, 0, 0, 589828, 1, 0, 589829, 1, 0, 589830, 15, 0, 589831, 11, 0, 589832, 11, 0, 589833, 5, 0, 589834, 5, 0, 589835, 5, 0, 589836, 11, 0, 589837, 11, 0, 589838, 16, 0, 589839, 0, 0, 589840, 0, 0, 589841, 0, 0, 589842, 0, 0, 589843, 0, 0, 589844, 0, 0, 589845, 0, 0, 589846, 7, 0, 589847, 21, 0, 589848, 21, 0, 589849, 45, 0, 589850, 23, 0, 589851, 32, 0, 589852, 25, 0, 589853, 25, 0, 589854, 25, 0, 589855, 25, 0, 589856, 25, 0, 589857, 25, 0, 589858, 25, 0, 589859, 32, 0, 589860, 32, 0, 589861, 25, 0, 589862, 32, 0, 589863, 24, 0, 589864, 45, 0, 589865, 45, 0, 589866, 50, 0, 655360, 50, 0, 655361, 1, 0, 655362, 1, 0, 655363, 0, 0, 655364, 1, 0, 655365, 1, 0, 655366, 0, 0, 655367, 1, 0, 655368, 1, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 1, 0, 655373, 1, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655382, 7, 0, 655383, 21, 0, 655384, 21, 0, 655385, 45, 0, 655386, 43, 0, 655387, 21, 0, 655388, 45, 0, 655389, 45, 0, 655390, 45, 0, 655391, 45, 0, 655392, 45, 0, 655393, 45, 0, 655394, 45, 0, 655395, 21, 0, 655396, 44, 0, 655397, 45, 0, 655398, 21, 0, 655399, 21, 0, 655400, 45, 0, 655401, 45, 0, 655402, 50, 0, 720896, 50, 0, 720897, 1, 0, 720898, 1, 0, 720899, 0, 0, 720900, 1, 0, 720901, 1, 0, 720902, 0, 0, 720903, 1, 0, 720904, 1, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720908, 1, 0, 720909, 1, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 0, 0, 720914, 0, 0, 720915, 0, 0, 720916, 0, 0, 720917, 0, 0, 720918, 7, 0, 720919, 21, 0, 720920, 21, 0, 720921, 45, 0, 720922, 21, 0, 720923, 21, 0, 720924, 45, 0, 720925, 45, 0, 720926, 45, 0, 720927, 45, 0, 720928, 45, 0, 720929, 45, 0, 720930, 45, 0, 720931, 21, 0, 720932, 21, 0, 720933, 45, 0, 720934, 21, 0, 720935, 21, 0, 720936, 45, 0, 720937, 45, 0, 720938, 50, 0, 786432, 50, 0, 786433, 1, 0, 786434, 1, 0, 786435, 0, 0, 786436, 1, 0, 786437, 1, 0, 786438, 0, 0, 786439, 1, 0, 786440, 1, 0, 786441, 0, 0, 786442, 0, 0, 786443, 0, 0, 786444, 1, 0, 786445, 1, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786454, 7, 0, 786455, 21, 0, 786456, 21, 0, 786457, 45, 0, 786458, 21, 0, 786459, 21, 0, 786460, 45, 0, 786461, 45, 0, 786462, 45, 0, 786463, 45, 0, 786464, 45, 0, 786465, 45, 0, 786466, 45, 0, 786467, 21, 0, 786468, 44, 0, 786469, 45, 0, 786470, 21, 0, 786471, 21, 0, 786472, 45, 0, 786473, 45, 0, 786474, 50, 0, 851968, 50, 0, 851969, 1, 0, 851970, 1, 0, 851971, 0, 0, 851972, 1, 0, 851973, 1, 0, 851974, 0, 0, 851975, 1, 0, 851976, 1, 0, 851977, 0, 0, 851978, 0, 0, 851979, 0, 0, 851980, 1, 0, 851981, 1, 0, 851982, 0, 0, 851983, 0, 0, 851984, 0, 0, 851985, 0, 0, 851986, 0, 0, 851987, 0, 0, 851988, 0, 0, 851989, 0, 0, 851990, 7, 0, 851991, 21, 0, 851992, 21, 0, 851993, 45, 0, 851994, 21, 0, 851995, 21, 0, 851996, 45, 0, 851997, 45, 0, 851998, 45, 0, 851999, 45, 0, 852000, 45, 0, 852001, 45, 0, 852002, 45, 0, 852003, 21, 0, 852004, 21, 0, 852005, 45, 0, 852006, 21, 0, 852007, 21, 0, 852008, 45, 0, 852009, 45, 0, 852010, 50, 0, 917504, 50, 0, 917505, 1, 0, 917506, 1, 0, 917507, 0, 0, 917508, 1, 0, 917509, 1, 0, 917510, 0, 0, 917511, 1, 0, 917512, 1, 0, 917513, 0, 0, 917514, 0, 0, 917515, 0, 0, 917516, 1, 0, 917517, 1, 0, 917518, 0, 0, 917519, 0, 0, 917520, 0, 0, 917521, 0, 0, 917522, 0, 0, 917523, 0, 0, 917524, 0, 0, 917525, 0, 0, 917526, 7, 0, 917527, 21, 0, 917528, 21, 0, 917529, 45, 0, 917530, 21, 0, 917531, 21, 0, 917532, 45, 0, 917533, 45, 0, 917534, 45, 0, 917535, 45, 0, 917536, 45, 0, 917537, 45, 0, 917538, 45, 0, 917539, 21, 0, 917540, 21, 0, 917541, 45, 0, 917542, 21, 0, 917543, 21, 0, 917544, 45, 0, 917545, 45, 0, 917546, 50, 0, 983040, 50, 0, 983041, 1, 0, 983042, 1, 0, 983043, 0, 0, 983044, 1, 0, 983045, 1, 0, 983046, 0, 0, 983047, 1, 0, 983048, 1, 0, 983049, 0, 0, 983050, 0, 0, 983051, 0, 0, 983052, 1, 0, 983053, 1, 0, 983054, 0, 0, 983055, 0, 0, 983056, 0, 0, 983057, 0, 0, 983058, 0, 0, 983059, 0, 0, 983060, 0, 0, 983061, 0, 0, 983062, 7, 0, 983063, 21, 0, 983064, 21, 0, 983065, 45, 0, 983066, 21, 0, 983067, 21, 0, 983068, 45, 0, 983069, 45, 0, 983070, 45, 0, 983071, 45, 0, 983072, 45, 0, 983073, 45, 0, 983074, 45, 0, 983075, 21, 0, 983076, 21, 0, 983077, 45, 0, 983078, 21, 0, 983079, 21, 0, 983080, 45, 0, 983081, 45, 0, 983082, 50, 0, 1048576, 50, 0, 1048577, 1, 0, 1048578, 1, 0, 1048579, 0, 0, 1048580, 1, 0, 1048581, 1, 0, 1048582, 0, 0, 1048583, 1, 0, 1048584, 1, 0, 1048585, 0, 0, 1048586, 0, 0, 1048587, 0, 0, 1048588, 1, 0, 1048589, 1, 0, 1048590, 0, 0, 1048591, 0, 0, 1048592, 0, 0, 1048593, 0, 0, 1048594, 0, 0, 1048595, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048598, 7, 0, 1048599, 21, 0, 1048600, 21, 0, 1048601, 45, 0, 1048602, 21, 0, 1048603, 21, 0, 1048604, 45, 0, 1048605, 45, 0, 1048606, 45, 0, 1048607, 45, 0, 1048608, 45, 0, 1048609, 45, 0, 1048610, 45, 0, 1048611, 21, 0, 1048612, 21, 0, 1048613, 45, 0, 1048614, 21, 0, 1048615, 21, 0, 1048616, 45, 0, 1048617, 45, 0, 1048618, 50, 0, 1114112, 50, 0, 1114113, 3, 0, 1114114, 12, 0, 1114115, 10, 0, 1114116, 12, 0, 1114117, 12, 0, 1114118, 10, 0, 1114119, 11, 0, 1114120, 11, 0, 1114121, 10, 0, 1114122, 10, 0, 1114123, 10, 0, 1114124, 11, 0, 1114125, 11, 0, 1114126, 10, 0, 1114127, 10, 0, 1114128, 10, 0, 1114129, 10, 0, 1114130, 10, 0, 1114131, 10, 0, 1114132, 10, 0, 1114133, 10, 0, 1114134, 29, 0, 1114135, 31, 0, 1114136, 31, 0, 1114137, 26, 0, 1114138, 31, 0, 1114139, 24, 0, 1114140, 45, 0, 1114141, 45, 0, 1114142, 45, 0, 1114143, 45, 0, 1114144, 45, 0, 1114145, 45, 0, 1114146, 45, 0, 1114147, 21, 0, 1114148, 21, 0, 1114149, 45, 0, 1114150, 21, 0, 1114151, 21, 0, 1114152, 45, 0, 1114153, 45, 0, 1114154, 50, 0, 1179648, 50, 0, 1179649, 3, 0, 1179650, 12, 0, 1179651, 10, 0, 1179652, 12, 0, 1179653, 12, 0, 1179654, 10, 0, 1179655, 11, 0, 1179656, 12, 0, 1179657, 10, 0, 1179658, 2, 0, 1179659, 10, 0, 1179660, 12, 0, 1179661, 11, 0, 1179662, 10, 0, 1179663, 10, 0, 1179664, 10, 0, 1179665, 10, 0, 1179666, 10, 0, 1179667, 10, 0, 1179668, 10, 0, 1179669, 10, 0, 1179670, 29, 0, 1179671, 31, 0, 1179672, 32, 0, 1179673, 25, 0, 1179674, 32, 0, 1179675, 24, 0, 1179676, 45, 0, 1179677, 45, 0, 1179678, 45, 0, 1179679, 45, 0, 1179680, 45, 0, 1179681, 45, 0, 1179682, 45, 0, 1179683, 21, 0, 1179684, 21, 0, 1179685, 45, 0, 1179686, 21, 0, 1179687, 21, 0, 1179688, 45, 0, 1179689, 45, 0, 1179690, 50, 0, 1245184, 50, 0, 1245185, 1, 0, 1245186, 1, 0, 1245187, 0, 0, 1245188, 1, 0, 1245189, 1, 0, 1245190, 0, 0, 1245191, 1, 0, 1245192, 1, 0, 1245193, 0, 0, 1245194, 0, 0, 1245195, 0, 0, 1245196, 1, 0, 1245197, 1, 0, 1245198, 0, 0, 1245199, 0, 0, 1245200, 0, 0, 1245201, 0, 0, 1245202, 0, 0, 1245203, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245206, 7, 0, 1245207, 21, 0, 1245208, 21, 0, 1245209, 45, 0, 1245210, 21, 0, 1245211, 21, 0, 1245212, 45, 0, 1245213, 45, 0, 1245214, 45, 0, 1245215, 45, 0, 1245216, 45, 0, 1245217, 45, 0, 1245218, 45, 0, 1245219, 21, 0, 1245220, 21, 0, 1245221, 45, 0, 1245222, 21, 0, 1245223, 21, 0, 1245224, 45, 0, 1245225, 45, 0, 1245226, 50, 0, 1310720, 50, 0, 1310721, 3, 0, 1310722, 11, 0, 1310723, 10, 0, 1310724, 5, 0, 1310725, 5, 0, 1310726, 10, 0, 1310727, 11, 0, 1310728, 11, 0, 1310729, 10, 0, 1310730, 2, 0, 1310731, 10, 0, 1310732, 11, 0, 1310733, 11, 0, 1310734, 10, 0, 1310735, 10, 0, 1310736, 10, 0, 1310737, 10, 0, 1310738, 10, 0, 1310739, 10, 0, 1310740, 10, 0, 1310741, 10, 0, 1310742, 29, 0, 1310743, 31, 0, 1310744, 31, 0, 1310745, 22, 0, 1310746, 31, 0, 1310747, 24, 0, 1310748, 45, 0, 1310749, 45, 0, 1310750, 45, 0, 1310751, 45, 0, 1310752, 45, 0, 1310753, 45, 0, 1310754, 45, 0, 1310755, 21, 0, 1310756, 21, 0, 1310757, 45, 0, 1310758, 21, 0, 1310759, 21, 0, 1310760, 45, 0, 1310761, 45, 0, 1310762, 50, 0, 1376256, 50, 0, 1376257, 15, 0, 1376258, 5, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 10, 0, 1376263, 11, 0, 1376264, 11, 0, 1376265, 10, 0, 1376266, 10, 0, 1376267, 10, 0, 1376268, 11, 0, 1376269, 11, 0, 1376270, 10, 0, 1376271, 10, 0, 1376272, 10, 0, 1376273, 10, 0, 1376274, 10, 0, 1376275, 10, 0, 1376276, 10, 0, 1376277, 10, 0, 1376278, 29, 0, 1376279, 25, 0, 1376280, 25, 0, 1376281, 30, 0, 1376282, 25, 0, 1376283, 36, 0, 1376284, 45, 0, 1376285, 45, 0, 1376286, 45, 0, 1376287, 45, 0, 1376288, 45, 0, 1376289, 45, 0, 1376290, 45, 0, 1376291, 21, 0, 1376292, 21, 0, 1376293, 45, 0, 1376294, 21, 0, 1376295, 21, 0, 1376296, 45, 0, 1376297, 45, 0, 1376298, 50, 0, 1441792, 50, 0, 1441793, 0, 0, 1441794, 0, 0, 1441795, 0, 0, 1441796, 0, 0, 1441797, 0, 0, 1441798, 0, 0, 1441799, 1, 0, 1441800, 1, 0, 1441801, 0, 0, 1441802, 0, 0, 1441803, 0, 0, 1441804, 1, 0, 1441805, 1, 0, 1441806, 0, 0, 1441807, 0, 0, 1441808, 0, 0, 1441809, 0, 0, 1441810, 0, 0, 1441811, 0, 0, 1441812, 0, 0, 1441813, 0, 0, 1441814, 7, 0, 1441815, 45, 0, 1441816, 45, 0, 1441817, 45, 0, 1441818, 45, 0, 1441819, 45, 0, 1441820, 45, 0, 1441821, 45, 0, 1441822, 45, 0, 1441823, 45, 0, 1441824, 45, 0, 1441825, 45, 0, 1441826, 45, 0, 1441827, 21, 0, 1441828, 21, 0, 1441829, 45, 0, 1441830, 21, 0, 1441831, 21, 0, 1441832, 45, 0, 1441833, 45, 0, 1441834, 50, 0, 1507328, 50, 0, 1507329, 0, 0, 1507330, 0, 0, 1507331, 0, 0, 1507332, 0, 0, 1507333, 0, 0, 1507334, 0, 0, 1507335, 1, 0, 1507336, 1, 0, 1507337, 0, 0, 1507338, 0, 0, 1507339, 0, 0, 1507340, 1, 0, 1507341, 1, 0, 1507342, 0, 0, 1507343, 0, 0, 1507344, 0, 0, 1507345, 0, 0, 1507346, 0, 0, 1507347, 0, 0, 1507348, 0, 0, 1507349, 0, 0, 1507350, 7, 0, 1507351, 45, 0, 1507352, 45, 0, 1507353, 45, 0, 1507354, 45, 0, 1507355, 45, 0, 1507356, 45, 0, 1507357, 45, 0, 1507358, 45, 0, 1507359, 45, 0, 1507360, 45, 0, 1507361, 45, 0, 1507362, 45, 0, 1507363, 21, 0, 1507364, 21, 0, 1507365, 45, 0, 1507366, 21, 0, 1507367, 21, 0, 1507368, 45, 0, 1507369, 45, 0, 1507370, 50, 0, 1572864, 50, 0, 1572865, 0, 0, 1572866, 0, 0, 1572867, 0, 0, 1572868, 0, 0, 1572869, 0, 0, 1572870, 0, 0, 1572871, 1, 0, 1572872, 1, 0, 1572873, 0, 0, 1572874, 0, 0, 1572875, 0, 0, 1572876, 1, 0, 1572877, 1, 0, 1572878, 0, 0, 1572879, 0, 0, 1572880, 0, 0, 1572881, 0, 0, 1572882, 0, 0, 1572883, 0, 0, 1572884, 0, 0, 1572885, 0, 0, 1572886, 7, 0, 1572887, 45, 0, 1572888, 45, 0, 1572889, 45, 0, 1572890, 45, 0, 1572891, 45, 0, 1572892, 45, 0, 1572893, 45, 0, 1572894, 45, 0, 1572895, 45, 0, 1572896, 45, 0, 1572897, 45, 0, 1572898, 45, 0, 1572899, 21, 0, 1572900, 21, 0, 1572901, 45, 0, 1572902, 21, 0, 1572903, 21, 0, 1572904, 45, 0, 1572905, 45, 0, 1572906, 50, 0, 1638400, 50, 0, 1638401, 0, 0, 1638402, 0, 0, 1638403, 0, 0, 1638404, 0, 0, 1638405, 0, 0, 1638406, 0, 0, 1638407, 1, 0, 1638408, 1, 0, 1638409, 0, 0, 1638410, 0, 0, 1638411, 0, 0, 1638412, 1, 0, 1638413, 1, 0, 1638414, 0, 0, 1638415, 0, 0, 1638416, 0, 0, 1638417, 0, 0, 1638418, 0, 0, 1638419, 0, 0, 1638420, 0, 0, 1638421, 0, 0, 1638422, 7, 0, 1638423, 45, 0, 1638424, 45, 0, 1638425, 45, 0, 1638426, 45, 0, 1638427, 45, 0, 1638428, 45, 0, 1638429, 45, 0, 1638430, 45, 0, 1638431, 45, 0, 1638432, 45, 0, 1638433, 45, 0, 1638434, 45, 0, 1638435, 21, 0, 1638436, 21, 0, 1638437, 45, 0, 1638438, 21, 0, 1638439, 21, 0, 1638440, 45, 0, 1638441, 45, 0, 1638442, 50, 0, 1703936, 50, 0, 1703937, 0, 0, 1703938, 0, 0, 1703939, 0, 0, 1703940, 0, 0, 1703941, 0, 0, 1703942, 0, 0, 1703943, 1, 0, 1703944, 1, 0, 1703945, 0, 0, 1703946, 0, 0, 1703947, 0, 0, 1703948, 1, 0, 1703949, 1, 0, 1703950, 0, 0, 1703951, 0, 0, 1703952, 0, 0, 1703953, 0, 0, 1703954, 0, 0, 1703955, 0, 0, 1703956, 0, 0, 1703957, 0, 0, 1703958, 7, 0, 1703959, 45, 0, 1703960, 45, 0, 1703961, 45, 0, 1703962, 45, 0, 1703963, 45, 0, 1703964, 45, 0, 1703965, 45, 0, 1703966, 45, 0, 1703967, 45, 0, 1703968, 45, 0, 1703969, 45, 0, 1703970, 45, 0, 1703971, 21, 0, 1703972, 21, 0, 1703973, 45, 0, 1703974, 21, 0, 1703975, 21, 0, 1703976, 45, 0, 1703977, 45, 0, 1703978, 50, 0, 1769472, 50, 0, 1769473, 0, 0, 1769474, 0, 0, 1769475, 0, 0, 1769476, 0, 0, 1769477, 0, 0, 1769478, 0, 0, 1769479, 1, 0, 1769480, 1, 0, 1769481, 0, 0, 1769482, 0, 0, 1769483, 0, 0, 1769484, 1, 0, 1769485, 1, 0, 1769486, 0, 0, 1769487, 0, 0, 1769488, 0, 0, 1769489, 0, 0, 1769490, 0, 0, 1769491, 0, 0, 1769492, 0, 0, 1769493, 0, 0, 1769494, 7, 0, 1769495, 45, 0, 1769496, 45, 0, 1769497, 45, 0, 1769498, 45, 0, 1769499, 45, 0, 1769500, 45, 0, 1769501, 45, 0, 1769502, 45, 0, 1769503, 45, 0, 1769504, 45, 0, 1769505, 45, 0, 1769506, 45, 0, 1769507, 21, 0, 1769508, 21, 0, 1769509, 45, 0, 1769510, 21, 0, 1769511, 21, 0, 1769512, 45, 0, 1769513, 45, 0, 1769514, 50, 0, 1835008, 50, 0, 1835009, 0, 0, 1835010, 0, 0, 1835011, 0, 0, 1835012, 0, 0, 1835013, 0, 0, 1835014, 0, 0, 1835015, 3, 0, 1835016, 11, 0, 1835017, 6, 0, 1835018, 6, 0, 1835019, 6, 0, 1835020, 11, 0, 1835021, 11, 0, 1835022, 6, 0, 1835023, 14, 0, 1835024, 0, 0, 1835025, 0, 0, 1835026, 0, 0, 1835027, 0, 0, 1835028, 0, 0, 1835029, 0, 0, 1835030, 7, 0, 1835031, 45, 0, 1835032, 45, 0, 1835033, 45, 0, 1835034, 45, 0, 1835035, 45, 0, 1835036, 45, 0, 1835037, 45, 0, 1835038, 45, 0, 1835039, 45, 0, 1835040, 45, 0, 1835041, 45, 0, 1835042, 45, 0, 1835043, 23, 0, 1835044, 31, 0, 1835045, 26, 0, 1835046, 31, 0, 1835047, 24, 0, 1835048, 45, 0, 1835049, 45, 0, 1835050, 50, 0, 1900544, 50, 0, 1900545, 0, 0, 1900546, 0, 0, 1900547, 0, 0, 1900548, 0, 0, 1900549, 0, 0, 1900550, 0, 0, 1900551, 3, 0, 1900552, 11, 0, 1900553, 11, 0, 1900554, 11, 0, 1900555, 11, 0, 1900556, 11, 0, 1900557, 11, 0, 1900558, 11, 0, 1900559, 12, 0, 1900560, 2, 0, 1900561, 2, 0, 1900562, 2, 0, 1900563, 2, 0, 1900564, 2, 0, 1900565, 2, 0, 1900566, 29, 0, 1900567, 30, 0, 1900568, 30, 0, 1900569, 30, 0, 1900570, 30, 0, 1900571, 30, 0, 1900572, 30, 0, 1900573, 30, 0, 1900574, 30, 0, 1900575, 30, 0, 1900576, 30, 0, 1900577, 30, 0, 1900578, 30, 0, 1900579, 32, 0, 1900580, 32, 0, 1900581, 31, 0, 1900582, 32, 0, 1900583, 32, 0, 1900584, 30, 0, 1900585, 30, 0, 1900586, 50, 0, 1966080, 50, 0, 1966081, 0, 0, 1966082, 0, 0, 1966083, 0, 0, 1966084, 0, 0, 1966085, 0, 0, 1966086, 0, 0, 1966087, 3, 0, 1966088, 11, 0, 1966089, 11, 0, 1966090, 11, 0, 1966091, 11, 0, 1966092, 11, 0, 1966093, 11, 0, 1966094, 11, 0, 1966095, 12, 0, 1966096, 10, 0, 1966097, 10, 0, 1966098, 10, 0, 1966099, 10, 0, 1966100, 10, 0, 1966101, 10, 0, 1966102, 29, 0, 1966103, 22, 0, 1966104, 22, 0, 1966105, 22, 0, 1966106, 22, 0, 1966107, 22, 0, 1966108, 22, 0, 1966109, 22, 0, 1966110, 22, 0, 1966111, 22, 0, 1966112, 22, 0, 1966113, 22, 0, 1966114, 22, 0, 1966115, 32, 0, 1966116, 31, 0, 1966117, 31, 0, 1966118, 32, 0, 1966119, 31, 0, 1966120, 30, 0, 1966121, 30, 0, 1966122, 50, 0, 2031616, 50, 0, 2031617, 0, 0, 2031618, 0, 0, 2031619, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 3, 0, 2031624, 11, 0, 2031625, 11, 0, 2031626, 11, 0, 2031627, 11, 0, 2031628, 11, 0, 2031629, 11, 0, 2031630, 11, 0, 2031631, 4, 0, 2031632, 0, 0, 2031633, 0, 0, 2031634, 0, 0, 2031635, 0, 0, 2031636, 0, 0, 2031637, 0, 0, 2031638, 7, 0, 2031639, 45, 0, 2031640, 45, 0, 2031641, 45, 0, 2031642, 45, 0, 2031643, 45, 0, 2031644, 45, 0, 2031645, 45, 0, 2031646, 45, 0, 2031647, 45, 0, 2031648, 45, 0, 2031649, 45, 0, 2031650, 45, 0, 2031651, 21, 0, 2031652, 31, 0, 2031653, 31, 0, 2031654, 31, 0, 2031655, 24, 0, 2031656, 45, 0, 2031657, 45, 0, 2031658, 50, 0, 2097152, 50, 0, 2097153, 0, 0, 2097154, 0, 0, 2097155, 0, 0, 2097156, 0, 0, 2097157, 0, 0, 2097158, 0, 0, 2097159, 3, 0, 2097160, 11, 0, 2097161, 11, 0, 2097162, 11, 0, 2097163, 11, 0, 2097164, 11, 0, 2097165, 11, 0, 2097166, 11, 0, 2097167, 12, 0, 2097168, 10, 0, 2097169, 10, 0, 2097170, 10, 0, 2097171, 10, 0, 2097172, 10, 0, 2097173, 10, 0, 2097174, 29, 0, 2097175, 22, 0, 2097176, 22, 0, 2097177, 22, 0, 2097178, 22, 0, 2097179, 22, 0, 2097180, 22, 0, 2097181, 22, 0, 2097182, 22, 0, 2097183, 22, 0, 2097184, 22, 0, 2097185, 22, 0, 2097186, 22, 0, 2097187, 32, 0, 2097188, 32, 0, 2097189, 31, 0, 2097190, 31, 0, 2097191, 32, 0, 2097192, 22, 0, 2097193, 22, 0, 2097194, 50, 0, 2162688, 50, 0, 2162689, 0, 0, 2162690, 0, 0, 2162691, 0, 0, 2162692, 0, 0, 2162693, 0, 0, 2162694, 0, 0, 2162695, 15, 0, 2162696, 5, 0, 2162697, 5, 0, 2162698, 5, 0, 2162699, 5, 0, 2162700, 5, 0, 2162701, 5, 0, 2162702, 5, 0, 2162703, 5, 0, 2162704, 2, 0, 2162705, 2, 0, 2162706, 2, 0, 2162707, 2, 0, 2162708, 2, 0, 2162709, 2, 0, 2162710, 29, 0, 2162711, 30, 0, 2162712, 30, 0, 2162713, 30, 0, 2162714, 30, 0, 2162715, 30, 0, 2162716, 30, 0, 2162717, 30, 0, 2162718, 30, 0, 2162719, 30, 0, 2162720, 30, 0, 2162721, 30, 0, 2162722, 30, 0, 2162723, 32, 0, 2162724, 32, 0, 2162725, 32, 0, 2162726, 32, 0, 2162727, 32, 0, 2162728, 30, 0, 2162729, 30, 0, 2162730, 50, 0, 2228224, 50, 0, 2228225, 0, 0, 2228226, 0, 0, 2228227, 0, 0, 2228228, 0, 0, 2228229, 0, 0, 2228230, 0, 0, 2228231, 0, 0, 2228232, 0, 0, 2228233, 0, 0, 2228234, 0, 0, 2228235, 0, 0, 2228236, 0, 0, 2228237, 0, 0, 2228238, 0, 0, 2228239, 0, 0, 2228240, 0, 0, 2228241, 0, 0, 2228242, 0, 0, 2228243, 0, 0, 2228244, 0, 0, 2228245, 0, 0, 2228246, 7, 0, 2228247, 45, 0, 2228248, 45, 0, 2228249, 45, 0, 2228250, 45, 0, 2228251, 45, 0, 2228252, 45, 0, 2228253, 45, 0, 2228254, 45, 0, 2228255, 45, 0, 2228256, 45, 0, 2228257, 45, 0, 2228258, 45, 0, 2228259, 23, 0, 2228260, 32, 0, 2228261, 31, 0, 2228262, 32, 0, 2228263, 24, 0, 2228264, 45, 0, 2228265, 45, 0, 2228266, 50, 0, 2293760, 50, 0, 2293761, 0, 0, 2293762, 0, 0, 2293763, 0, 0, 2293764, 0, 0, 2293765, 0, 0, 2293766, 0, 0, 2293767, 0, 0, 2293768, 0, 0, 2293769, 0, 0, 2293770, 0, 0, 2293771, 0, 0, 2293772, 0, 0, 2293773, 0, 0, 2293774, 0, 0, 2293775, 0, 0, 2293776, 0, 0, 2293777, 0, 0, 2293778, 0, 0, 2293779, 0, 0, 2293780, 0, 0, 2293781, 0, 0, 2293782, 7, 0, 2293783, 45, 0, 2293784, 45, 0, 2293785, 45, 0, 2293786, 45, 0, 2293787, 45, 0, 2293788, 45, 0, 2293789, 45, 0, 2293790, 45, 0, 2293791, 45, 0, 2293792, 45, 0, 2293793, 45, 0, 2293794, 45, 0, 2293795, 23, 0, 2293796, 32, 0, 2293797, 25, 0, 2293798, 32, 0, 2293799, 24, 0, 2293800, 45, 0, 2293801, 45, 0, 2293802, 50, 0, 2359296, 50, 0, 2359297, 0, 0, 2359298, 0, 0, 2359299, 0, 0, 2359300, 0, 0, 2359301, 0, 0, 2359302, 0, 0, 2359303, 0, 0, 2359304, 0, 0, 2359305, 0, 0, 2359306, 0, 0, 2359307, 0, 0, 2359308, 0, 0, 2359309, 0, 0, 2359310, 0, 0, 2359311, 0, 0, 2359312, 0, 0, 2359313, 0, 0, 2359314, 0, 0, 2359315, 0, 0, 2359316, 0, 0, 2359317, 0, 0, 2359318, 7, 0, 2359319, 45, 0, 2359320, 45, 0, 2359321, 45, 0, 2359322, 45, 0, 2359323, 45, 0, 2359324, 45, 0, 2359325, 45, 0, 2359326, 45, 0, 2359327, 45, 0, 2359328, 45, 0, 2359329, 45, 0, 2359330, 45, 0, 2359331, 21, 0, 2359332, 21, 0, 2359333, 45, 0, 2359334, 21, 0, 2359335, 21, 0, 2359336, 45, 0, 2359337, 45, 0, 2359338, 50, 0, 2424832, 50, 0, 2424833, 0, 0, 2424834, 0, 0, 2424835, 0, 0, 2424836, 0, 0, 2424837, 0, 0, 2424838, 0, 0, 2424839, 0, 0, 2424840, 0, 0, 2424841, 0, 0, 2424842, 0, 0, 2424843, 0, 0, 2424844, 0, 0, 2424845, 0, 0, 2424846, 0, 0, 2424847, 0, 0, 2424848, 0, 0, 2424849, 0, 0, 2424850, 0, 0, 2424851, 0, 0, 2424852, 0, 0, 2424853, 0, 0, 2424854, 7, 0, 2424855, 45, 0, 2424856, 45, 0, 2424857, 45, 0, 2424858, 45, 0, 2424859, 45, 0, 2424860, 45, 0, 2424861, 45, 0, 2424862, 45, 0, 2424863, 45, 0, 2424864, 45, 0, 2424865, 45, 0, 2424866, 45, 0, 2424867, 21, 0, 2424868, 21, 0, 2424869, 45, 0, 2424870, 21, 0, 2424871, 21, 0, 2424872, 45, 0, 2424873, 45, 0, 2424874, 50, 0, 2490368, 50, 0, 2490369, 0, 0, 2490370, 0, 0, 2490371, 0, 0, 2490372, 0, 0, 2490373, 0, 0, 2490374, 0, 0, 2490375, 0, 0, 2490376, 0, 0, 2490377, 0, 0, 2490378, 0, 0, 2490379, 0, 0, 2490380, 0, 0, 2490381, 0, 0, 2490382, 0, 0, 2490383, 0, 0, 2490384, 0, 0, 2490385, 0, 0, 2490386, 0, 0, 2490387, 0, 0, 2490388, 0, 0, 2490389, 0, 0, 2490390, 7, 0, 2490391, 45, 0, 2490392, 45, 0, 2490393, 45, 0, 2490394, 45, 0, 2490395, 45, 0, 2490396, 45, 0, 2490397, 45, 0, 2490398, 45, 0, 2490399, 45, 0, 2490400, 45, 0, 2490401, 45, 0, 2490402, 45, 0, 2490403, 21, 0, 2490404, 21, 0, 2490405, 45, 0, 2490406, 21, 0, 2490407, 21, 0, 2490408, 45, 0, 2490409, 45, 0, 2490410, 50, 0, 2555904, 50, 0, 2555905, 0, 0, 2555906, 0, 0, 2555907, 0, 0, 2555908, 0, 0, 2555909, 0, 0, 2555910, 0, 0, 2555911, 0, 0, 2555912, 0, 0, 2555913, 0, 0, 2555914, 0, 0, 2555915, 0, 0, 2555916, 0, 0, 2555917, 0, 0, 2555918, 0, 0, 2555919, 0, 0, 2555920, 0, 0, 2555921, 0, 0, 2555922, 0, 0, 2555923, 0, 0, 2555924, 0, 0, 2555925, 0, 0, 2555926, 7, 0, 2555927, 45, 0, 2555928, 45, 0, 2555929, 45, 0, 2555930, 45, 0, 2555931, 45, 0, 2555932, 45, 0, 2555933, 45, 0, 2555934, 45, 0, 2555935, 45, 0, 2555936, 45, 0, 2555937, 45, 0, 2555938, 45, 0, 2555939, 21, 0, 2555940, 21, 0, 2555941, 45, 0, 2555942, 21, 0, 2555943, 21, 0, 2555944, 45, 0, 2555945, 45, 0, 2555946, 50, 0, 2621440, 50, 0, 2621441, 0, 0, 2621442, 0, 0, 2621443, 0, 0, 2621444, 0, 0, 2621445, 0, 0, 2621446, 0, 0, 2621447, 0, 0, 2621448, 0, 0, 2621449, 0, 0, 2621450, 0, 0, 2621451, 0, 0, 2621452, 0, 0, 2621453, 0, 0, 2621454, 0, 0, 2621455, 0, 0, 2621456, 0, 0, 2621457, 0, 0, 2621458, 0, 0, 2621459, 0, 0, 2621460, 0, 0, 2621461, 0, 0, 2621462, 7, 0, 2621463, 45, 0, 2621464, 45, 0, 2621465, 45, 0, 2621466, 45, 0, 2621467, 45, 0, 2621468, 45, 0, 2621469, 45, 0, 2621470, 45, 0, 2621471, 45, 0, 2621472, 45, 0, 2621473, 45, 0, 2621474, 45, 0, 2621475, 21, 0, 2621476, 21, 0, 2621477, 45, 0, 2621478, 21, 0, 2621479, 21, 0, 2621480, 45, 0, 2621481, 45, 0, 2621482, 50, 0, 2686976, 50, 0, 2686977, 0, 0, 2686978, 0, 0, 2686979, 0, 0, 2686980, 0, 0, 2686981, 0, 0, 2686982, 0, 0, 2686983, 0, 0, 2686984, 0, 0, 2686985, 0, 0, 2686986, 0, 0, 2686987, 0, 0, 2686988, 0, 0, 2686989, 0, 0, 2686990, 0, 0, 2686991, 0, 0, 2686992, 0, 0, 2686993, 0, 0, 2686994, 0, 0, 2686995, 0, 0, 2686996, 0, 0, 2686997, 0, 0, 2686998, 7, 0, 2686999, 45, 0, 2687000, 45, 0, 2687001, 45, 0, 2687002, 45, 0, 2687003, 45, 0, 2687004, 45, 0, 2687005, 45, 0, 2687006, 45, 0, 2687007, 45, 0, 2687008, 45, 0, 2687009, 45, 0, 2687010, 45, 0, 2687011, 21, 0, 2687012, 21, 0, 2687013, 45, 0, 2687014, 21, 0, 2687015, 21, 0, 2687016, 45, 0, 2687017, 45, 0, 2687018, 50, 0, 2752512, 50, 0, 2752513, 0, 0, 2752514, 0, 0, 2752515, 0, 0, 2752516, 0, 0, 2752517, 0, 0, 2752518, 0, 0, 2752519, 0, 0, 2752520, 0, 0, 2752521, 0, 0, 2752522, 0, 0, 2752523, 0, 0, 2752524, 0, 0, 2752525, 0, 0, 2752526, 0, 0, 2752527, 0, 0, 2752528, 0, 0, 2752529, 0, 0, 2752530, 0, 0, 2752531, 0, 0, 2752532, 0, 0, 2752533, 0, 0, 2752534, 7, 0, 2752535, 45, 0, 2752536, 45, 0, 2752537, 45, 0, 2752538, 45, 0, 2752539, 45, 0, 2752540, 45, 0, 2752541, 45, 0, 2752542, 45, 0, 2752543, 45, 0, 2752544, 45, 0, 2752545, 45, 0, 2752546, 45, 0, 2752547, 21, 0, 2752548, 21, 0, 2752549, 45, 0, 2752550, 21, 0, 2752551, 21, 0, 2752552, 45, 0, 2752553, 45, 0, 2752554, 50, 0, 2818048, 50, 0, 2818049, 0, 0, 2818050, 0, 0, 2818051, 0, 0, 2818052, 0, 0, 2818053, 0, 0, 2818054, 0, 0, 2818055, 0, 0, 2818056, 0, 0, 2818057, 0, 0, 2818058, 0, 0, 2818059, 0, 0, 2818060, 0, 0, 2818061, 0, 0, 2818062, 0, 0, 2818063, 0, 0, 2818064, 0, 0, 2818065, 0, 0, 2818066, 0, 0, 2818067, 0, 0, 2818068, 0, 0, 2818069, 0, 0, 2818070, 7, 0, 2818071, 45, 0, 2818072, 45, 0, 2818073, 45, 0, 2818074, 45, 0, 2818075, 45, 0, 2818076, 45, 0, 2818077, 45, 0, 2818078, 45, 0, 2818079, 45, 0, 2818080, 45, 0, 2818081, 45, 0, 2818082, 45, 0, 2818083, 21, 0, 2818084, 21, 0, 2818085, 45, 0, 2818086, 21, 0, 2818087, 21, 0, 2818088, 45, 0, 2818089, 45, 0, 2818090, 50, 0, 2883584, 50, 0, 2883585, 0, 0, 2883586, 0, 0, 2883587, 0, 0, 2883588, 0, 0, 2883589, 0, 0, 2883590, 0, 0, 2883591, 0, 0, 2883592, 0, 0, 2883593, 0, 0, 2883594, 0, 0, 2883595, 0, 0, 2883596, 0, 0, 2883597, 0, 0, 2883598, 0, 0, 2883599, 0, 0, 2883600, 0, 0, 2883601, 0, 0, 2883602, 0, 0, 2883603, 0, 0, 2883604, 0, 0, 2883605, 0, 0, 2883606, 7, 0, 2883607, 45, 0, 2883608, 45, 0, 2883609, 45, 0, 2883610, 45, 0, 2883611, 45, 0, 2883612, 45, 0, 2883613, 45, 0, 2883614, 45, 0, 2883615, 45, 0, 2883616, 45, 0, 2883617, 45, 0, 2883618, 45, 0, 2883619, 21, 0, 2883620, 21, 0, 2883621, 45, 0, 2883622, 21, 0, 2883623, 21, 0, 2883624, 45, 0, 2883625, 45, 0, 2883626, 50, 0, 2949120, 50, 0, 2949121, 0, 0, 2949122, 0, 0, 2949123, 0, 0, 2949124, 0, 0, 2949125, 0, 0, 2949126, 0, 0, 2949127, 0, 0, 2949128, 0, 0, 2949129, 0, 0, 2949130, 0, 0, 2949131, 0, 0, 2949132, 0, 0, 2949133, 0, 0, 2949134, 0, 0, 2949135, 0, 0, 2949136, 0, 0, 2949137, 0, 0, 2949138, 0, 0, 2949139, 0, 0, 2949140, 0, 0, 2949141, 0, 0, 2949142, 7, 0, 2949143, 45, 0, 2949144, 45, 0, 2949145, 45, 0, 2949146, 45, 0, 2949147, 45, 0, 2949148, 45, 0, 2949149, 45, 0, 2949150, 45, 0, 2949151, 45, 0, 2949152, 45, 0, 2949153, 45, 0, 2949154, 45, 0, 2949155, 21, 0, 2949156, 21, 0, 2949157, 45, 0, 2949158, 21, 0, 2949159, 21, 0, 2949160, 45, 0, 2949161, 45, 0, 2949162, 50, 0, 3014656, 50, 0, 3014657, 50, 0, 3014658, 50, 0, 3014659, 50, 0, 3014660, 50, 0, 3014661, 50, 0, 3014662, 50, 0, 3014663, 50, 0, 3014664, 50, 0, 3014665, 50, 0, 3014666, 50, 0, 3014667, 50, 0, 3014668, 50, 0, 3014669, 50, 0, 3014670, 50, 0, 3014671, 50, 0, 3014672, 50, 0, 3014673, 50, 0, 3014674, 50, 0, 3014675, 50, 0, 3014676, 50, 0, 3014677, 50, 0, 3014678, 50, 0, 3014679, 50, 0, 3014680, 50, 0, 3014681, 50, 0, 3014682, 50, 0, 3014683, 50, 0, 3014684, 50, 0, 3014685, 50, 0, 3014686, 50, 0, 3014687, 50, 0, 3014688, 50, 0, 3014689, 50, 0, 3014690, 50, 0, 3014691, 50, 0, 3014692, 50, 0, 3014693, 50, 0, 3014694, 50, 0, 3014695, 50, 0, 3014696, 50, 0, 3014697, 50, 0, 3014698, 50, 0 ) + +[node name="Obstacles" type="TileMap" parent="." groups=[ +"Obstacles", +]] +tile_set = ExtResource( 1 ) +cell_size = Vector2( 128, 128 ) +format = 1 +tile_data = PoolIntArray( 0, 50, 0, 1, 50, 0, 2, 50, 0, 3, 50, 0, 4, 50, 0, 5, 50, 0, 6, 50, 0, 7, 50, 0, 8, 50, 0, 9, 50, 0, 10, 50, 0, 11, 50, 0, 12, 50, 0, 13, 50, 0, 14, 50, 0, 15, 50, 0, 16, 50, 0, 17, 50, 0, 18, 50, 0, 19, 50, 0, 20, 50, 0, 21, 50, 0, 22, 50, 0, 23, 50, 0, 24, 50, 0, 25, 50, 0, 26, 50, 0, 27, 50, 0, 28, 50, 0, 29, 50, 0, 30, 50, 0, 31, 50, 0, 32, 50, 0, 33, 50, 0, 34, 50, 0, 35, 50, 0, 36, 50, 0, 37, 50, 0, 38, 50, 0, 39, 50, 0, 40, 50, 0, 41, 50, 0, 42, 50, 0, 65536, 50, 0, 65578, 50, 0, 131072, 50, 0, 131114, 50, 0, 196608, 50, 0, 196650, 50, 0, 262144, 50, 0, 262186, 50, 0, 327680, 50, 0, 327722, 50, 0, 393216, 50, 0, 393258, 50, 0, 458752, 50, 0, 458794, 50, 0, 524288, 50, 0, 524330, 50, 0, 589824, 50, 0, 589866, 50, 0, 655360, 50, 0, 655402, 50, 0, 720896, 50, 0, 720938, 50, 0, 786432, 50, 0, 786474, 50, 0, 851968, 50, 0, 852010, 50, 0, 917504, 50, 0, 917546, 50, 0, 983040, 50, 0, 983082, 50, 0, 1048576, 50, 0, 1048618, 50, 0, 1114112, 50, 0, 1114154, 50, 0, 1179648, 50, 0, 1179690, 50, 0, 1245184, 50, 0, 1245226, 50, 0, 1310720, 50, 0, 1310762, 50, 0, 1376256, 50, 0, 1376298, 50, 0, 1441792, 50, 0, 1441834, 50, 0, 1507328, 50, 0, 1507370, 50, 0, 1572864, 50, 0, 1572906, 50, 0, 1638400, 50, 0, 1638442, 50, 0, 1703936, 50, 0, 1703978, 50, 0, 1769472, 50, 0, 1769514, 50, 0, 1835008, 50, 0, 1835050, 50, 0, 1900544, 50, 0, 1900586, 50, 0, 1966080, 50, 0, 1966122, 50, 0, 2031616, 50, 0, 2031658, 50, 0, 2097152, 50, 0, 2097194, 50, 0, 2162688, 50, 0, 2162730, 50, 0, 2228224, 50, 0, 2228266, 50, 0, 2293760, 50, 0, 2293802, 50, 0, 2359296, 50, 0, 2359338, 50, 0, 2424832, 50, 0, 2424874, 50, 0, 2490368, 50, 0, 2490410, 50, 0, 2555904, 50, 0, 2555946, 50, 0, 2621440, 50, 0, 2621482, 50, 0, 2686976, 50, 0, 2687018, 50, 0, 2752512, 50, 0, 2752554, 50, 0, 2818048, 50, 0, 2818090, 50, 0, 2883584, 50, 0, 2883626, 50, 0, 2949120, 50, 0, 2949162, 50, 0, 3014656, 50, 0, 3014657, 50, 0, 3014658, 50, 0, 3014659, 50, 0, 3014660, 50, 0, 3014661, 50, 0, 3014662, 50, 0, 3014663, 50, 0, 3014664, 50, 0, 3014665, 50, 0, 3014666, 50, 0, 3014667, 50, 0, 3014668, 50, 0, 3014669, 50, 0, 3014670, 50, 0, 3014671, 50, 0, 3014672, 50, 0, 3014673, 50, 0, 3014674, 50, 0, 3014675, 50, 0, 3014676, 50, 0, 3014677, 50, 0, 3014678, 50, 0, 3014679, 50, 0, 3014680, 50, 0, 3014681, 50, 0, 3014682, 50, 0, 3014683, 50, 0, 3014684, 50, 0, 3014685, 50, 0, 3014686, 50, 0, 3014687, 50, 0, 3014688, 50, 0, 3014689, 50, 0, 3014690, 50, 0, 3014691, 50, 0, 3014692, 50, 0, 3014693, 50, 0, 3014694, 50, 0, 3014695, 50, 0, 3014696, 50, 0, 3014697, 50, 0, 3014698, 50, 0 ) [node name="RemainEffectManager" type="Node2D" parent="."] @@ -62,7 +71,7 @@ __meta__ = { [node name="CapaturableBaseManager" parent="." instance=ExtResource( 6 )] [node name="BASE 1" parent="CapaturableBaseManager" instance=ExtResource( 4 )] -position = Vector2( 1337.44, 808.009 ) +position = Vector2( 1371.08, 908.917 ) _defaultTeamCode = 0 [node name="BASE 2" parent="CapaturableBaseManager" instance=ExtResource( 4 )] @@ -75,7 +84,7 @@ _defaultTeamCode = 1 [node name="BASE 4" parent="CapaturableBaseManager" instance=ExtResource( 4 )] position = Vector2( 1449.93, 4039.13 ) -_defaultTeamCode = 0 +_defaultTeamCode = 1 [node name="RespawnPlayerTimer" type="Timer" parent="."] diff --git a/map/SimulateGameWorld.cs b/map/SimulateGameWorld.cs index d2e2fb6..9c4da9b 100644 --- a/map/SimulateGameWorld.cs +++ b/map/SimulateGameWorld.cs @@ -7,6 +7,7 @@ public class SimulateGameWorld : GameWorld public override void _Ready() { + GameStates = (GameStates)GetNode("/root/GAMESTATES"); // Clean up previous setup state GameStates.SetTeamMapAISettings(null); diff --git a/map/SimulateGameWorld.tscn b/map/SimulateGameWorld.tscn index 0addb06..7a2903f 100644 --- a/map/SimulateGameWorld.tscn +++ b/map/SimulateGameWorld.tscn @@ -28,7 +28,7 @@ tile_set = ExtResource( 1 ) cell_size = Vector2( 128, 128 ) cell_quadrant_size = 32 format = 1 -tile_data = PoolIntArray( -589841, 12, 0, -589840, 12, 0, -589839, 12, 0, -589838, 12, 0, -589837, 12, 0, -589836, 12, 0, -589835, 12, 0, -589834, 12, 0, -589833, 12, 0, -589832, 12, 0, -589831, 12, 0, -589830, 12, 0, -589829, 12, 0, -589828, 12, 0, -589827, 12, 0, -589826, 12, 0, -589825, 12, 0, -655360, 12, 0, -655359, 12, 0, -655358, 12, 0, -655357, 12, 0, -655356, 12, 0, -655355, 12, 0, -655354, 12, 0, -655353, 12, 0, -655352, 12, 0, -655351, 12, 0, -655350, 12, 0, -655349, 12, 0, -655348, 12, 0, -655347, 12, 0, -655346, 12, 0, -655345, 12, 0, -655344, 12, 0, -524305, 12, 0, -524304, 12, 0, -524303, 12, 0, -524302, 12, 0, -524301, 12, 0, -524300, 12, 0, -524299, 12, 0, -524298, 12, 0, -524297, 12, 0, -524296, 12, 0, -524295, 12, 0, -524294, 12, 0, -524293, 12, 0, -524292, 12, 0, -524291, 12, 0, -524290, 12, 0, -524289, 12, 0, -589824, 12, 0, -589823, 12, 0, -589822, 12, 0, -589821, 12, 0, -589820, 12, 0, -589819, 12, 0, -589818, 12, 0, -589817, 12, 0, -589816, 12, 0, -589815, 12, 0, -589814, 12, 0, -589813, 12, 0, -589812, 12, 0, -589811, 12, 0, -589810, 12, 0, -589809, 12, 0, -589808, 12, 0, -458769, 12, 0, -458768, 12, 0, -458767, 12, 0, -458766, 12, 0, -458765, 12, 0, -458764, 12, 0, -458763, 12, 0, -458762, 12, 0, -458761, 12, 0, -458760, 12, 0, -458759, 12, 0, -458758, 12, 0, -458757, 12, 0, -458756, 12, 0, -458755, 12, 0, -458754, 12, 0, -458753, 12, 0, -524288, 12, 0, -524287, 12, 0, -524286, 12, 0, -524285, 12, 0, -524284, 12, 0, -524283, 12, 0, -524282, 12, 0, -524281, 12, 0, -524280, 12, 0, -524279, 12, 0, -524278, 12, 0, -524277, 12, 0, -524276, 12, 0, -524275, 12, 0, -524274, 12, 0, -524273, 12, 0, -524272, 12, 0, -393233, 12, 0, -393232, 12, 0, -393231, 12, 0, -393230, 12, 0, -393229, 12, 0, -393228, 12, 0, -393227, 12, 0, -393226, 12, 0, -393225, 12, 0, -393224, 12, 0, -393223, 12, 0, -393222, 12, 0, -393221, 12, 0, -393220, 12, 0, -393219, 12, 0, -393218, 12, 0, -393217, 12, 0, -458752, 12, 0, -458751, 12, 0, -458750, 12, 0, -458749, 12, 0, -458748, 12, 0, -458747, 12, 0, -458746, 12, 0, -458745, 12, 0, -458744, 12, 0, -458743, 12, 0, -458742, 12, 0, -458741, 12, 0, -458740, 12, 0, -458739, 12, 0, -458738, 12, 0, -458737, 12, 0, -458736, 12, 0, -327697, 12, 0, -327696, 12, 0, -327695, 12, 0, -327694, 12, 0, -327693, 12, 0, -327692, 12, 0, -327691, 12, 0, -327690, 12, 0, -327689, 12, 0, -327688, 12, 0, -327687, 12, 0, -327686, 12, 0, -327685, 12, 0, -327684, 12, 0, -327683, 12, 0, -327682, 12, 0, -327681, 12, 0, -393216, 12, 0, -393215, 12, 0, -393214, 12, 0, -393213, 12, 0, -393212, 12, 0, -393211, 12, 0, -393210, 12, 0, -393209, 12, 0, -393208, 12, 0, -393207, 12, 0, -393206, 12, 0, -393205, 12, 0, -393204, 12, 0, -393203, 12, 0, -393202, 12, 0, -393201, 12, 0, -393200, 12, 0, -262161, 12, 0, -262160, 12, 0, -262159, 12, 0, -262158, 12, 0, -262157, 12, 0, -262156, 12, 0, -262155, 12, 0, -262154, 12, 0, -262153, 12, 0, -262152, 12, 0, -262151, 12, 0, -262150, 12, 0, -262149, 12, 0, -262148, 12, 0, -262147, 12, 0, -262146, 12, 0, -262145, 12, 0, -327680, 12, 0, -327679, 12, 0, -327678, 12, 0, -327677, 12, 0, -327676, 12, 0, -327675, 12, 0, -327674, 12, 0, -327673, 12, 0, -327672, 12, 0, -327671, 12, 0, -327670, 12, 0, -327669, 12, 0, -327668, 12, 0, -327667, 12, 0, -327666, 12, 0, -327665, 12, 0, -327664, 12, 0, -196625, 12, 0, -196624, 12, 0, -196623, 12, 0, -196622, 12, 0, -196621, 12, 0, -196620, 12, 0, -196619, 12, 0, -196618, 12, 0, -196617, 12, 0, -196616, 12, 0, -196615, 12, 0, -196614, 12, 0, -196613, 12, 0, -196612, 12, 0, -196611, 12, 0, -196610, 12, 0, -196609, 12, 0, -262144, 12, 0, -262143, 12, 0, -262142, 12, 0, -262141, 12, 0, -262140, 12, 0, -262139, 12, 0, -262138, 12, 0, -262137, 12, 0, -262136, 12, 0, -262135, 12, 0, -262134, 12, 0, -262133, 12, 0, -262132, 12, 0, -262131, 12, 0, -262130, 12, 0, -262129, 12, 0, -262128, 12, 0, -131089, 12, 0, -131088, 12, 0, -131087, 12, 0, -131086, 12, 0, -131085, 12, 0, -131084, 12, 0, -131083, 12, 0, -131082, 12, 0, -131081, 12, 0, -131080, 12, 0, -131079, 12, 0, -131078, 12, 0, -131077, 12, 0, -131076, 12, 0, -131075, 12, 0, -131074, 12, 0, -131073, 12, 0, -196608, 12, 0, -196607, 12, 0, -196606, 12, 0, -196605, 12, 0, -196604, 12, 0, -196603, 12, 0, -196602, 12, 0, -196601, 12, 0, -196600, 12, 0, -196599, 12, 0, -196598, 12, 0, -196597, 12, 0, -196596, 12, 0, -196595, 12, 0, -196594, 12, 0, -196593, 12, 0, -196592, 12, 0, -65553, 12, 0, -65552, 12, 0, -65551, 12, 0, -65550, 12, 0, -65549, 12, 0, -65548, 12, 0, -65547, 12, 0, -65546, 12, 0, -65545, 12, 0, -65544, 12, 0, -65543, 12, 0, -65542, 12, 0, -65541, 12, 0, -65540, 12, 0, -65539, 12, 0, -65538, 12, 0, -65537, 12, 0, -131072, 12, 0, -131071, 12, 0, -131070, 12, 0, -131069, 12, 0, -131068, 12, 0, -131067, 12, 0, -131066, 12, 0, -131065, 12, 0, -131064, 12, 0, -131063, 12, 0, -131062, 12, 0, -131061, 12, 0, -131060, 12, 0, -131059, 12, 0, -131058, 12, 0, -131057, 12, 0, -131056, 12, 0, -17, 12, 0, -16, 12, 0, -15, 12, 0, -14, 12, 0, -13, 12, 0, -12, 12, 0, -11, 12, 0, -10, 12, 0, -9, 12, 0, -8, 12, 0, -7, 12, 0, -6, 12, 0, -5, 12, 0, -4, 12, 0, -3, 12, 0, -2, 12, 0, -1, 12, 0, -65536, 12, 0, -65535, 12, 0, -65534, 12, 0, -65533, 12, 0, -65532, 12, 0, -65531, 12, 0, -65530, 12, 0, -65529, 12, 0, -65528, 12, 0, -65527, 12, 0, -65526, 12, 0, -65525, 12, 0, -65524, 12, 0, -65523, 12, 0, -65522, 12, 0, -65521, 12, 0, -65520, 12, 0, 65519, 12, 0, 65520, 12, 0, 65521, 12, 0, 65522, 12, 0, 65523, 12, 0, 65524, 12, 0, 65525, 12, 0, 65526, 12, 0, 65527, 12, 0, 65528, 12, 0, 65529, 12, 0, 65530, 12, 0, 65531, 12, 0, 65532, 12, 0, 65533, 12, 0, 65534, 12, 0, 65535, 12, 0, 0, 12, 0, 1, 12, 0, 2, 12, 0, 3, 12, 0, 4, 12, 0, 5, 12, 0, 6, 12, 0, 7, 12, 0, 8, 12, 0, 9, 12, 0, 10, 12, 0, 11, 12, 0, 12, 12, 0, 13, 12, 0, 14, 12, 0, 15, 12, 0, 16, 12, 0, 131055, 12, 0, 131056, 12, 0, 131057, 12, 0, 131058, 12, 0, 131059, 12, 0, 131060, 12, 0, 131061, 12, 0, 131062, 12, 0, 131063, 12, 0, 131064, 12, 0, 131065, 12, 0, 131066, 12, 0, 131067, 12, 0, 131068, 12, 0, 131069, 12, 0, 131070, 12, 0, 131071, 12, 0, 65536, 12, 0, 65537, 12, 0, 65538, 12, 0, 65539, 12, 0, 65540, 12, 0, 65541, 12, 0, 65542, 12, 0, 65543, 12, 0, 65544, 12, 0, 65545, 12, 0, 65546, 12, 0, 65547, 12, 0, 65548, 12, 0, 65549, 12, 0, 65550, 12, 0, 65551, 12, 0, 65552, 12, 0, 196591, 12, 0, 196592, 12, 0, 196593, 12, 0, 196594, 12, 0, 196595, 12, 0, 196596, 12, 0, 196597, 12, 0, 196598, 12, 0, 196599, 12, 0, 196600, 12, 0, 196601, 12, 0, 196602, 12, 0, 196603, 12, 0, 196604, 12, 0, 196605, 12, 0, 196606, 12, 0, 196607, 12, 0, 131072, 12, 0, 131073, 12, 0, 131074, 12, 0, 131075, 12, 0, 131076, 12, 0, 131077, 12, 0, 131078, 12, 0, 131079, 12, 0, 131080, 12, 0, 131081, 12, 0, 131082, 12, 0, 131083, 12, 0, 131084, 12, 0, 131085, 12, 0, 131086, 12, 0, 131087, 12, 0, 131088, 12, 0, 262127, 12, 0, 262128, 12, 0, 262129, 12, 0, 262130, 12, 0, 262131, 12, 0, 262132, 12, 0, 262133, 12, 0, 262134, 12, 0, 262135, 12, 0, 262136, 12, 0, 262137, 12, 0, 262138, 12, 0, 262139, 12, 0, 262140, 12, 0, 262141, 12, 0, 262142, 12, 0, 262143, 12, 0, 196608, 12, 0, 196609, 12, 0, 196610, 12, 0, 196611, 12, 0, 196612, 12, 0, 196613, 12, 0, 196614, 12, 0, 196615, 12, 0, 196616, 12, 0, 196617, 12, 0, 196618, 12, 0, 196619, 12, 0, 196620, 12, 0, 196621, 12, 0, 196622, 12, 0, 196623, 12, 0, 196624, 12, 0, 327663, 12, 0, 327664, 12, 0, 327665, 12, 0, 327666, 12, 0, 327667, 12, 0, 327668, 12, 0, 327669, 12, 0, 327670, 12, 0, 327671, 12, 0, 327672, 12, 0, 327673, 12, 0, 327674, 12, 0, 327675, 12, 0, 327676, 12, 0, 327677, 12, 0, 327678, 12, 0, 327679, 12, 0, 262144, 12, 0, 262145, 12, 0, 262146, 12, 0, 262147, 12, 0, 262148, 12, 0, 262149, 12, 0, 262150, 12, 0, 262151, 12, 0, 262152, 12, 0, 262153, 12, 0, 262154, 12, 0, 262155, 12, 0, 262156, 12, 0, 262157, 12, 0, 262158, 12, 0, 262159, 12, 0, 262160, 12, 0, 393199, 12, 0, 393200, 12, 0, 393201, 12, 0, 393202, 12, 0, 393203, 12, 0, 393204, 12, 0, 393205, 12, 0, 393206, 12, 0, 393207, 12, 0, 393208, 12, 0, 393209, 12, 0, 393210, 12, 0, 393211, 12, 0, 393212, 12, 0, 393213, 12, 0, 393214, 12, 0, 393215, 12, 0, 327680, 12, 0, 327681, 12, 0, 327682, 12, 0, 327683, 12, 0, 327684, 12, 0, 327685, 12, 0, 327686, 12, 0, 327687, 12, 0, 327688, 12, 0, 327689, 12, 0, 327690, 12, 0, 327691, 12, 0, 327692, 12, 0, 327693, 12, 0, 327694, 12, 0, 327695, 12, 0, 327696, 12, 0, 458735, 12, 0, 458736, 12, 0, 458737, 12, 0, 458738, 12, 0, 458739, 12, 0, 458740, 12, 0, 458741, 12, 0, 458742, 12, 0, 458743, 12, 0, 458744, 12, 0, 458745, 12, 0, 458746, 12, 0, 458747, 12, 0, 458748, 12, 0, 458749, 12, 0, 458750, 12, 0, 458751, 12, 0, 393216, 12, 0, 393217, 12, 0, 393218, 12, 0, 393219, 12, 0, 393220, 12, 0, 393221, 12, 0, 393222, 12, 0, 393223, 12, 0, 393224, 12, 0, 393225, 12, 0, 393226, 12, 0, 393227, 12, 0, 393228, 12, 0, 393229, 12, 0, 393230, 12, 0, 393231, 12, 0, 393232, 12, 0, 524271, 12, 0, 524272, 12, 0, 524273, 12, 0, 524274, 12, 0, 524275, 12, 0, 524276, 12, 0, 524277, 12, 0, 524278, 12, 0, 524279, 12, 0, 524280, 12, 0, 524281, 12, 0, 524282, 12, 0, 524283, 12, 0, 524284, 12, 0, 524285, 12, 0, 524286, 12, 0, 524287, 12, 0, 458752, 12, 0, 458753, 12, 0, 458754, 12, 0, 458755, 12, 0, 458756, 12, 0, 458757, 12, 0, 458758, 12, 0, 458759, 12, 0, 458760, 12, 0, 458761, 12, 0, 458762, 12, 0, 458763, 12, 0, 458764, 12, 0, 458765, 12, 0, 458766, 12, 0, 458767, 12, 0, 458768, 12, 0, 589807, 12, 0, 589808, 12, 0, 589809, 12, 0, 589810, 12, 0, 589811, 12, 0, 589812, 12, 0, 589813, 12, 0, 589814, 12, 0, 589815, 12, 0, 589816, 12, 0, 589817, 12, 0, 589818, 12, 0, 589819, 12, 0, 589820, 12, 0, 589821, 12, 0, 589822, 12, 0, 589823, 12, 0, 524288, 12, 0, 524289, 12, 0, 524290, 12, 0, 524291, 12, 0, 524292, 12, 0, 524293, 12, 0, 524294, 12, 0, 524295, 12, 0, 524296, 12, 0, 524297, 12, 0, 524298, 12, 0, 524299, 12, 0, 524300, 12, 0, 524301, 12, 0, 524302, 12, 0, 524303, 12, 0, 524304, 12, 0, 655343, 12, 0, 655344, 12, 0, 655345, 12, 0, 655346, 12, 0, 655347, 12, 0, 655348, 12, 0, 655349, 12, 0, 655350, 12, 0, 655351, 12, 0, 655352, 12, 0, 655353, 12, 0, 655354, 12, 0, 655355, 12, 0, 655356, 12, 0, 655357, 12, 0, 655358, 12, 0, 655359, 12, 0, 589824, 12, 0, 589825, 12, 0, 589826, 12, 0, 589827, 12, 0, 589828, 12, 0, 589829, 12, 0, 589830, 12, 0, 589831, 12, 0, 589832, 12, 0, 589833, 12, 0, 589834, 12, 0, 589835, 12, 0, 589836, 12, 0, 589837, 12, 0, 589838, 12, 0, 589839, 12, 0, 589840, 12, 0, 720879, 12, 0, 720880, 12, 0, 720881, 12, 0, 720882, 12, 0, 720883, 12, 0, 720884, 12, 0, 720885, 12, 0, 720886, 12, 0, 720887, 12, 0, 720888, 12, 0, 720889, 12, 0, 720890, 12, 0, 720891, 12, 0, 720892, 12, 0, 720893, 12, 0, 720894, 12, 0, 720895, 12, 0, 655360, 12, 0, 655361, 12, 0, 655362, 12, 0, 655363, 12, 0, 655364, 12, 0, 655365, 12, 0, 655366, 12, 0, 655367, 12, 0, 655368, 12, 0, 655369, 12, 0, 655370, 12, 0, 655371, 12, 0, 655372, 12, 0, 655373, 12, 0, 655374, 12, 0, 655375, 12, 0, 655376, 12, 0 ) +tile_data = PoolIntArray( -589841, 50, 0, -589840, 50, 0, -589839, 50, 0, -589838, 50, 0, -589837, 50, 0, -589836, 50, 0, -589835, 50, 0, -589834, 50, 0, -589833, 50, 0, -589832, 50, 0, -589831, 50, 0, -589830, 50, 0, -589829, 50, 0, -589828, 50, 0, -589827, 50, 0, -589826, 50, 0, -589825, 50, 0, -655360, 50, 0, -655359, 50, 0, -655358, 50, 0, -655357, 50, 0, -655356, 50, 0, -655355, 50, 0, -655354, 50, 0, -655353, 50, 0, -655352, 50, 0, -655351, 50, 0, -655350, 50, 0, -655349, 50, 0, -655348, 50, 0, -655347, 50, 0, -655346, 50, 0, -655345, 50, 0, -655344, 50, 0, -524305, 50, 0, -524304, 12, 0, -524303, 12, 0, -524302, 12, 0, -524301, 12, 0, -524300, 12, 0, -524299, 12, 0, -524298, 12, 0, -524297, 12, 0, -524296, 12, 0, -524295, 12, 0, -524294, 12, 0, -524293, 12, 0, -524292, 12, 0, -524291, 12, 0, -524290, 12, 0, -524289, 12, 0, -589824, 12, 0, -589823, 12, 0, -589822, 12, 0, -589821, 12, 0, -589820, 12, 0, -589819, 12, 0, -589818, 12, 0, -589817, 12, 0, -589816, 12, 0, -589815, 12, 0, -589814, 12, 0, -589813, 12, 0, -589812, 12, 0, -589811, 12, 0, -589810, 12, 0, -589809, 12, 0, -589808, 50, 0, -458769, 50, 0, -458768, 12, 0, -458767, 12, 0, -458766, 12, 0, -458765, 12, 0, -458764, 12, 0, -458763, 12, 0, -458762, 12, 0, -458761, 12, 0, -458760, 12, 0, -458759, 12, 0, -458758, 12, 0, -458757, 12, 0, -458756, 12, 0, -458755, 12, 0, -458754, 12, 0, -458753, 12, 0, -524288, 12, 0, -524287, 12, 0, -524286, 12, 0, -524285, 12, 0, -524284, 12, 0, -524283, 12, 0, -524282, 12, 0, -524281, 12, 0, -524280, 12, 0, -524279, 12, 0, -524278, 12, 0, -524277, 12, 0, -524276, 12, 0, -524275, 12, 0, -524274, 12, 0, -524273, 12, 0, -524272, 50, 0, -393233, 50, 0, -393232, 12, 0, -393231, 12, 0, -393230, 12, 0, -393229, 12, 0, -393228, 12, 0, -393227, 12, 0, -393226, 12, 0, -393225, 12, 0, -393224, 12, 0, -393223, 12, 0, -393222, 12, 0, -393221, 12, 0, -393220, 12, 0, -393219, 12, 0, -393218, 12, 0, -393217, 12, 0, -458752, 12, 0, -458751, 12, 0, -458750, 12, 0, -458749, 12, 0, -458748, 12, 0, -458747, 12, 0, -458746, 12, 0, -458745, 12, 0, -458744, 12, 0, -458743, 12, 0, -458742, 12, 0, -458741, 12, 0, -458740, 12, 0, -458739, 12, 0, -458738, 12, 0, -458737, 12, 0, -458736, 50, 0, -327697, 50, 0, -327696, 12, 0, -327695, 12, 0, -327694, 12, 0, -327693, 12, 0, -327692, 12, 0, -327691, 12, 0, -327690, 12, 0, -327689, 12, 0, -327688, 12, 0, -327687, 12, 0, -327686, 12, 0, -327685, 12, 0, -327684, 12, 0, -327683, 12, 0, -327682, 12, 0, -327681, 12, 0, -393216, 12, 0, -393215, 12, 0, -393214, 12, 0, -393213, 12, 0, -393212, 12, 0, -393211, 12, 0, -393210, 12, 0, -393209, 12, 0, -393208, 12, 0, -393207, 12, 0, -393206, 12, 0, -393205, 12, 0, -393204, 12, 0, -393203, 12, 0, -393202, 12, 0, -393201, 12, 0, -393200, 50, 0, -262161, 50, 0, -262160, 12, 0, -262159, 12, 0, -262158, 12, 0, -262157, 12, 0, -262156, 12, 0, -262155, 12, 0, -262154, 12, 0, -262153, 12, 0, -262152, 12, 0, -262151, 12, 0, -262150, 12, 0, -262149, 12, 0, -262148, 12, 0, -262147, 12, 0, -262146, 12, 0, -262145, 12, 0, -327680, 12, 0, -327679, 12, 0, -327678, 12, 0, -327677, 12, 0, -327676, 12, 0, -327675, 12, 0, -327674, 12, 0, -327673, 12, 0, -327672, 12, 0, -327671, 12, 0, -327670, 12, 0, -327669, 12, 0, -327668, 12, 0, -327667, 12, 0, -327666, 12, 0, -327665, 12, 0, -327664, 50, 0, -196625, 50, 0, -196624, 12, 0, -196623, 12, 0, -196622, 12, 0, -196621, 12, 0, -196620, 12, 0, -196619, 12, 0, -196618, 12, 0, -196617, 12, 0, -196616, 12, 0, -196615, 12, 0, -196614, 12, 0, -196613, 12, 0, -196612, 12, 0, -196611, 12, 0, -196610, 12, 0, -196609, 12, 0, -262144, 12, 0, -262143, 12, 0, -262142, 12, 0, -262141, 12, 0, -262140, 12, 0, -262139, 12, 0, -262138, 12, 0, -262137, 12, 0, -262136, 12, 0, -262135, 12, 0, -262134, 12, 0, -262133, 12, 0, -262132, 12, 0, -262131, 12, 0, -262130, 12, 0, -262129, 12, 0, -262128, 50, 0, -131089, 50, 0, -131088, 12, 0, -131087, 12, 0, -131086, 12, 0, -131085, 12, 0, -131084, 12, 0, -131083, 12, 0, -131082, 12, 0, -131081, 12, 0, -131080, 12, 0, -131079, 12, 0, -131078, 12, 0, -131077, 12, 0, -131076, 12, 0, -131075, 12, 0, -131074, 12, 0, -131073, 12, 0, -196608, 12, 0, -196607, 12, 0, -196606, 12, 0, -196605, 12, 0, -196604, 12, 0, -196603, 12, 0, -196602, 12, 0, -196601, 12, 0, -196600, 12, 0, -196599, 12, 0, -196598, 12, 0, -196597, 12, 0, -196596, 12, 0, -196595, 12, 0, -196594, 12, 0, -196593, 12, 0, -196592, 50, 0, -65553, 50, 0, -65552, 12, 0, -65551, 12, 0, -65550, 12, 0, -65549, 12, 0, -65548, 12, 0, -65547, 12, 0, -65546, 12, 0, -65545, 12, 0, -65544, 12, 0, -65543, 12, 0, -65542, 12, 0, -65541, 12, 0, -65540, 12, 0, -65539, 12, 0, -65538, 12, 0, -65537, 12, 0, -131072, 12, 0, -131071, 12, 0, -131070, 12, 0, -131069, 12, 0, -131068, 12, 0, -131067, 12, 0, -131066, 12, 0, -131065, 12, 0, -131064, 12, 0, -131063, 12, 0, -131062, 12, 0, -131061, 12, 0, -131060, 12, 0, -131059, 12, 0, -131058, 12, 0, -131057, 12, 0, -131056, 50, 0, -17, 50, 0, -16, 12, 0, -15, 12, 0, -14, 12, 0, -13, 12, 0, -12, 12, 0, -11, 12, 0, -10, 12, 0, -9, 12, 0, -8, 12, 0, -7, 12, 0, -6, 12, 0, -5, 12, 0, -4, 12, 0, -3, 12, 0, -2, 12, 0, -1, 12, 0, -65536, 12, 0, -65535, 12, 0, -65534, 12, 0, -65533, 12, 0, -65532, 12, 0, -65531, 12, 0, -65530, 12, 0, -65529, 12, 0, -65528, 12, 0, -65527, 12, 0, -65526, 12, 0, -65525, 12, 0, -65524, 12, 0, -65523, 12, 0, -65522, 12, 0, -65521, 12, 0, -65520, 50, 0, 65519, 50, 0, 65520, 12, 0, 65521, 12, 0, 65522, 12, 0, 65523, 12, 0, 65524, 12, 0, 65525, 12, 0, 65526, 12, 0, 65527, 12, 0, 65528, 12, 0, 65529, 12, 0, 65530, 12, 0, 65531, 12, 0, 65532, 12, 0, 65533, 12, 0, 65534, 12, 0, 65535, 12, 0, 0, 12, 0, 1, 12, 0, 2, 12, 0, 3, 12, 0, 4, 12, 0, 5, 12, 0, 6, 12, 0, 7, 12, 0, 8, 12, 0, 9, 12, 0, 10, 12, 0, 11, 12, 0, 12, 12, 0, 13, 12, 0, 14, 12, 0, 15, 12, 0, 16, 50, 0, 131055, 50, 0, 131056, 12, 0, 131057, 12, 0, 131058, 12, 0, 131059, 12, 0, 131060, 12, 0, 131061, 12, 0, 131062, 12, 0, 131063, 12, 0, 131064, 12, 0, 131065, 12, 0, 131066, 12, 0, 131067, 12, 0, 131068, 12, 0, 131069, 12, 0, 131070, 12, 0, 131071, 12, 0, 65536, 12, 0, 65537, 12, 0, 65538, 12, 0, 65539, 12, 0, 65540, 12, 0, 65541, 12, 0, 65542, 12, 0, 65543, 12, 0, 65544, 12, 0, 65545, 12, 0, 65546, 12, 0, 65547, 12, 0, 65548, 12, 0, 65549, 12, 0, 65550, 12, 0, 65551, 12, 0, 65552, 50, 0, 196591, 50, 0, 196592, 12, 0, 196593, 12, 0, 196594, 12, 0, 196595, 12, 0, 196596, 12, 0, 196597, 12, 0, 196598, 12, 0, 196599, 12, 0, 196600, 12, 0, 196601, 12, 0, 196602, 12, 0, 196603, 12, 0, 196604, 12, 0, 196605, 12, 0, 196606, 12, 0, 196607, 12, 0, 131072, 12, 0, 131073, 12, 0, 131074, 12, 0, 131075, 12, 0, 131076, 12, 0, 131077, 12, 0, 131078, 12, 0, 131079, 12, 0, 131080, 12, 0, 131081, 12, 0, 131082, 12, 0, 131083, 12, 0, 131084, 12, 0, 131085, 12, 0, 131086, 12, 0, 131087, 12, 0, 131088, 50, 0, 262127, 50, 0, 262128, 12, 0, 262129, 12, 0, 262130, 12, 0, 262131, 12, 0, 262132, 12, 0, 262133, 12, 0, 262134, 12, 0, 262135, 12, 0, 262136, 12, 0, 262137, 12, 0, 262138, 12, 0, 262139, 12, 0, 262140, 12, 0, 262141, 12, 0, 262142, 12, 0, 262143, 12, 0, 196608, 12, 0, 196609, 12, 0, 196610, 12, 0, 196611, 12, 0, 196612, 12, 0, 196613, 12, 0, 196614, 12, 0, 196615, 12, 0, 196616, 12, 0, 196617, 12, 0, 196618, 12, 0, 196619, 12, 0, 196620, 12, 0, 196621, 12, 0, 196622, 12, 0, 196623, 12, 0, 196624, 50, 0, 327663, 50, 0, 327664, 12, 0, 327665, 12, 0, 327666, 12, 0, 327667, 12, 0, 327668, 12, 0, 327669, 12, 0, 327670, 12, 0, 327671, 12, 0, 327672, 12, 0, 327673, 12, 0, 327674, 12, 0, 327675, 12, 0, 327676, 12, 0, 327677, 12, 0, 327678, 12, 0, 327679, 12, 0, 262144, 12, 0, 262145, 12, 0, 262146, 12, 0, 262147, 12, 0, 262148, 12, 0, 262149, 12, 0, 262150, 12, 0, 262151, 12, 0, 262152, 12, 0, 262153, 12, 0, 262154, 12, 0, 262155, 12, 0, 262156, 12, 0, 262157, 12, 0, 262158, 12, 0, 262159, 12, 0, 262160, 50, 0, 393199, 50, 0, 393200, 12, 0, 393201, 12, 0, 393202, 12, 0, 393203, 12, 0, 393204, 12, 0, 393205, 12, 0, 393206, 12, 0, 393207, 12, 0, 393208, 12, 0, 393209, 12, 0, 393210, 12, 0, 393211, 12, 0, 393212, 12, 0, 393213, 12, 0, 393214, 12, 0, 393215, 12, 0, 327680, 12, 0, 327681, 12, 0, 327682, 12, 0, 327683, 12, 0, 327684, 12, 0, 327685, 12, 0, 327686, 12, 0, 327687, 12, 0, 327688, 12, 0, 327689, 12, 0, 327690, 12, 0, 327691, 12, 0, 327692, 12, 0, 327693, 12, 0, 327694, 12, 0, 327695, 12, 0, 327696, 50, 0, 458735, 50, 0, 458736, 12, 0, 458737, 12, 0, 458738, 12, 0, 458739, 12, 0, 458740, 12, 0, 458741, 12, 0, 458742, 12, 0, 458743, 12, 0, 458744, 12, 0, 458745, 12, 0, 458746, 12, 0, 458747, 12, 0, 458748, 12, 0, 458749, 12, 0, 458750, 12, 0, 458751, 12, 0, 393216, 12, 0, 393217, 12, 0, 393218, 12, 0, 393219, 12, 0, 393220, 12, 0, 393221, 12, 0, 393222, 12, 0, 393223, 12, 0, 393224, 12, 0, 393225, 12, 0, 393226, 12, 0, 393227, 12, 0, 393228, 12, 0, 393229, 12, 0, 393230, 12, 0, 393231, 12, 0, 393232, 50, 0, 524271, 50, 0, 524272, 12, 0, 524273, 12, 0, 524274, 12, 0, 524275, 12, 0, 524276, 12, 0, 524277, 12, 0, 524278, 12, 0, 524279, 12, 0, 524280, 12, 0, 524281, 12, 0, 524282, 12, 0, 524283, 12, 0, 524284, 12, 0, 524285, 12, 0, 524286, 12, 0, 524287, 12, 0, 458752, 12, 0, 458753, 12, 0, 458754, 12, 0, 458755, 12, 0, 458756, 12, 0, 458757, 12, 0, 458758, 12, 0, 458759, 12, 0, 458760, 12, 0, 458761, 12, 0, 458762, 12, 0, 458763, 12, 0, 458764, 12, 0, 458765, 12, 0, 458766, 12, 0, 458767, 12, 0, 458768, 50, 0, 589807, 50, 0, 589808, 12, 0, 589809, 12, 0, 589810, 12, 0, 589811, 12, 0, 589812, 12, 0, 589813, 12, 0, 589814, 12, 0, 589815, 12, 0, 589816, 12, 0, 589817, 12, 0, 589818, 12, 0, 589819, 12, 0, 589820, 12, 0, 589821, 12, 0, 589822, 12, 0, 589823, 12, 0, 524288, 12, 0, 524289, 12, 0, 524290, 12, 0, 524291, 12, 0, 524292, 12, 0, 524293, 12, 0, 524294, 12, 0, 524295, 12, 0, 524296, 12, 0, 524297, 12, 0, 524298, 12, 0, 524299, 12, 0, 524300, 12, 0, 524301, 12, 0, 524302, 12, 0, 524303, 12, 0, 524304, 50, 0, 655343, 50, 0, 655344, 12, 0, 655345, 12, 0, 655346, 12, 0, 655347, 12, 0, 655348, 12, 0, 655349, 12, 0, 655350, 12, 0, 655351, 12, 0, 655352, 12, 0, 655353, 12, 0, 655354, 12, 0, 655355, 12, 0, 655356, 12, 0, 655357, 12, 0, 655358, 12, 0, 655359, 12, 0, 589824, 12, 0, 589825, 12, 0, 589826, 12, 0, 589827, 12, 0, 589828, 12, 0, 589829, 12, 0, 589830, 12, 0, 589831, 12, 0, 589832, 12, 0, 589833, 12, 0, 589834, 12, 0, 589835, 12, 0, 589836, 12, 0, 589837, 12, 0, 589838, 12, 0, 589839, 12, 0, 589840, 50, 0, 720879, 50, 0, 720880, 50, 0, 720881, 50, 0, 720882, 50, 0, 720883, 50, 0, 720884, 50, 0, 720885, 50, 0, 720886, 50, 0, 720887, 50, 0, 720888, 50, 0, 720889, 50, 0, 720890, 50, 0, 720891, 50, 0, 720892, 50, 0, 720893, 50, 0, 720894, 50, 0, 720895, 50, 0, 655360, 50, 0, 655361, 50, 0, 655362, 50, 0, 655363, 50, 0, 655364, 50, 0, 655365, 50, 0, 655366, 50, 0, 655367, 50, 0, 655368, 50, 0, 655369, 50, 0, 655370, 50, 0, 655371, 50, 0, 655372, 50, 0, 655373, 50, 0, 655374, 50, 0, 655375, 50, 0, 655376, 50, 0 ) [node name="RemainEffectManager" type="Node2D" parent="."] diff --git a/network/Lobby.cs b/network/Lobby.cs index fbd5739..c4e95dd 100644 --- a/network/Lobby.cs +++ b/network/Lobby.cs @@ -106,7 +106,7 @@ private void enterWaitingRoom() private void onReadyGameStart() { - ((GameStates)GetNode("/root/GAMESTATES")).next_level(); + ((GameStates)GetNode("/root/GAMESTATES")).EnterNetworkLevel(); } private void _networkFail(String message) diff --git a/projectiles/Missle.cs b/projectiles/Missle.cs index 07c6964..8fa30b6 100644 --- a/projectiles/Missle.cs +++ b/projectiles/Missle.cs @@ -21,8 +21,8 @@ public override void Explode() AgentExplosionParticle explosion = (AgentExplosionParticle)GetNode("AgentExplosionParticle"); explosion.SetTrigger(true); - AudioManager audioManager = (AudioManager)GetNode("/root/AUDIOMANAGER"); - audioManager.playSoundEffect(MusicHitClip); + //AudioManager audioManager = (AudioManager)GetNode("/root/AUDIOMANAGER"); + //audioManager.playSoundEffect(MusicHitClip); } protected override void ComputeDamage() diff --git a/singletons/audios/AudioManager.cs b/singletons/audios/AudioManager.cs index 44f0d7e..980933c 100644 --- a/singletons/audios/AudioManager.cs +++ b/singletons/audios/AudioManager.cs @@ -6,7 +6,7 @@ public class AudioManager : Node private float _defaultVolumeDb = -50.0f; - AudioStreamPlayer[] soundEffectPlayers = new AudioStreamPlayer[100]; + AudioStreamPlayer[] soundEffectPlayers = new AudioStreamPlayer[1000]; AudioStream musicHitClip = (AudioStream)GD.Load("res://assets/sounds/bullethit.wav"); diff --git a/terrain/terrain_tiles.tres b/terrain/terrain_tiles.tres index c1c5bcb..0f4ae83 100644 --- a/terrain/terrain_tiles.tres +++ b/terrain/terrain_tiles.tres @@ -1,4 +1,4 @@ -[gd_resource type="TileSet" load_steps=3 format=2] +[gd_resource type="TileSet" load_steps=4 format=2] [ext_resource path="res://assets/terrainTiles_retina.png" type="Texture" id=1] @@ -6,6 +6,9 @@ vertices = PoolVector2Array( 0, 0, 128, 0, 128, 128, 0, 128 ) polygons = [ PoolIntArray( 0, 1, 2, 3 ) ] +[sub_resource type="ConvexPolygonShape2D" id=2] +points = PoolVector2Array( 0, 0, 128, 0, 128, 128, 0, 128 ) + [resource] 0/name = "" 0/texture = ExtResource( 1 ) @@ -718,7 +721,14 @@ polygons = [ PoolIntArray( 0, 1, 2, 3 ) ] 50/navigation_offset = Vector2( 0, 0 ) 50/shape_offset = Vector2( 0, 0 ) 50/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) +50/shape = SubResource( 2 ) 50/shape_one_way = false -50/shape_one_way_margin = 0.0 -50/shapes = [ ] +50/shape_one_way_margin = 1.0 +50/shapes = [ { +"autotile_coord": Vector2( 0, 0 ), +"one_way": false, +"one_way_margin": 1.0, +"shape": SubResource( 2 ), +"shape_transform": Transform2D( 1, 0, 0, 1, 0, 0 ) +} ] 50/z_index = 0 diff --git a/ui/EndGameScreen.cs b/ui/EndGameScreen.cs index 3042f24..a80219f 100644 --- a/ui/EndGameScreen.cs +++ b/ui/EndGameScreen.cs @@ -27,6 +27,6 @@ private void btContinue() network.closeServer(); } - gameStates.next_level(); + gameStates.EnterTitleScreen(); } } diff --git a/ui/HUD.cs b/ui/HUD.cs index ab0776b..f1554a0 100644 --- a/ui/HUD.cs +++ b/ui/HUD.cs @@ -6,83 +6,26 @@ public class HUD : CanvasLayer { Network network; - Texture barRed = (Texture)ResourceLoader.Load("res://assets/ui/red_button00.png"); - Texture barYellow = (Texture)ResourceLoader.Load("res://assets/ui/yellow_button00.png"); - Texture barGreen = (Texture)ResourceLoader.Load("res://assets/ui/green_button00.png"); - - Dictionary uiPlayerListEntries = new Dictionary(); - Texture barTexture; - bool lblMessage = false; - public override void _Ready() - { - // Connect event handler to the player_list_changed signal - network = (Network)GetNode("/root/NETWORK"); - network.Connect("PlayerListChangedSignal", this, nameof(onPlayerListChanged)); - network.Connect("PingUpdatedSignal", this, nameof(onPingUpdated)); - - // Update the lblLocalPlayer label widget to display the local player name - ((Label)GetNode("controlGame/lblLocalPlayer")).Text = network.gamestateNetworkPlayer.name; + private Godot.Collections.Dictionary _weaponControls; - // Hide the server info panel if on the server - it doesn't make any sense anyway - //if (GetTree().IsNetworkServer()) - //{ - // ((Panel)GetNode("controlGame/PanelServerInfo")).Hide(); - //} + private Control _gameControl; + private Control _miniMap; - // Hide other controls - ((Control)GetNode("controlOverallMessage")).Visible = false; - ((Control)GetNode("ControlPlayerList")).Visible = false; - } + private Control _overallMessageControll; - private void onPlayerListChanged() + public override void _Ready() { - // Update the server name - ((Label)GetNode("controlGame/lblServerName")).Text = "Server: " + network.serverinfo.name; - - Node boxList = GetNode("ControlPlayerList/Panel/boxList"); - foreach (Node node in boxList.GetChildren()) - { - node.QueueFree(); - } - - uiPlayerListEntries.Clear(); + _gameControl = (Control)(GetNode("GameControl")); + _miniMap = ((MiniMap)_gameControl.GetNode("MiniMap")); + _overallMessageControll = ((Control)GetNode("controlOverallMessage")); + _overallMessageControll.Visible = false; - // Preload the entry control - PackedScene entryClass = (PackedScene)GD.Load("res://ui/UIPlayerListEntry.tscn"); + _weaponControls = new Godot.Collections.Dictionary(); + _weaponControls.Add(Weapon.WeaponOrder.Right, (WeaponControl)(_gameControl.GetNode("RightWeaponControl"))); + _weaponControls.Add(Weapon.WeaponOrder.Left, (WeaponControl)(_gameControl.GetNode("LeftWeaponControl"))); - foreach (KeyValuePair item in network.networkPlayers) - { - UIPlayerListEntry playerEntryRoot = (UIPlayerListEntry)(entryClass.Instance()); - - String name = item.Value.name + "(" + item.Value.team + ")"; - - if (item.Key != network.gamestateNetworkPlayer.net_id) - { - name = name + "(this client)"; - } - - playerEntryRoot.setInfo(name); - uiPlayerListEntries.Add(item.Key, playerEntryRoot); - boxList.AddChild(playerEntryRoot); - } - } - - private void onPingUpdated(int peerId, float value) - { - if (peerId != network.gamestateNetworkPlayer.net_id) - { - // Updating the ping for local machine - ((Label)GetNode("controlGame/PanelServerInfo/lblPing")).Text = "Ping: " + (int)value; - } - else - { - if (uiPlayerListEntries.ContainsKey(peerId)) - { - uiPlayerListEntries[peerId].setLatency(value); - } - } } private void _onNetworkRateUpdate(String message) @@ -91,133 +34,27 @@ private void _onNetworkRateUpdate(String message) ((Label)GetNode("lblNetworkRate")).Text = "Network Rate: " + message; } - public void UpdateWeaponAmmo(int current, int max, Weapon.WeaponOrder weaponOrder) + public void UpdateWeapon(ItemResource itemResource, Weapon.WeaponOrder weaponOrder, int weaponIndex) { - //TextureProgress ammoBar = (TextureProgress)GetNode("controlGame/Margin/Container/AmmoBar"); - //ammoBar.Value = value; - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmo")).Text = current + "/" + max; - - - if (Mathf.Abs((float)current / (float)max) <= 0.1f) - { - // Change color during if ammo is under 10% - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmo")).Set("custom_colors/font_color", new Color("#ffc65b")); - } - else - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmo")).Set("custom_colors/font_color", new Color("#96ff5b")); - } - - // If not 0 ammo, disable the out ammo message - if (current == 0) - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Visible = true; - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Text = "AMMO OUT"; - } - else - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Visible = false; - } - } - - public void UpdateWeaponAmmoOut(Weapon.WeaponOrder weaponOrder) - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Visible = true; - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Text = "AMMO OUT"; - } - - public void UpdateWeaponReload(Weapon.WeaponOrder weaponOrder, bool reload) - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Visible = reload; - - if (reload) - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Text = "RELOADING"; - } - } - - - public void UpdateWeapon(ItemResource itemResource, Weapon.WeaponOrder weaponOrder) - { - - TextureRect symbol = (TextureRect)GetNode("controlGame/" + weaponOrder + "WeaponControl/textureWeaponSymbol"); - - if (itemResource == null) - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponName")).Text = "NO WEAPON"; - symbol.RectScale = Vector2.Zero; - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmo")).Text = ""; - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponAmmoMessage")).Text = ""; - } - else - { - ((Label)GetNode("controlGame/" + weaponOrder + "WeaponControl/lblWeaponName")).Text = itemResource.ItemID + " " + itemResource.Name; - symbol.Texture = itemResource.ReferenceTexture; - symbol.RectScale = new Vector2(0.5f, 0.5f); - } - } - - public void UpdateHealth(int value) - { - barTexture = barGreen; - - if (value < 25) - { - barTexture = barRed; - } - else if (value < 60) - { - barTexture = barYellow; - } - - TextureProgress healthBar = (TextureProgress)GetNode("controlGame/Margin/Container/HealthBar"); - healthBar.TextureProgress_ = barTexture; - - Tween tween = (Tween)GetNode("controlGame/Margin/Container/HealthBar/Tween"); - tween.InterpolateProperty(healthBar, "value", healthBar.Value, - value, 0.2f, - Tween.TransitionType.Linear, Tween.EaseType.InOut); - tween.Start(); - } - - public void UpdateDefeatedAgent(int value) - { - ((Label)GetNode("controlGame/lblDefeatedAgentCount")).Text = "" + value; + _weaponControls[weaponOrder].UpdateWeapon(itemResource, weaponOrder, weaponIndex); } public void OnPlayerDefeated() { - ((Control)GetNode("controlGame")).Visible = false; - ((MiniMap)GetNode("controlGame/MiniMap")).Visible = false; - ((Control)GetNode("controlGame/LeftWeaponControl")).Visible = false; - ((Control)GetNode("controlGame/RightWeaponControl")).Visible = false; - - ((Control)GetNode("controlOverallMessage")).Visible = true; + _gameControl.Visible = false; + _overallMessageControll.Visible = true; ((AnimationPlayer)GetNode("AnimationPlayer")).Play("MessageAnnounce"); } public void OnPlayerCreated() { - ((Control)GetNode("controlOverallMessage")).Visible = false; + _overallMessageControll.Visible = false; - ((Control)GetNode("controlGame")).Visible = true; - ((MiniMap)GetNode("controlGame/MiniMap")).Visible = true; - ((Control)GetNode("controlGame/LeftWeaponControl")).Visible = true; - ((Control)GetNode("controlGame/RightWeaponControl")).Visible = true; + _gameControl.Visible = true; lblMessage = false; } - - private void _onAnimationPlayerFinished(String animationName) - { - // As message is finished announce, able to close it - if (animationName == "MessageAnnounce") - { - lblMessage = true; - } - } - public void UpdateTeamUnitUsageAmount(int cost) { ((Label)GetNode("lblTeamUnitUsageAmount")).Text = "" + cost; @@ -242,20 +79,9 @@ public override void _PhysicsProcess(float delta) { if (lblMessage && Input.IsKeyPressed((int)Godot.KeyList.Space)) { - ((Control)GetNode("controlOverallMessage")).Visible = false; + _overallMessageControll.Visible = false; lblMessage = false; } - - if (Input.IsKeyPressed((int)Godot.KeyList.Tab)) - { - ((Control)GetNode("controlGame")).Visible = false; - ((Control)GetNode("ControlPlayerList")).Visible = true; - } - else - { - ((Control)GetNode("controlGame")).Visible = true; - ((Control)GetNode("ControlPlayerList")).Visible = false; - } } } diff --git a/ui/HUD.tscn b/ui/HUD.tscn index 804d1ee..2f6a91f 100644 --- a/ui/HUD.tscn +++ b/ui/HUD.tscn @@ -1,20 +1,22 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://ui/HUD.cs" type="Script" id=1] -[ext_resource path="res://assets/ui/green_button00.png" type="Texture" id=2] -[ext_resource path="res://assets/ui/green_circle.png" type="Texture" id=3] -[ext_resource path="res://assets/ui/yellow_boxTick.png" type="Texture" id=4] +[ext_resource path="res://ui/WeaponControl.tscn" type="PackedScene" id=2] +[ext_resource path="res://assets/fonts/Kenney Future Narrow.ttf" type="DynamicFontData" id=3] [ext_resource path="res://assets/fonts/Kenney Pixel Square.ttf" type="DynamicFontData" id=6] [ext_resource path="res://assets/fonts/Kenney Rocket Square.ttf" type="DynamicFontData" id=7] [ext_resource path="res://ui/MiniMap.tscn" type="PackedScene" id=8] [ext_resource path="res://ui/PopUpMessage.tscn" type="PackedScene" id=9] -[ext_resource path="res://assets/ui/grey_panel.png" type="Texture" id=10] [ext_resource path="res://ui/InventoryUI.tscn" type="PackedScene" id=11] [sub_resource type="DynamicFont" id=1] -size = 20 +size = 15 font_data = ExtResource( 7 ) +[sub_resource type="DynamicFont" id=4] +size = 10 +font_data = ExtResource( 3 ) + [sub_resource type="DynamicFont" id=2] size = 42 font_data = ExtResource( 6 ) @@ -49,9 +51,9 @@ script = ExtResource( 1 ) [node name="lblTimerStatus" type="Label" parent="."] margin_left = 25.0 -margin_top = 552.0 +margin_top = 565.0 margin_right = 322.0 -margin_bottom = 577.0 +margin_bottom = 590.0 custom_fonts/font = SubResource( 1 ) custom_colors/font_color = Color( 0.588235, 1, 0.356863, 1 ) __meta__ = { @@ -60,48 +62,11 @@ __meta__ = { [node name="lblTeamUnitUsageAmount" type="Label" parent="."] margin_left = 447.0 -margin_top = 552.0 +margin_top = 567.0 margin_right = 683.0 -margin_bottom = 577.0 -custom_fonts/font = SubResource( 1 ) +margin_bottom = 592.0 custom_colors/font_color = Color( 0.588235, 1, 0.356863, 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ControlPlayerList" type="Control" parent="."] -visible = false -margin_right = 40.0 -margin_bottom = 40.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Panel" type="Panel" parent="ControlPlayerList"] -margin_left = 63.0 -margin_top = 28.0 -margin_right = 979.0 -margin_bottom = 572.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblPlayerList" type="Label" parent="ControlPlayerList/Panel"] -margin_left = 35.8394 -margin_top = 59.9213 -margin_right = 113.839 -margin_bottom = 90.9213 -text = "Player List --------------------------------------------------------------" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="boxList" type="VBoxContainer" parent="ControlPlayerList/Panel"] -margin_left = 18.3811 -margin_top = 95.3323 -margin_right = 899.381 -margin_bottom = 510.332 +autowrap = true __meta__ = { "_edit_use_anchors_": false } @@ -111,281 +76,11 @@ margin_left = 516.582 margin_top = 580.087 margin_right = 679.582 margin_bottom = 595.087 +custom_fonts/font = SubResource( 4 ) __meta__ = { "_edit_use_anchors_": false } -[node name="controlGame" type="Control" parent="."] -margin_right = 40.0 -margin_bottom = 40.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Margin" type="MarginContainer" parent="controlGame"] -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_right = 270.0 -margin_bottom = 49.0 -custom_constants/margin_right = 20 -custom_constants/margin_top = 20 -custom_constants/margin_left = 20 -custom_constants/margin_bottom = 20 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Container" type="HBoxContainer" parent="controlGame/Margin"] -margin_left = 20.0 -margin_top = 20.0 -margin_right = 290.0 -margin_bottom = 69.0 - -[node name="TextureRect" type="TextureRect" parent="controlGame/Margin/Container"] -visible = false -margin_right = 36.0 -margin_bottom = 49.0 -texture = ExtResource( 3 ) - -[node name="HealthBar" type="TextureProgress" parent="controlGame/Margin/Container"] -visible = false -margin_right = 190.0 -margin_bottom = 49.0 -value = 75.0 -texture_progress = ExtResource( 2 ) - -[node name="Tween" type="Tween" parent="controlGame/Margin/Container/HealthBar"] - -[node name="AmmoBar" type="TextureProgress" parent="controlGame/Margin/Container"] -visible = false -margin_left = 234.0 -margin_right = 270.0 -margin_bottom = 49.0 -value = 90.0 -texture_progress = ExtResource( 4 ) -fill_mode = 4 -radial_initial_angle = 270.0 -radial_fill_degrees = 180.0 - -[node name="lblDefeatedAgentCountLabel" type="Label" parent="controlGame"] -visible = false -margin_left = 738.439 -margin_top = 442.841 -margin_right = 847.439 -margin_bottom = 458.841 -text = "Defeated Agent" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblDefeatedAgentCount" type="Label" parent="controlGame"] -visible = false -margin_left = 897.456 -margin_top = 441.427 -margin_right = 1006.46 -margin_bottom = 457.427 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblLocalPlayer" type="Label" parent="controlGame"] -visible = false -margin_left = 27.3425 -margin_top = 83.4875 -margin_right = 172.343 -margin_bottom = 109.487 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="PanelServerInfo" type="Panel" parent="controlGame"] -visible = false -margin_left = 597.0 -margin_top = 484.0 -margin_right = 701.0 -margin_bottom = 504.0 -rect_scale = Vector2( 3.88731, 2.12269 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblPing" type="Label" parent="controlGame/PanelServerInfo"] -margin_left = 0.643118 -margin_top = 16.4885 -margin_right = 104.643 -margin_bottom = 30.4885 - -[node name="lblServerName" type="Label" parent="controlGame"] -margin_left = 687.0 -margin_top = 548.0 -margin_right = 1020.0 -margin_bottom = 570.0 -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="LeftWeaponControl" type="Control" parent="controlGame"] -visible = false -margin_left = 705.0 -margin_top = 352.0 -margin_right = 992.0 -margin_bottom = 443.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Background" type="TextureRect" parent="controlGame/LeftWeaponControl"] -self_modulate = Color( 0.254902, 0.254902, 0.254902, 0.254902 ) -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 44.0 -margin_bottom = -4.0 -texture = ExtResource( 10 ) -expand = true -stretch_mode = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponLabel" type="Label" parent="controlGame/LeftWeaponControl"] -margin_left = 150.597 -margin_top = 2.98839 -margin_right = 269.597 -margin_bottom = 16.9884 -text = "LEFT WEAPON" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponName" type="Label" parent="controlGame/LeftWeaponControl"] -margin_left = 150.597 -margin_top = 32.1329 -margin_right = 269.597 -margin_bottom = 46.1329 -text = "LEFT WEAPON" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponAmmo" type="Label" parent="controlGame/LeftWeaponControl"] -visible = false -margin_left = 151.695 -margin_top = 49.7503 -margin_right = 256.695 -margin_bottom = 63.7503 -text = "000/000" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponAmmoMessage" type="Label" parent="controlGame/LeftWeaponControl"] -visible = false -margin_left = 150.072 -margin_top = 70.9775 -margin_right = 248.072 -margin_bottom = 84.9775 -rect_pivot_offset = Vector2( 53.3791, 14 ) -custom_colors/font_color = Color( 1, 0, 0, 1 ) -text = "OUT OF AMMO" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="textureWeaponSymbol" type="TextureRect" parent="controlGame/LeftWeaponControl"] -margin_left = 68.1537 -margin_top = 11.1362 -margin_right = 108.154 -margin_bottom = 51.1362 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="RightWeaponControl" type="Control" parent="controlGame"] -visible = false -margin_left = 705.0 -margin_top = 453.117 -margin_right = 992.0 -margin_bottom = 544.117 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Background" type="TextureRect" parent="controlGame/RightWeaponControl"] -self_modulate = Color( 0.254902, 0.254902, 0.254902, 0.254902 ) -anchor_right = 1.0 -anchor_bottom = 1.0 -margin_left = 44.0 -margin_bottom = -4.0 -texture = ExtResource( 10 ) -expand = true -stretch_mode = 1 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponLabel" type="Label" parent="controlGame/RightWeaponControl"] -margin_left = 150.597 -margin_top = 2.98839 -margin_right = 269.597 -margin_bottom = 16.9884 -text = "LEFT WEAPON" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponName" type="Label" parent="controlGame/RightWeaponControl"] -margin_left = 150.597 -margin_top = 32.1329 -margin_right = 269.597 -margin_bottom = 46.1329 -text = "LEFT WEAPON" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponAmmo" type="Label" parent="controlGame/RightWeaponControl"] -visible = false -margin_left = 151.695 -margin_top = 49.7503 -margin_right = 256.695 -margin_bottom = 63.7503 -text = "000/000" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="lblWeaponAmmoMessage" type="Label" parent="controlGame/RightWeaponControl"] -visible = false -margin_left = 150.072 -margin_top = 70.9775 -margin_right = 248.072 -margin_bottom = 84.9775 -rect_pivot_offset = Vector2( 53.3791, 14 ) -custom_colors/font_color = Color( 1, 0, 0, 1 ) -text = "OUT OF AMMO" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="textureWeaponSymbol" type="TextureRect" parent="controlGame/RightWeaponControl"] -margin_left = 68.1537 -margin_top = 11.1362 -margin_right = 108.154 -margin_bottom = 51.1362 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MiniMap" parent="controlGame" instance=ExtResource( 8 )] -margin_left = 773.698 -margin_top = 95.0572 -margin_right = 973.698 -margin_bottom = 295.057 - -[node name="InventoryUI" parent="controlGame" instance=ExtResource( 11 )] - [node name="controlOverallMessage" type="Control" parent="."] visible = false margin_right = 62.0 @@ -436,4 +131,35 @@ margin_bottom = 56.6489 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/MessageAnnounce = SubResource( 3 ) +[node name="GameControl" type="Control" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 0.840942 +margin_top = 6.10352e-05 +margin_right = 0.840942 +margin_bottom = 6.10352e-05 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="LeftWeaponControl" parent="GameControl" instance=ExtResource( 2 )] +margin_left = 800.0 +margin_top = 317.209 +margin_right = 1000.0 +margin_bottom = 417.209 + +[node name="RightWeaponControl" parent="GameControl" instance=ExtResource( 2 )] +margin_left = 800.0 +margin_top = 429.302 +margin_right = 1000.0 +margin_bottom = 529.302 + +[node name="MiniMap" parent="GameControl" instance=ExtResource( 8 )] +margin_left = 789.561 +margin_top = 109.485 +margin_right = 983.561 +margin_bottom = 303.485 + +[node name="InventoryUI" parent="GameControl" instance=ExtResource( 11 )] + [connection signal="animation_finished" from="AnimationPlayer" to="." method="_onAnimationPlayerFinished"] diff --git a/ui/InventoryUI.cs b/ui/InventoryUI.cs index 51c8326..e9bcf74 100644 --- a/ui/InventoryUI.cs +++ b/ui/InventoryUI.cs @@ -22,6 +22,25 @@ public override void _Ready() _gridContainerWeaponChoices = (GridContainer)GetNode("TabContainer/Assembly/VSplitContainer/WeaponChoiceScrollable/GridContainerWeaponChoice"); } + public void Activate(Boolean activate) + { + // Enable mouse + if(activate) + { + // Enable mouse for selecting item + Input.SetMouseMode(Input.MouseMode.Visible); + // Use exclusive to force user must use command to close instead of random click in game screen cause unexpected weapon firing + PopupExclusive = true; + PopupCentered(); + } + else + { + // Enable mouse for selecting item + Input.SetMouseMode(Input.MouseMode.Hidden); + Hide(); + } + } + public void Initialize(InventoryManager inventoryManager, Inventory inventory) { _inventoryManager = inventoryManager; diff --git a/ui/MiniMap.tscn b/ui/MiniMap.tscn index 50b72bf..d352e86 100644 --- a/ui/MiniMap.tscn +++ b/ui/MiniMap.tscn @@ -16,6 +16,13 @@ __meta__ = { "_edit_use_anchors_": false } +[node name="ColorRect" type="ColorRect" parent="."] +margin_left = 5.0 +margin_top = 5.0 +margin_right = 145.0 +margin_bottom = 145.0 +color = Color( 0.266667, 0.266667, 0.266667, 0.470588 ) + [node name="NinePatchRect" type="NinePatchRect" parent="."] margin_left = 5.0 margin_top = 5.0 diff --git a/ui/TitleScreen.tscn b/ui/TitleScreen.tscn index 3a1075a..864fde0 100644 --- a/ui/TitleScreen.tscn +++ b/ui/TitleScreen.tscn @@ -10,7 +10,7 @@ size = 86 font_data = ExtResource( 1 ) -[sub_resource type="DynamicFont" id=3] +[sub_resource type="DynamicFont" id=2] size = 20 font_data = ExtResource( 3 ) @@ -82,7 +82,7 @@ custom_constants/separation = 20 [node name="NewGame" type="Button" parent="CanvasLayer/CenterContainer/VBoxContainer"] margin_right = 300.0 margin_bottom = 31.0 -custom_fonts/font = SubResource( 3 ) +custom_fonts/font = SubResource( 2 ) disabled = true text = "NEW GAME" __meta__ = { @@ -93,7 +93,7 @@ __meta__ = { margin_top = 51.0 margin_right = 300.0 margin_bottom = 82.0 -custom_fonts/font = SubResource( 3 ) +custom_fonts/font = SubResource( 2 ) text = "LOBBY" __meta__ = { "_edit_use_anchors_": false @@ -103,7 +103,7 @@ __meta__ = { margin_top = 102.0 margin_right = 300.0 margin_bottom = 133.0 -custom_fonts/font = SubResource( 3 ) +custom_fonts/font = SubResource( 2 ) text = "SETTINGS" __meta__ = { "_edit_use_anchors_": false @@ -113,7 +113,7 @@ __meta__ = { margin_top = 153.0 margin_right = 300.0 margin_bottom = 184.0 -custom_fonts/font = SubResource( 3 ) +custom_fonts/font = SubResource( 2 ) text = "EXIT" __meta__ = { "_edit_use_anchors_": false diff --git a/ui/WeaponControl.cs b/ui/WeaponControl.cs new file mode 100644 index 0000000..6390158 --- /dev/null +++ b/ui/WeaponControl.cs @@ -0,0 +1,49 @@ +using Godot; +using System; + +public class WeaponControl : Popup +{ + private TextureRect _weaponSymbol; + private Label _weaponName; + private Label _weaponHolder; + private Timer _timer; + + // Called when the node enters the scene tree for the first time. + public override void _Ready() + { + _weaponSymbol= (TextureRect)GetNode("MarginContainer/VBoxContainer/Symbol"); + _weaponName = ((Label)GetNode("MarginContainer/VBoxContainer/Name")); + _weaponHolder = ((Label)GetNode("MarginContainer/VBoxContainer/Holder")); + _timer = ((Timer)GetNode("Timer")); + } + + public void UpdateWeapon(ItemResource itemResource, Weapon.WeaponOrder weaponOrder, int weaponIndex) + { + if (itemResource == null) + { + _weaponSymbol.Texture = null; + _weaponName.Text = "NO WEAPON"; + } + else + { + _weaponName.Text = itemResource.ItemID + " " + itemResource.Name; + _weaponSymbol.Texture = itemResource.ReferenceTexture; + _weaponSymbol.RectScale = new Vector2(0.25f, 0.25f); + } + + _weaponHolder.Text = "[" + weaponOrder + "]" + "SLOT [" + weaponIndex + "]"; + + // Stop existing timer and start again + _timer.Stop(); + + Visible = true; + _timer.Start(); + } + + private void _onWeaponControlTimeout() + { + Hide(); + } + + +} diff --git a/ui/WeaponControl.tscn b/ui/WeaponControl.tscn new file mode 100644 index 0000000..a60308b --- /dev/null +++ b/ui/WeaponControl.tscn @@ -0,0 +1,70 @@ +[gd_scene load_steps=2 format=2] + +[ext_resource path="res://ui/WeaponControl.cs" type="Script" id=1] + +[node name="WeaponControl" type="Popup"] +margin_right = 200.0 +margin_bottom = 100.0 +rect_min_size = Vector2( 200, 100 ) +script = ExtResource( 1 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="ColorRect" type="ColorRect" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +color = Color( 0.996078, 0.74902, 0, 0.470588 ) +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Timer" type="Timer" parent="."] +wait_time = 3.0 +one_shot = true + +[node name="MarginContainer" type="MarginContainer" parent="."] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 5.0 +margin_top = 5.0 +margin_right = -5.0 +margin_bottom = -5.0 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"] +margin_right = 190.0 +margin_bottom = 90.0 +custom_constants/separation = 5 +__meta__ = { +"_edit_use_anchors_": false +} + +[node name="Symbol" type="TextureRect" parent="MarginContainer/VBoxContainer"] +modulate = Color( 0.333333, 0.192157, 0, 0.588235 ) +margin_right = 180.0 +margin_bottom = 45.0 +rect_min_size = Vector2( 160, 45 ) +rect_clip_content = true + +[node name="Name" type="Label" parent="MarginContainer/VBoxContainer"] +margin_top = 55.0 +margin_right = 190.0 +margin_bottom = 69.0 +custom_colors/font_color = Color( 0.333333, 0.192157, 0, 1 ) +text = "WEAPON NAME" +clip_text = true +uppercase = true + +[node name="Holder" type="Label" parent="MarginContainer/VBoxContainer"] +margin_top = 74.0 +margin_right = 190.0 +margin_bottom = 88.0 +custom_colors/font_color = Color( 0.333333, 0.192157, 0, 1 ) +text = "WEAPON HOLDER" +clip_text = true +uppercase = true + +[connection signal="timeout" from="Timer" to="." method="_onWeaponControlTimeout"]