From 5b30a8cbeb5ee0036a1b9d7b515abae03a9e1a83 Mon Sep 17 00:00:00 2001
From: Gregg Tavares <github@greggman.com>
Date: Mon, 1 Jun 2015 15:51:56 +0900
Subject: [PATCH] update docs

---
 README.md            |   4 +-
 docs/changelist.html | 225 +++++++++++++++++++++++++++++++++++++++++++
 docs/changelist.md   |  70 ++++++++++++++
 docs/commands.html   |  27 +++++-
 docs/commands.md     |  41 +++++++-
 docs/network.html    |   8 +-
 docs/network.md      |   8 +-
 todo.md              |   6 ++
 8 files changed, 374 insertions(+), 15 deletions(-)
 create mode 100644 docs/changelist.html
 create mode 100644 docs/changelist.md

diff --git a/README.md b/README.md
index 116dc246..028daad5 100644
--- a/README.md
+++ b/README.md
@@ -6,12 +6,14 @@ HappyFunTimes
 *   [Home Page](http://greggman.github.io/HappyFunTimes/)
 *   [Developer Mailing List](https://groups.google.com/d/forum/hft-dev)
 *   [Blog](http://blog.happyfuntimes.net)
+*   [Facebook Group](https://www.facebook.com/groups/timesfunhappy/)
 *   [Making Games](docs/makinggames.md)
-*   [Making Games in Unity3D](docs/unitydocs.md)
+*   [Making Games in Unity3D](docs/unity/)
 *   [Inspiring Ideas for Games](docs/ideas.md)
 *   [Dev Tips](docs/tips.md)
 *   [API Docs](http://greggman.github.io/HappyFunTimes/docs/hft/)
 *   [API Versions](docs/api-versions.md)
+*   [Changelist](docs/changelist.md)
 *   [Example Descriptions](docs/examples.md)
 *   [Setting Up for a Museum or Installation](docs/network.md)
 *   [Notes](#notes)
diff --git a/docs/changelist.html b/docs/changelist.html
new file mode 100644
index 00000000..2b35d589
--- /dev/null
+++ b/docs/changelist.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html>
+<!-- this file is auto-generated from docs/changelist.md. Do not edited directly -->
+<!--
+Copyright 2012, Gregg Tavares.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+    * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+    * Neither the name of Gregg Tavares. nor the names of his
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0, user-scalable=yes">
+<meta property="og:title" content="" />
+<meta property="og:type" content="website" />
+<meta property="og:image" content="http://docs.happyfuntimes.net/docs/images/happyfuntimes.jpg" />
+<meta property="og:description" content="" />
+<meta property="og:url" content="http://docs.happyfuntimes.net/docs/changelist.html" />
+
+<meta name="twitter:card" content="summary_large_image" />
+<meta name="twitter:site" content="@greggman" />
+<meta name="twitter:creator" content="@greggman" />
+<meta name="twitter:domain" content="docs.happyfuntimes.net" />
+<meta name="twitter:title" content="" />
+<meta name="twitter:url" content="http://docs.happyfuntimes.net/docs/changelist.html" />
+<meta name="twitter:description" content="" />
+<meta name="twitter:image:src" content="http://docs.happyfuntimes.net/docs/images/happyfuntimes.jpg" />
+
+<title></title>
+<link href="/public/hft-icon.png" rel="shortcut icon" type="image/png">
+<link rel="stylesheet" href="/docs/css/base.css" type="text/css" />
+<link rel="stylesheet" href="/docs/css/lesson.css" type="text/css" />
+</head>
+<body>
+<div class="header">
+  <h1><a href="/docs">HappyFunTimes Docs</a></h1>
+</div>
+
+
+<div class="container">
+  <div class="lesson-title">
+    <h1></h1>
+  </div>
+  <div class="row">
+    <div class="col-sm-8 lesson-main">
+      <h1 id="changelist">Changelist</h1>
+<ul>
+<li><p>0.0.30</p>
+<ul>
+<li><p>added <code>--no-check-for-app</code></p>
+</li>
+<li><p>added <code>hft/0.x.x/scripts/runtime/live-settings.js</code> so HFT can deliver live setttings easily.</p>
+<p>a little worried there&#39;s too many ways to deliver options. As in code is not organized.
+To games data comes in index.html through a template. Maybe that should change to
+<code>/game/&lt;gameid&gt;/scripts/runtime/live-game-settings.js</code>? One difference is we allow
+minifying on game but minifying is at runtime so that doesn&#39;t seem like it would matter.</p>
+</li>
+<li><p>added changelist.md</p>
+</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><p>0.0.29</p>
+<ul>
+<li><p>fixed touch pad code.</p>
+<p>Issue was it was possible for button to get stuck down because we don&#39;t always
+get pointerup events. Also didn&#39;t handle pointerout then sliding back on to button.</p>
+</li>
+<li><p>added <code>GameClient.log</code> and <code>GameClient.error</code></p>
+<p>allows the controller to send debug messages that make it to game.</p>
+</li>
+<li><p>added way for game to supply files for controller.</p>
+<p>This allows games to participate in HappyFunTimes without being registered.
+So for example <a href="http://greggman.github.io/hft-gamepad-api/">http://greggman.github.io/hft-gamepad-api/</a></p>
+</li>
+</ul>
+</li>
+<li><p>0.0.28</p>
+<ul>
+<li><p>CommonUI now handles orientation.</p>
+<p>Pass orientation to <code>CommonUI.setupStandardControllerUI</code> and if it can
+force the orientation it will. If it can&#39;t it will add the appropriate
+HTML/CSS so a message appears to turn the phone in the wrong orientation.</p>
+</li>
+<li><p>Added app suppport.</p>
+<p>HFT tries to redirect to native mobile app.</p>
+</li>
+<li><p><code>NetPlayer.name</code>, <code>NetPlayer.busy</code> and <code>NetPlayer.hft_namechange</code> and <code>NetPlayer.hft_busy</code> events.</p>
+</li>
+<li><p>added code to disablecontext menus.</p>
+<p>Wondering if I should just always do this.</p>
+</li>
+</ul>
+</li>
+<li><p>0.0.27</p>
+<ul>
+<li><p>make hft-publish optionally use HFT_PUBLISH_USER for user:pass</p>
+</li>
+<li><p>send headers so hopefully browser never caches.</p>
+</li>
+<li><p>switch to node 0.12</p>
+</li>
+<li><p>made &quot;Install&quot; message pop to front</p>
+</li>
+</ul>
+</li>
+<li><p>0.0.26</p>
+<ul>
+<li><p>Add session ids. See <code>Netplayer.sessionId</code></p>
+</li>
+<li><p>switch docs to use handlebars</p>
+</li>
+<li><p>add docs.happyfuntimes.net</p>
+</li>
+</ul>
+</li>
+</ul>
+
+      <hr/>
+      <div>
+        <div>Questions? <a href="http://stackoverflow.com/questions/tagged/happyfuntimes">Ask on stackoverflow</a>.</div>
+        <div>Issue/Bug? <a href="http://github.com/greggman/happyfuntimes/issues">Create an issue on github</a>.</div>
+
+        <div id="disqus_thread"></div>
+        <script type="text/javascript">
+            /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+            var disqus_shortname = 'happyfuntimes'; // required: replace example with your forum shortname
+            var disqus_identifier = '';
+            var disqus_title = '';
+
+            /* * * DON'T EDIT BELOW THIS LINE * * */
+            (function() {
+                if (window.location.hostname.indexOf("happyfuntimes") < 0) {
+                    return;
+                }
+                var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+                dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+                (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+            })();
+        </script>
+        <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+        <a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
+      </div>
+    </div>
+    <div class="col-sm-3 col-sm-offset-1 lesson-sidebar">
+        <ul>
+  <li>Setup
+    <ul>
+      <li><a href="osx.html">OSX</a></li>
+      <li><a href="windows.html">Windows</a></li>
+      <li><a href="linux.html">Linux</a></li>
+    </ul>
+  </li>
+  <li>Making Games
+    <ul>
+      <li><a href="makinggames.html">Making games in HTML5</a></li>
+      <li><a href="unity">Making games in Unity3D</a></li>
+      <li><a href="ideas.html">Ideas</a></li>
+      <li><a href="tips.html">Tips</a></li>
+      <li><a href="examples.html">Examples</a></li>
+      <li><a href="api-versions.html">API Versions</a></li>
+      <li><a href="commands.html">hft command</a></li>
+    </ul>
+  </li>
+  <li>Special Stuff
+    <ul>
+      <li><a href="network.html">Museums & Installations</a></li>
+      <li><a href="migration.html">Migrating from older APIs</a></li>
+    </ul>
+  </li>
+  <li>Contributing
+    <ul>
+      <li><a href="contributing.html">Contributing</a></li>
+      <li><a href="future.html">Future Features</a></li>
+    </ul>
+  </li>
+</ul>
+
+    </div>
+  </div>
+</div>
+</body>
+<script src="/docs/3rdparty/jquery-1.11.2.min.js"></script>
+<script src="/docs/3rdparty/prettify.js"></script>
+<script src="/docs/js/lesson.js"></script>
+<script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-51764205-4', 'auto');
+  ga('send', 'pageview');
+
+</script>
+
+
+</html>
+
+
+
diff --git a/docs/changelist.md b/docs/changelist.md
new file mode 100644
index 00000000..6cccdbd0
--- /dev/null
+++ b/docs/changelist.md
@@ -0,0 +1,70 @@
+Changelist
+==========
+
+*   0.0.30
+
+    *   added `--no-check-for-app`
+
+    *   added `hft/0.x.x/scripts/runtime/live-settings.js` so HFT can deliver live setttings easily.
+
+        a little worried there's too many ways to deliver options. As in code is not organized.
+        To games data comes in index.html through a template. Maybe that should change to
+        `/game/<gameid>/scripts/runtime/live-game-settings.js`? One difference is we allow
+        minifying on game but minifying is at runtime so that doesn't seem like it would matter.
+
+    *   added changelist.md
+
+
+*   0.0.29
+
+    *   fixed touch pad code.
+
+        Issue was it was possible for button to get stuck down because we don't always
+        get pointerup events. Also didn't handle pointerout then sliding back on to button.
+
+    *   added `GameClient.log` and `GameClient.error`
+
+        allows the controller to send debug messages that make it to game.
+
+    *   added way for game to supply files for controller.
+
+        This allows games to participate in HappyFunTimes without being registered.
+        So for example http://greggman.github.io/hft-gamepad-api/
+
+*   0.0.28
+
+    *   CommonUI now handles orientation.
+
+        Pass orientation to `CommonUI.setupStandardControllerUI` and if it can
+        force the orientation it will. If it can't it will add the appropriate
+        HTML/CSS so a message appears to turn the phone in the wrong orientation.
+
+    *   Added app suppport.
+
+        HFT tries to redirect to native mobile app.
+
+    *   `NetPlayer.name`, `NetPlayer.busy` and `NetPlayer.hft_namechange` and `NetPlayer.hft_busy` events.
+
+    *   added code to disablecontext menus.
+
+        Wondering if I should just always do this.
+
+*   0.0.27
+
+    *   make hft-publish optionally use HFT_PUBLISH_USER for user:pass
+
+    *   send headers so hopefully browser never caches.
+
+    *   switch to node 0.12
+
+    *   made "Install" message pop to front
+
+*   0.0.26
+
+    *   Add session ids. See `Netplayer.sessionId`
+
+    *   switch docs to use handlebars
+
+    *   add docs.happyfuntimes.net
+
+
diff --git a/docs/commands.html b/docs/commands.html
index 259e8773..f8af7245 100644
--- a/docs/commands.html
+++ b/docs/commands.html
@@ -129,7 +129,32 @@ <h3 id="-hft-remove-"><code>hft remove</code></h3>
 <p>This is the opposite of <code>hft add</code>. It removes the game in the current folder from
 happyFunTimes. No files are deleted.</p>
 <h3 id="-hft-start-"><code>hft start</code></h3>
-<p>starts happyFunTimes`</p>
+<p>starts happyFunTimes.</p>
+<p><code>--app-mode</code></p>
+<p>launches the browser to <code>http://localhost:18679/games.html</code>. This is the same way HappyFunTimes
+is started when you launch by clicking the HappyFunTimes program icon.</p>
+<p><code>--system-name=&lt;somename&gt;</code></p>
+<p>If you&#39;re at a gamejam or some other place where there are multiple happyfuntimes
+games running on the same network, then when users connect to happyfuntimes.net they&#39;ll
+be given a list of game to join. The list will say the name of the computer followed
+by the name of the game. By default happyfuntimes user the name of your computer. You
+can set a specific name with this option.</p>
+<p><code>--no-ask-name</code></p>
+<p>If you&#39;re running a single game in <a href="network.html">installation mode</a> and you don&#39;t need users to enter
+a name this option will skip asking the user for a name</p>
+<p><code>--no-menu</code></p>
+<p>If you&#39;re running in <a href="network.html">installation mode</a> and you don&#39;t need users to be able to change their
+name this option turns off the gear icon on the controller</p>
+<p><code>--kiosk</code></p>
+<p>Normally controllers start at <code>http://localhost:18679</code>. There the controller waits for
+a game to start. If multiple games are running users are given a list to choose from.
+If you&#39;re running in an <a href="network.html">installation</a> where there&#39;s only 1 game you can have controller
+go directly to the game with this option.</p>
+<p><code>--no-check-for-app</code></p>
+<p>Controllers normally try to launch the native mobile app. This check takes 3 seconds.
+Use this switch to skip that check.</p>
+<p><code>--dns</code></p>
+<p>Tells happyfuntimes to implement a DNS server. This is for <a href="network.html">installation mode</a>.</p>
 <h3 id="-hft-uninstall-gameid-"><code>hft uninstall gameId</code></h3>
 <p>Un-installs a game from happyfuntimes. <strong>WARNING!!! this DELETES FILES!!!</strong></p>
 
diff --git a/docs/commands.md b/docs/commands.md
index acd03e0a..11cb5aa3 100644
--- a/docs/commands.md
+++ b/docs/commands.md
@@ -87,7 +87,46 @@ happyFunTimes. No files are deleted.
 
 ### `hft start`
 
-starts happyFunTimes`
+starts happyFunTimes.
+
+`--app-mode`
+
+launches the browser to `http://localhost:18679/games.html`. This is the same way HappyFunTimes
+is started when you launch by clicking the HappyFunTimes program icon.
+
+`--system-name=<somename>`
+
+If you're at a gamejam or some other place where there are multiple happyfuntimes
+games running on the same network, then when users connect to happyfuntimes.net they'll
+be given a list of game to join. The list will say the name of the computer followed
+by the name of the game. By default happyfuntimes user the name of your computer. You
+can set a specific name with this option.
+
+`--no-ask-name`
+
+If you're running a single game in [installation mode](network.md) and you don't need users to enter
+a name this option will skip asking the user for a name
+
+`--no-menu`
+
+If you're running in [installation mode](network.md) and you don't need users to be able to change their
+name this option turns off the gear icon on the controller
+
+`--kiosk`
+
+Normally controllers start at `http://localhost:18679`. There the controller waits for
+a game to start. If multiple games are running users are given a list to choose from.
+If you're running in an [installation](network.md) where there's only 1 game you can have controller
+go directly to the game with this option.
+
+`--no-check-for-app`
+
+Controllers normally try to launch the native mobile app. This check takes 3 seconds.
+Use this switch to skip that check.
+
+`--dns`
+
+Tells happyfuntimes to implement a DNS server. This is for [installation mode](network.md).
 
 ### `hft uninstall gameId`
 
diff --git a/docs/network.html b/docs/network.html
index eebbf7b3..fe4124ab 100644
--- a/docs/network.html
+++ b/docs/network.html
@@ -177,13 +177,9 @@ <h2 id="starting-happyfuntimes-in-installation-mode">Starting HappyFunTimes in i
 automatcally come up with a page that says &quot;Start&quot;. If it&#39;s an Android device
 open the browser and go to <code>hft.com</code> or any <code>http://</code> url.</p>
 <p>If you&#39;re planning on running one game on your installation you might want to use
-these one or more of these options to start</p>
+these one or more of these <a href="commands.html#hft-start">options</a> to start</p>
 <pre><code>hft start --dns --no-ask-name --no-menu --kiosk
-</code></pre><p><code>--no-menu</code> removes the gear icon on the contollers. <code>--no-ask-name</code> says to skip
-asking the user for a name. If your game doesn&#39;t need names or if you&#39;re getting
-the name some other way then this will skip the enter-name screen. Finally <code>--kiosk</code>
-says to send players directly to the currently running game. Normally users go
-to the <code>/index.html</code> where they wait for a game to be selected.</p>
+</code></pre><p><a href="commands.html#hft-start">See the start command for details</a>.</p>
 <h2 id="setting-up-an-airport-extreme">Setting Up an Airport Extreme</h2>
 <p>Unlike every other router in existence the Airport Extreme requires custom
 software to configure it. If you&#39;re on Windows or Linux you&#39;ll need to
diff --git a/docs/network.md b/docs/network.md
index 0a59d846..61aad66d 100644
--- a/docs/network.md
+++ b/docs/network.md
@@ -154,15 +154,11 @@ automatcally come up with a page that says "Start". If it's an Android device
 open the browser and go to `hft.com` or any `http://` url.
 
 If you're planning on running one game on your installation you might want to use
-these one or more of these options to start
+these one or more of these [options](commands.md#hft-start) to start
 
     hft start --dns --no-ask-name --no-menu --kiosk
 
-`--no-menu` removes the gear icon on the contollers. `--no-ask-name` says to skip
-asking the user for a name. If your game doesn't need names or if you're getting
-the name some other way then this will skip the enter-name screen. Finally `--kiosk`
-says to send players directly to the currently running game. Normally users go
-to the `/index.html` where they wait for a game to be selected.
+[See the start command for details](commands.md#hft-start).
 
 Setting Up an Airport Extreme
 -----------------------------
diff --git a/todo.md b/todo.md
index 81d8507e..bcd2b471 100644
--- a/todo.md
+++ b/todo.md
@@ -1,6 +1,12 @@
 To Do
 =====
 
+*   make LR
+*   make LR + 1
+*   make LR + 2
+*   make touch
+*   make orientation
+*   make accel
 *   fix controller that incorrectly asked for orientation
 *   need a way for game to send binary files (how about a .zip)
     for controller so you can have image files and sounds. That sounds