<?php
require_once(dirname(__FILE__) . "/Main.php");
echo new folder\Main();
<?php
namespace folder;
require_once dirname(__FILE__) . "/../../account/get_user_path.php";
$GLOBALS["BACK_TEXT"] = "← Back";
$GLOBALS["PROGRESS_FILE_NAME"] = "progress";
class Builder extends \XMLWriter
{
   public function __construct($child=True)
   {
      $this->child = $child;
      $this->set_user_path();
      $this->set_progress();
   }
   private function set_user_path()
   {
      $this->user_path = \account\get_user_path();
   }
   private function set_progress()
   {
      $path = $this->user_path . $GLOBALS["PROGRESS_FILE_NAME"];
      $ignore = FILE_IGNORE_NEW_LINES;
      $this->progress = file_get_contents($path, $ignore);
   }
   public function __toString()
   {
      header("Content-type: text/xml");
      return $this->build();
   }
   public function build()
   {
      $this->openMemory();
      $this->populate();
      return $this->outputMemory();
   }
   private function populate()
   {
      $this->startElement("folder");
      $this->add_back_option();
      $this->add_options();
      $this->endElement();
   }
   private function add_back_option()
   {
      if ($this->child)
      {
         $this->startElement("option");
         $this->writeAttribute("action", "escape");
         $this->text($GLOBALS["BACK_TEXT"]);
         $this->endElement();
      }
   }
   protected function add_options()
   {
      return null;
   }
}
<?php
namespace folder;
require_once "Builder.php";
class Album extends Builder
{
   protected function add_options()
   {
      for ($ii = 1; $ii <= $this->progress; $ii++)
      {
         $this->startElement("option");
         $this->writeAttribute("action", "load_album");
         $this->text($ii);
         $this->writeElement("parameter", $ii);
         $this->endElement();
      }
   }
}
<?php
namespace folder;
require_once "Builder.php";
define("LEVEL_IDS_PATH", "../../../../../../users/level_ids");
define("LEVEL_LIMIT", 10);
class Levels extends Builder
{
   public function __construct($practice=false)
   {
      parent::__construct();
      $this->practice = $practice;
      $this->set_level_names();
   }
   private function set_level_names()
   {
      $entries = $this->get_level_data();
      $names = array();
      foreach ($entries as $entry)
      {
         $fields = explode("|", $entry);
         $names[] = trim($fields[1]);
      }
      $this->names = $names;
   }
   private function get_level_data()
   {
      $path = LEVEL_IDS_PATH;
      $ignore = FILE_IGNORE_NEW_LINES;
      return file($path, $ignore);
   }
   protected function add_options()
   {
      $names = $this->names;
      for ($ii = 0; $ii < $this->progress + 1 && $ii < LEVEL_LIMIT; $ii++)
      {
         $practice = $this->practice ? 1 : 0;
         $this->startElement("option");
         $this->writeAttribute("action", "load_level");
         $this->text($names[$ii]);
         $this->writeElement("parameter", $ii + 1);
         $this->writeElement("parameter", $practice);
         $this->endElement();
      }
   }
}
<?php
require_once(dirname(__FILE__) . "/Levels.php");
echo new folder\Levels();
EVR.include("field/landscape/Landscape.js");
EVR.Field = function(container)
{
   EVR.Component.call(this, container, "div", container.firstChild);
   this.colors = FIELD_COLORS;
   this.scrollers = [];
   this.style();
   this.append();
   this.add_fader();
   this.populate();
}
EVR.Field.prototype = new EVR.Component;
EVR.Field.prototype.style = function()
{
   this.set_color(this.colors[0]);
   this.css.position = "relative";
   this.css.margin = "auto";
   this.css.width = "100%";
   this.css.height = "100%";
   this.css.overflow = "hidden";
}
EVR.Field.prototype.append = function()
{
   EVR.Component.prototype.append.call(this);
   this.update_dimensions();
}
EVR.Field.prototype.add_fader = function()
{
   this.fader = new EVR.Animation.Fader(
      this, this.colors[1], FIELD_FADE_RATE, FIELD_FADE_LENGTH,
      FIELD_FADE_LOOP);
}
EVR.Field.prototype.set_colors = function(colors)
{
   this.set_color(colors[0]);
   this.fader.set_path(colors[1]);
}
EVR.Field.prototype.populate = function()
{
   this.add_ground();
   this.add_clouds();
   this.add_trees();
}
EVR.Field.prototype.repopulate = function()
{
   this.update_dimensions();
   this.ground.draw();
   this.redraw_clouds();
   this.redraw_trees();
}
EVR.Field.prototype.add_ground = function()
{
   this.ground = new EVR.Field.Landscape.Ground(this);
}
EVR.Field.prototype.add_clouds = function()
{
   this.clouds = [];
   for (var ii = 0; ii < CLOUD_COUNT; ii++)
   {
      this.clouds.push(new EVR.Field.Landscape.Cloud(this));
   }
   this.add_scroller(this.clouds, CLOUD_STEP, CLOUD_SCROLL_RATE);
}
EVR.Field.prototype.add_scroller = function(graphics, rate, step)
{
   var scroller = new EVR.Animation.Scroller(graphics, rate, step);
   this.scrollers.push(scroller);
   scroller.play();
}
EVR.Field.prototype.redraw_clouds = function()
{
   for (var ii = 0; ii < this.clouds.length; ii++)
   {
      this.clouds[ii].draw();
   }
}      
EVR.Field.prototype.add_trees = function()
{
   this.trees = [];
   for (var ii = 0; ii < TREE_COUNT; ii++)
   {
      this.trees.push(new EVR.Field.Landscape.Tree(this, this.ground));
   }
   this.add_scroller(this.trees, TREE_STEP, TREE_SCROLL_RATE);
}
EVR.Field.prototype.redraw_trees = function()
{
   for (var ii = 0; ii < this.trees.length; ii++)
   {
      this.trees[ii].draw();
   }
}
EVR.Field.prototype.update_dimensions = function()
{
   this.dimensions = EVR.Component.prototype.get_dimensions.call(this);
}
EVR.Field.prototype.get_dimensions = function(ratio)
{
   return this.dimensions;
}
EVR.Field.prototype.stop_trees = function()
{
   this.scrollers[1].stop();
}
EVR.Field.prototype.start_trees = function()
{
   this.scrollers[1].play();
}
EVR.Field.prototype.toString = function()
{
   return "[object EVR.Field]";
}
216.73.216.110
216.73.216.110
216.73.216.110
 
June 7, 2018